How can I remove everything except leaves?

1 view (last 30 days)
  1 Comment
Oveis Hassanijalilian
Oveis Hassanijalilian on 2 Dec 2014
the small part of the finger above the leaf is really difficult for me to remove. I tried to remove it based on Hue, but it also remove the brown parts of the leaves.

Sign in to comment.

Accepted Answer

Mohammad Abouali
Mohammad Abouali on 2 Dec 2014
Edited: Mohammad Abouali on 2 Dec 2014
Use a combination of hsv and activecontour
I=imread('Finger2.png');
hsv=rgb2hsv(I);
m=(hsv(:,:,1)>0.08 & hsv(:,:,1)<0.2);
m2=activecontour(hsv(:,:,1),m,'edge','ContractionBias',-0.1);
imshow(m2)
Movafagh bashi
  2 Comments
Oveis Hassanijalilian
Oveis Hassanijalilian on 2 Dec 2014
Thank you for your response. I have a problem with this code. I think it is only usable in Matlab R2014b. I am using R2014a which I believe does not support 'ContractionBias'. I would appreciate if you could respond me. Mamnoon
Mohammad Abouali
Mohammad Abouali on 2 Dec 2014
mmmm.
How about this?
I=imread('Finger2.png');
hsv=rgb2hsv(I);
m=(hsv(:,:,1)>0.08 & hsv(:,:,1)<0.2);
m=imfill(m,'holes');
m=bwmorph(m,'majority',25);
m2=activecontour(hsv(:,:,1),m,'edge','SmoothFactor',1.5);
imshow(m2)
It doesn't work as good as last one though.
Try some dilation and erosion too.

Sign in to comment.

More Answers (1)

Deepesh B
Deepesh B on 2 Dec 2014
hi
By
imtool
command find exact threshold for leaves color and apply segmentation for that color only finger will be automatically remove d
while fixing threshold use separate threshold for R, G, B with | & conditions

Community Treasure Hunt

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

Start Hunting!