2011-03-06 123 views
1

我是Matlab中的新成員。我有一張照片,裏面有一座建築,一個人,一條小河和一些樹。我需要對綠色帶進行閾值檢測(我猜)可以檢測到樹木受到侵蝕擴大等。但是,我似乎甚至無法制作圖像顏色的直方圖。圖片中的所有其他物體也都有一些綠色,我認爲(我使用myImage(:,:,2)< 130),不僅綠色,而且幾乎所有其他物體都存在二進制圖片中(人的黑色外套,河流等)。你能告訴我一個辦法嗎?我想先得到一個直方圖,但不知道如何使用它。如何設置在Matlab中檢測樹的閾值的值?

myImage = imread('myIm.JPG');

?? imhist(MYIMAGE);不起作用。

任何幫助,將不勝感激。

如果我甚至設法得到直方圖,我該如何使用它來檢測樹?我可以選擇綠色和其他顏色嗎?

回答

0

您可能需要先將圖像轉換爲另一種顏色空間,如HSV。 你可以這樣做:

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

那麼你的直方圖將指示所有不同的色調。

+0

我做到了,謝謝。我使用myImage(:,:,2)<130取綠色帶,但在此之後,我是否也可以像myImage(:,:,2)> 20或?照片中還有許多其他綠色的東西(不適合人眼),我也想消除它們。 – Ada 2011-03-06 16:30:17

0

在matlab中使用hist()函數獲取彩色圖像