Asked by Kirti
on 14 Mar 2013

I have skeleton image as shown in following link. I have to find the length of branch or branches in a skeleton image. I have tried bwtraceboundry function for checking the connectivity but i did not get the any value. Also, i have tried using repmat as follows d = [ 1 0; -1 0; 1 1; 0 1; -1 1; 1 -1; 0 -1; -1 -1]; Then the neighbors of location loc =[i j] are neighbors = d+repmat(loc,[8 1]); for finding neighbours of a pixels. 'neighbors' giving me 8 pixel coordinates. But i want to check connectivity of white line for finding branch length. image link: http://www.flickr.com/photos/92388309@N03/8555556765/in/photostream

Can any one help me in this.

*No products are associated with this question.*

Answer by Teja Muppirala
on 14 Mar 2013

You can first find the branch points and endpoints using BWMORPH, and then call BWDISTGEODESIC to get the distance from the branches. Assuming your image is binary and called "I", this is all it takes:

It = bwmorph(I,'thin','inf'); B = bwmorph(It,'branchpoints'); [i,j] = find(bwmorph(It,'endpoints'));

D = bwdistgeodesic(It,find(B),'quasi');

imshow(I); for n = 1:numel(i) text(j(n),i(n),[num2str(D(i(n),j(n)))],'color','g'); end

Answer by Image Analyst
on 14 Mar 2013

Find the branchpoints using bwmorph. Then subtract that image from the original to get disconnected branches. Then call regionprops(binaryImage, 'area') to get the length of all the branches.

Image Analyst
on 14 Mar 2013

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments