Как рассчитать длину ветвей в скелетном изображении с помощью 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
Другие вопросы по тегам