HSV顏色模型

2021-05-26 07:07:13 字數 1685 閱讀 9428

hsv是指hue(色相)、saturation(飽和度)和value(亮度」,「色調」或「明度」)。

hsv模型的三維表示從rgb立方體演化而來。設想從rgb沿立方體對角線的白色頂點向黑色頂點觀察,就可以看到立方體的六邊形外形。六邊形邊界表示色彩,水平軸表示純度,明度沿垂直軸測量。

hsv六稜錐

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

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

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

rgb轉化到hsv的演算法

max=max(r,g,b)

min=min(r,g,b)

if r = max, h = (g-b)/(max-min)

if g = max, h = 2 + (b-r)/(max-min)

if b = max, h = 4 + (r-g)/(max-min)

h = h * 60

if h < 0, h = h + 360

v=max(r,g,b)

s=(max-min)/max

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顏色模型 h 色調 0 360 決定顯示什麼顏色 s 飽和度 0.0 1.0 v 亮度 0 1 圓錐的頂面中心處 s 0,v 1,h無定義,代表白色。在圓錐的頂點 即原點 處,v 0,h和s無定義,代表黑色。在圓錐頂面的圓周上的顏色,v 1,s 1,這種顏色是純色。色調h 用角度度量,取值範圍...

基於主觀顏色模型HSV顏色空間

將影象分解成hsv的三個通道,並分別顯示 rect select vectormv capture frame cvtcolor frame,gray,cv bgr2gray cvtcolor frame,gray,color bgr2gray 使用灰度圖進行檢測 計算目標模板的直方圖特徵 在此之前...

RGB YUV和HSV顏色空間模型

影象處理基礎知識 顏色空間 rgb顏色空間 rgb色彩空間還可以用乙個三維的立方體來描述。當三基色分量都為0 最弱 時混合為黑色光 當三基色都為k 最大,值由儲存空間決定 時混合為白色光。rgb色彩空間採用物理三基色表示,因而物理意義很清楚,適合彩色顯象管工作。然而這一體制並不適應人的視覺特點。因而...