看《數字圖像處理》那本書看了很久也沒有明白HSI和RGB之間轉換原因,於是上網查了一些資料,終於有了一些小小的理解,標記一下。不足或者錯誤之處,還希望各位大牛指正,不吝賜教。(refer:http://imageprocessingplace.com/root_files_V3/tutorials.htm)
1.為什么要引入HSI彩色模型?
簡單的來說,RGB模型可以很好的適應顏色的事實,但是並不能很好的適應人解釋的顏色。當人觀察一個彩色物體時候,我們用色調(Hue),飽和度(Saturation )和強度(Intensity)來描述。其中色調是指一種純色的顏色屬性,飽和度是指純色被白光稀釋的程度的度量,亮度是一個主觀因子,實際上是不可度量的。總體來說,RGB模型更適合圖像顏色生成,而HSI模型適合圖像描述
2.從RGB轉化到HSI
RGB模式的分量是一個正方體上的單元定義的,而HSI模型是定義在如下的一個顏色三角形中。一個像素點P的色調H,是圖中所示向量相對於red軸的角度,因此規定紅色的色調H = 0。 ,H = 60。 是黃色 。而對比度則是P離那個三角形的中點的向量長度。
融合了顏色,對比度,亮度之后,圖像應該展現出如上圖b中的結構,並且該結構的表面代表了一種純對比度的顏色。
為了利用RGB分量計算我們定義如下的變量(在此處也就是RGB做歸一化)。
r = R/(R+G+B); g = G/(R+G+B); b = B/(R+G+B);
此外定義HSI模型中I分量為如下定義:I = (R+G+B)/3;並且有如下結論和定義:
(1)w點的坐標為(1/3,1/3,1/3),從(b)圖可以看出;
(2)任意一個像素點的坐標為(r,g,b),因為下面的圖形都經過歸一化處理;
(3)從原點到W的向量定義為w,同理從遠點到PR 的的向量記作PR,到P的向量記作P;
(4)線段PiQi(其中i=R,G,B)相交於w點;
(5)令r0 = R/I,g0 = G/I,b0 = B/I;對於線段PRQR來說go = bo,同理,其他情況也一樣。
(6)對於i = R,G,B來說|WQi|/|PQi| = 1/3;(三等分點,不知道的查查初中數學)
(7)定義扇形RG是區域WPRPG,同理GB,BR.
容易看出向量(PR –W )和向量(P-W)之間的夾角就是色調值H
現在主要的問題就是如何用R,G,B來表示上述的表達式,注意到
,將r,g,b替換回去可以得到如下程式
色彩的對比度是色彩被白光沖淡的量度,因此S = |WP|/|WP'|,其中P' 是延長WP與三角形的交點,令T為W在rg平面上的投影,Q是P在WT上的投影
,又因為|WT| = 1/3,|QT| = b,
第一次寫博客,對live writer軟件不是很熟悉,排版很亂,不過希望可以幫助到一些朋友。