HSV顏色空間

2021-09-09 07:54:17 字數 1616 閱讀 4912

1.hsv是一種將rgb色彩空間中的點在倒圓錐體中的表示方法。hsv即色相(hue)、飽和度(saturation)、亮度(value)。

色調(h):用角度度量,取值範圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°。它們的補色是:黃色為60°,青色為180°,品紅為300°;

飽和度(s)表示顏色接近光譜色的程度。一種顏色,可以看成是某種光譜色與白色混合的結果。其中光譜色所佔的比例愈大,顏色接近光譜色的程度就愈高,顏色的飽和度也就愈高。飽和度高,顏色則深而豔。光譜色的白光成分為0,飽和度達到最高。通常取值範圍為0%~100%,值越大,顏色越飽和。

亮度(v)表示顏色明亮的程度,對於光源色,明度值與發光體的光亮度有關;對於物體色,此值和物體的透射比或反射比有關。通常取值範圍為0%(黑)到100%(白)。

hsv模型的三維表示從rgb立方體演化而來。設想從rgb沿立方體對角線的白色頂點向黑色頂點觀察,就可以看到立方體的六邊形外形。六邊形邊界表示色彩,水平軸表示純度,明度沿垂直軸測量。hsv顏色空間可以用乙個圓錐空間模型來描述。圓錐的頂點處,v=0,h和s無定義,代表黑色。圓錐的頂面中心處v=max,s=0,h無定義,代表白色。

2. rgb和hsv轉換

(1)  從rgb到hsv

max=max(r,g,b);

min=min(r,g,b);

v=max(r,g,b);

s=(max-min)/max;

if (r = max) h =(g-b)/(max-min)* 60;

if (g = max) h = 120+(b-r)/(max-min)* 60;

if (b = max) h = 240 +(r-g)/(max-min)* 60;

if (h < 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度。

HSV顏色空間

hsv hue,saturation,value 是根據顏色的直觀特性由a.r.smith在1978年建立的一種顏色空間,也稱六角錐體模型 hexcone model 這個模型中顏色的引數分別是 色調 h 飽和度 s 亮度 v hsv顏色空間模型 1 色調h 用角度度量,取值範圍為0 360 從紅色...

HSV顏色空間

h引數表示色彩資訊,即所處的光譜顏色的位置。該引數用一角度量來表示,紅 綠 藍分別相隔120度。互補色分別相差180度。純度s為一比例值,範圍從0到1,它表示成所選顏色的純度和該顏色最大的純度之間的比率。s 0時,只有灰度。v表示色彩的明亮程度,範圍從0到1。有一點要注意 它和光強度之間並沒有直接的...

HSV顏色空間

hsv hue,saturation,value 顏色空間的模型對應於圓柱座標系中的乙個圓錐形子集,圓錐的頂面對應於v 1。它包含rgb模型中的 r 1,g 1,b 1三個面,所代表的顏色較亮。色彩h由繞v軸的旋轉角給定。紅色對應於角度0 綠色對應於角度120 藍色對應於角度240 在hsv顏色模型...