RGB和HSV顏色轉換

2021-08-22 17:35:19 字數 1379 閱讀 1955

h引數表示色彩資訊,即所處的光譜顏色的位置。該引數用一角度量來表示,紅、綠、藍分別相隔120度。互補色分別相差180度。

純度s為一比例值,範圍從0到1,它表示成所選顏色的純度和該顏色最大的純度之間的比率。s=0時,只有灰度。

v表示色彩的明亮程度,範圍從0到1。有一點要注意:它和光強度之間並沒有直接的聯絡。

rgb轉化到hsv的演算法:

1: maxmaxrgb 

2: minminrgb

3: r max h gbmaxmin

4: g max h brmaxmin

5: b max h rgmaxmin

6: 7: h h

8: h h h

9: 10: vmaxrgb

11: smaxminmax

hsv轉化到rgb的演算法

1:  s   

2: rgbv

3: 4: h

5: i integerh

6: 7: f h i

8: a v s

9: b v s f

10: c v s f

11:

12: i

13: r v g c b a

14: r b g v b a

15: r a g v b c

16: r a g b b v

17: r c g a b v

18: r v g a b b

hsv對使用者來說是一種直觀的顏色模型。我們可以從一種純色彩開始,即指定色彩角h,並讓v=s=1,然後我們可以通過向其中加入黑色和白色來得到我們需要的顏色。增加黑色可以減小v而s不變,同樣增加白色可以減小s而v不變。例如,要得到深藍色,v=0.4 s=1 h=240度。要得到淡藍色,v=1 s=0.4 h=240度。

一般說來,人眼最大能區分128種不同的色彩,130種色飽和度,23種明暗度。如果我們用16bit表示hsv的話,可以用7位存放h,4位存放s,5位存放v,即745或者655就可以滿足我們的需要了。

由於hsv是一種比較直觀的顏色模型,所以在許多影象編輯工具中應用比較廣泛,如photoshop(在photoshop中叫hsb)等等,但這也決定了它不適合使用在光照模型中,許多光線混合運算、光強運算等都無法直接使用hsv來實現。

順便提一下,另外一種直觀顏色模型是hsl模型,該模型中前兩個引數和hsv一樣,而l表示亮度。它的三維表示為一雙稜錐。

RGB和HSV顏色轉換

分類 影象處理 2008 07 21 21 50 2979人閱讀收藏 舉報integer 演算法工具 c360 h引數表示色彩資訊,即所處的光譜顏色的位置。該引數用一角度量來表示,紅 綠 藍分別相隔120度。互補色分別相差180度。純度s為一比例值,範圍從0到1,它表示成所選顏色的純度和該顏色最大的...

RGB和HSV顏色空間

rgb顏色空間 rgb red,green,blue 顏色空間最常用的用途就是顯示器系統,彩色陰極射線管,彩色光柵圖形的顯示器都使用r g b數值來驅動r g b電子槍發射電子,並分別激發螢光屏上的r g b三種顏色的螢光粉發出不同亮度的光線,並通過相加混合產生各種顏色 掃瞄器也是通過吸收原稿經反射...

RGB到HSV顏色空間的轉換

opencv預設讀取影象是rgb通道,現需要轉化到hsv hue,saturation,value 顏色空間,opencv提供cvtcolor c void cvtcolor inputarray src,outputarray dst,int code,int dstcn 0 函式對顏色空間進行轉...