2013-06-24 59 views
0

我有色相直方圖的特定圖像,如在下面的圖中描繪:如何計算亮度直方圖?

enter image description here

這裏是我使用用於計算色調直方圖(我使用的EMGU包裝器)的代碼:

Image<Hsv, Byte> hsvImage = originalImage.Convert<Hsv, Byte>(); 
    Image<Gray, byte>[] channels = hsvImage.Split();  
    DenseHistogram hist = new DenseHistogram(19, new RangeF(0,190)); 
    hist.Calculate(new IImage[1] { channel }, true, null); 

我需要獲取位於紅色虛線之間範圍內的像素的亮度直方圖。

有沒有人有任何想法如何實現這個?

預先感謝您。

+0

什麼是'channel'聲明?它僅僅是您想要繪製的頻道的佔位符嗎? – Aurelius

回答

3

您需要使用InRange來獲取圖像,該圖像是落入所需範圍的像素蒙版。然後將該圖像作爲mask參數(在您的示例中爲null)傳遞給Calculate()。它看起來像你想70和100

的代碼之間的色調值可能是這樣的:(聲明:我不寫C#)

DenseHistogram brightnessHist = new DenseHistogram(10, new RangeF(0,260)); //Use whatever range you want 
//InRange is probably exclusive of upper bound 
brightnessHist.Calculate(new IImage[1]{channels[2]}, false, channels[0].InRange(70,101)); 
+0

Aurelies,任何想法我怎麼能desplay亮度的結果? – Michael

+0

我會假設你顯示其他直方圖的相同方式。 – Aurelius