Как рассчитать длину ветвей в скелетном изображении с помощью Matlab
Я новичок в Matlab. Я делаю обработку изображения на скелете. Я обнаруживаю точки ветвления и конечные точки, используя bworph
функция в Matlab. Теперь я хочу вычислить длину каждой ветви в изображении скелета. Какие есть варианты в Matlab и как рассчитать длину изображения?
Ниже приведен код, который я использовал для поиска точек ветвления и конечных точек. Теперь я хочу перейти к каждой ветви изображения и определить ее длину.
mn=bwmorph(y,'branchpoints');
[row column] = find(mn);
branchPts = [row column];
endImg = bwmorph(y, 'endpoints');
[row column] = find(endImg);
endPts = [row column];
figure;imshow(y);
hold on ;
plot(branchPts(:,2),branchPts(:,1),'rx');
hold on; plot(endPts(:,2),endPts(:,1),'*');
1 ответ
Если вы уберете точки ветвления - ветви станут различными связанными компонентами. Они вы можете применить regionprops
чтобы получить желаемые свойства
branches = y & ~mn; % set branch points to zero
branchesLabeled = bwlabel( branches, 4 ); % label connected components
sts = regionprops( branchesLabeled, 'Area', 'Perimeter' ); % extract properties