我试图从所附图像中识别出特定的绿叶阴影(例如海军绿色)。我如何以最有效的方式做到这一点?到目前为止,我正在将 RGB 转换为 HSV,然后根据某些特定的饱和度范围和值对图像进行阈值处理,这将隔离我想要的阴影。它正在处理一些图像,而在其他图像上到处都是。我想要一些可以在饱和度和值略有不同的任何不同图像中隔离特定绿色阴影的东西(例如,如果照片是在光线过多的情况下拍摄的) 图像链接
pic=imread('image.jpg');
q=rgb2hsv(pic);
H=q(:,:,1);
S=q(:,:,2);
V=q(:,:,3);
thresh=S>0.6111 & S<0.6666 & V>0.3888 & V<0.4583;
st=strel('diamond',20);
w=imdilate(thresh,st);
comps=bwconncomp(w,8);
num=comps.NumObjects;
fprintf('The number of leaves is %i',num)
% 然后我尝试在图像上显示一些指针,以向我展示 matlab 识别阴影的位置。m = regionprops(w,'质心');
boxes = cat(1, m.Centroid);
imshow(pic)
hold on
plot(boxes(:,1),boxes(:,2), 'b*')
hold off
您的帮助将不胜感激。