2013-07-16 21 views
0

我得到的圖像的像素數據是這樣的:什麼範圍的RGB被認爲是「藍色」?

var p = c.getImageData(x, y, 1, 1).data; 
var red = p[0]; 
var green = p[1]; 
var blue p[2]; 

對不起,這一點,但我的問題是沒有太大的有關代碼,什麼範圍的RGB的被認爲是藍色的? (例如,紅色也可能由藍色組成,但我們稱它爲紅色,如何確定它?)

+2

我不認爲有一個固定的定義。我會打開一個調色板並嘗試爲自己定義它。 –

+0

@Pekka웃謝謝,我以爲會有人已經爲我做了:) – karaxuna

+1

@karaxuna你可以尋找藍色的空間。 http://www.wolframalpha.com/input/?i=blue&a=*C.blue-_*ColorSet-&a=*DPClash.ColorE.blue-_**Mathematica.Blue-.dflt- – raam86

回答

5

色調範圍從180到300的任何顏色都可以認爲是藍色,因爲那是原色優勢。然而,如果你也想考慮二次色,那麼你的範圍是210到270.然後你必須考慮像「它仍然看起來青色」的事情(因爲綠色比藍色更感知光明)以及類似的東西,有真的沒有硬性的定義。

所以你可以做的是說「如果(最大(紅色,綠色,藍色)==藍色),那麼它是藍色的」,沒有人會因此而犯錯。

+0

我喜歡「如果(最大(紅色,綠色,藍色)==藍色)那麼它是藍色」的想法,這很簡單:) – karaxuna