How can I remove everything except leaves?

1 次查看(过去 30 天)
  1 个评论
Oveis Hassanijalilian
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.

请先登录,再进行评论。

采纳的回答

Mohammad Abouali
Mohammad Abouali 2014-12-2
编辑:Mohammad Abouali 2014-12-2
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 个评论
Oveis Hassanijalilian
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 2014-12-2
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.

请先登录,再进行评论。

更多回答(1 个)

Deepesh B
Deepesh B 2014-12-2
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!

Translated by