я пытаюсь определить определенный оттенок зеленых листьев (например, темно-зеленый) из прикрепленного изображения.Как мне сделать это наиболее эффективным способом?Пока что я конвертирую 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, 'centroid');
boxes = cat(1, m.Centroid);
imshow(pic)
hold on
plot(boxes(:,1),boxes(:,2), 'b*')
hold off
Ваша помощь будет высоко оценена.