如何由RGB計算HSV空間的色相值

2021-07-16 17:17:40 字數 1110 閱讀 2557

前提:max、min取值範圍:0-255

公式:

解釋:(1) 正六邊形色平面的每個區域中,色相值都有一位是255

,一位是0,所以恆成立max=255,min=0。所以max=r(g、b)時,即為r(g、b)=255時。

(2) 色平面每條對角線分割出兩個區域都出現一種顏色值大於另一種顏色值的情況。例如,

分割線0º左邊

b>g

,右邊反之;

分割線120º一邊

r>b

,另一邊反之

;分割線

240º

一邊g>r

,另一邊反之。

(3) 當

max=min

時,此時r、

g、b色值都相同,對應

rgb顏色空間對角線上的顏色,即灰度色。

(4) max=r(g、b)

的區域有兩個,分別位於

(r,0,0)

或者(0,g,0)

或(0,0,b)

的左右兩邊

(5) 當

max=r

時,顏色差

(g-b)

的正負影響最終結果,所以要分情況討論。

(6) 當

max=g

或者max=b

時,因為

(0,g,0)

或(0,0,b)

這兩處分割線的度數都大於60º

,而分割線左右兩邊的區域度數都小於60º

,無論計算處的顏色

(b-r

、r-g)

差是正還是負,公式中計算處度數都不會算錯,所以可以不分情況討論。

(7)正六邊形色平面的每個區域中,色相值都有一位是255

,一位是0,一位從0到255漸變。又因為max就是255,min就是0,所以60

º/(max-min)即為60

º/255乙個區域內單位色相的度數值,即刻度,再乘以色相差,即為度數。

對應的圖:

RGB到HSV顏色空間的轉換

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

RGB和HSV顏色空間的快速近似轉換演算法

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...

目標檢測中RGB和HSV顏色空間的距離度量方式

在進行彩色影象處理中,尤其是對於分割 分類和識別,都不可避免的涉及到顏色的度量。而在具體的應用中,選擇哪種方式來度量顏色間的差異是乙個很值得研究的問題。本文根據 change detection in color images的內容翻譯而來,如果還要了解相關細節,請參考原文 change detec...