How can I remove everything except leaves?

1 Ansicht (letzte 30 Tage)
Oveis Hassanijalilian
Oveis Hassanijalilian am 2 Dez. 2014
  1 Kommentar
Oveis Hassanijalilian
Oveis Hassanijalilian am 2 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Mohammad Abouali
Mohammad Abouali am 2 Dez. 2014
Bearbeitet: Mohammad Abouali am 2 Dez. 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 Kommentare
Oveis Hassanijalilian
Oveis Hassanijalilian am 2 Dez. 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 am 2 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Deepesh B
Deepesh B am 2 Dez. 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!

Translated by