Count the endpoints in a image

How to count the number of endpoints as marked in this image.
I tried with bwmorph(endpoints). But my output is like this.

5 Comments

What exact code steps did you use?
I= imread('Endpoints.png');
B= I(:,:,3);
E= bwmorph(B,'Endpoints');
figure,imshow(E);
Rik
Rik on 14 Oct 2020
Edited: Rik on 14 Oct 2020
This time I edited your post for you. Next time, please use the tools explained on this page to make your question more readable.
If you read the documentation you see that it is meant to be run on a skeletonized image, so you need to do that first.
I= imread('Endpoints.png');
B= I(:,:,3)>128;
S= bwmorph(B,'skel');
E= bwmorph(S,'endpoints');
figure,imshow(E);
Sure. Will follow the documentation.
Thank you so much. I got it after the skeletonization for that image.
And I followed the same for this image which I didnt get because the skeletonized image is not continuous. How to fix that. Attached the code I used for this image.
I = imread('Onion.png');
mask = I(:,:,1)<I(:,:,2) & I(:,:,3)<I(:,:,2);
skel = bwmorph(mask,'skel',Inf);
figure,imshow(skel);
E = bwmorph(skel, 'endpoints');
You could try imclose to close the gaps and smoothen your mask. Another possibility is to modify your initial mask creation.
Side note: if you want help with your specific images you will have to attach the originals.

Sign in to comment.

Answers (0)

Tags

Asked:

on 14 Oct 2020

Commented:

Rik
on 14 Oct 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!