Как установить пороговое значение для обнаружения деревьев в Matlab?

Я новичок в Матлабе. У меня есть картина, на которой есть здание, человек, речка и несколько деревьев. Мне нужно установить порог зеленой полосы (я думаю), чтобы обнаружить деревья с эрозионным расширением и т. Д. Однако я не могу даже сделать гистограмму цветов изображения. Я думаю, что все остальные объекты на картинке также имеют зеленый цвет (я использовал myImage(:,:,2) ‹ 130 ) и не только зелень, но и почти все остальные объекты были в бинарном изображении (черный цвет человека). пальто, река и др.). Можете ли вы сказать мне, как это сделать? Сначала я хочу получить гистограмму, но не знаю, как ее использовать.

myImage = imread('myIm.JPG');

?? имхист (мое изображение); не работает.

Любая помощь будет оценена по достоинству.

Если мне даже удастся получить гистограмму, как я смогу использовать ее для обнаружения деревьев? Можно ли и порог зеленый и другие цвета?


person Ada    schedule 06.03.2011    source источник


Ответы (2)


Вероятно, вы захотите сначала преобразовать изображение в другое цветовое пространство, например HSV. Вы можете сделать что-то вроде:

myImage = imread('myIm.JPG');
hsv_myImage = rgb2hsv(myImage);
imhist(hsv_myImage(:,:,1));         %just look at the hue component of the image

Тогда ваша гистограмма покажет все различные оттенки.

person Lucas    schedule 06.03.2011
comment
Я сделал это, спасибо. Я использовал myImage(:,:,2)‹130, чтобы взять зеленую полосу, но после этого я также могу исключить myImage(:,:,2) › 20 или что-то в этом роде? На картинке много других зеленых вещей (не для человеческого глаза), я тоже хочу их исключить. - person Ada; 06.03.2011

используйте функцию hist() в Matlab для цветных изображений

person user2049697    schedule 29.05.2013