HSV顏色空間

2021-07-10 02:15:20 字數 2614 閱讀 5341

hsv(hue, saturation, value)是根據顏色的直觀特性由a. r. smith在2023年建立的一種顏色空間, 也稱六角錐體模型(hexcone model)。

這個模型中顏色的引數分別是:色調(h),飽和度(s),亮度(v)。

hsv顏色空間模型[1]

色調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六稜錐

h引數表示色彩資訊,即所處的光譜顏色的位置。該引數用一角度量來表示,紅、綠、藍分別純度s為一比例值,範圍從0到1,它表示成所選顏色的純度和該顏色最大的純度之間的比率。s=0時,只有灰

hsv顏色空間模型[2]

度。相隔120度。互補色分別相差180度。

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

rgb轉化到hsv的演算法

hsv顏色空間模型(圓錐模型)[3]

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

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來實現。

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顏色模型...