OpenCV——RGB和HSV顏色空間


RGB顏色空間

在RGB中,一幅圖像有三個獨立的圖像平面或通道組成:紅,綠,藍(以及第四個通道透明度)。

 

RGB顏色表


資料:網絡  ◇  編制:王踐舜

 


 

 RGB(255,23,140)是光的三原色,也即紅綠藍Red、Green、Blue,它們的最大值是255,相當於100%。

 白色:rgb(255,255,255)

 黑色:rgb(0,0,0)

 紅色:rgb(255,0,0)

 綠色:rgb(0,255,0)

 藍色:rgb(0,0,255)

 青色:rgb(0,255,255)

 紫色:rgb(255,0,255)

 調整相關數字,便可以得到深淺不一的各種顏色。

 

顏色樣式

RGB數值

顏色代碼

顏色樣式

RGB數值

顏色代碼

黑色

0,0,0

#000000

白色

255,255,255

#FFFFFF

象牙黑

88,87,86

#666666

天藍灰

202,235,216

#F0FFFF

冷灰

128,138,135

#808A87

灰色

192,192,192

#CCCCCC

暖灰

128,118,105

#808069

象牙灰

251,255,242

#FAFFF0

石板灰

118,128,105

#E6E6E6

亞麻灰

250,240,230

#FAF0E6

白煙灰

245,245,245

#F5F5F5

杏仁灰

255,235,205

#FFFFCD

蛋殼灰

252,230,202

#FCE6C9

貝殼灰

255,245,238

#FFF5EE

紅色

255,0,0

#FF0000

黃色

255,255,0

#FFFF00

鎘紅

227,23,13

#E3170D

鎘黃

255,153,18

#FF9912

磚紅

156,102,31

#9C661F

香蕉黃

227,207,87

#E3CF57

珊瑚紅

255,127,80

#FF7F50

金黃

255,215,0

#FFD700

番茄紅

255,99,71

#FF6347

肉黃

255,125,64

#FF7D40

粉紅

255,192,203

#FFC0CB

粉黃

255,227,132

#FFE384

印度紅

176,23,31

#B0171F

橘黃

255,128,0

#FF8000

深紅

255,0,255

#FF00FF

蘿卜黃

237,145,33

#ED9121

黑紅

116,0,0

#990033

黑黃

85,102,0

#8B864E

綠色

0,255,0

#00FF00

棕色

128,42,42

#802A2A

青色

0,255,255

#00FFFF

土色

199,97,20

#C76114

黃綠色

127,255,0

#7FFF00

沙棕色

244,164,95

#F4A460

青綠色

64,224,205

#40E0D0

棕褐色

210,180,140

#D2B48C

靛青色

8,46,84

#082E54

玫瑰紅

188,143,143

#BC8F8F

森林綠

34,139,34

#228B22

赫色

160,82,45

#A0522D

草綠色

107,142,35

#6B8E23

肖貢土色

199,97,20

#C76114

藍色

0,0,255

#0000FF

肖貢土色

160,32,240

#A020F0

錳藍

3,168,158

#03A89E

淡紫色

218,112,214

#DA70D6

深藍

25,25,112

#191970

紫羅蘭

138,43,226

#8A2BE2

土耳其藍

0,199,140

#00C78C

胡紫色

153,51,250

#9933FA

灰度圖像與RGB圖像的轉變
RGB[A]轉換為灰度:Y=0.299*R+0.587*G+0.114*B;

HSV顏色空間

HSV(Hue, Saturation, Value)是根據顏色的直觀特性由A. R. Smith在1978年創建的一種顏色空間, 也稱六角錐體模型(Hexcone Model)。、這個模型中顏色的參數分別是:色調(H),飽和度(S),亮度(V)。
 
色調H:用角度度量,取值范圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°。它們的補色是:黃色為60°,青色為180°,品紅為300°;
飽和度S:取值范圍為0.0~1.0;
亮度V:取值范圍為0.0(黑色)~1.0(白色)。
 
RGB和CMY顏色模型都是面向硬件的,而HSV(Hue Saturation Value)顏色模型是面向用戶的。
HSV模型的三維表示從RGB立方體 演化而來。設想從RGB沿立方體對角線的白色頂點向黑色頂點觀察,就可以看到立方體的六邊形外形。六邊形邊界表示色彩,水平軸表示純度,明度沿垂直軸測量。
 

HSV顏色分量范圍

一般對顏色空間的圖像進行有效處理都是在HSV空間進行的,然后對於基本色中對應的HSV分量需要給定一個嚴格的范圍,下面是通過實驗計算的模糊范圍(准確的范圍在網上都沒有給出)。

H:  0— 180

S:  0— 255

V:  0— 255

此處把部分紅色歸為紫色范圍:

 

HSV六棱錐

H參數表示色彩信息,即所處的光譜顏色的位置。該參數用一角度量來表示,紅、綠、藍分別純度S為一比例值,范圍從0到1,它表示成所選顏色的純度和該顏色最大的純度之間的比率。S=0時,只有灰度。相隔120度。互補色分別相差180度。

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

 
1、RGB轉化到HSV的算法:
max=max (R ,G ,B )
min=min (R ,G ,B )
V=max (R ,G ,B )
S= (max-min )/max
ifR = max ,H = (G-B )/ (max-min )* 60
ifG = max ,H = 120+ (B-R )/ (max-min )* 60
ifB = max ,H = 240 + (R-G )/ (max-min )* 60
ifH < 0 ,H = H+ 360
 
2、HSV轉化到RGB的算法:
if s = 0
R=G=B=V
else
H /= 60;
i = INTEGER(H)
f = H - i
a = V * ( 1 - s )
b = V * ( 1 - s * f )
c = V * ( 1 - s * (1 - f ) )
switch(i)
case 0: R = V; G = c; B = a;
case 1: R = b; G = v; B = a;
case 2: R = a; G = v; B = c;
case 3: R = a; G = b; B = v;
case 4: R = c; G = a; B = v;
case 5: 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來實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM