關於HSL和HSV顏色空間的詳細論述

2021-06-18 06:30:03 字數 2173 閱讀 5001

目前在計算機視覺領域存在著較多型別的顏色空間(color space)。hsl和hsv是兩種最常見的圓柱座標表示的顏色模型,它重新影**rgb模型,從而能夠視覺上比rgb模型更具有視覺直觀性。

hsl代表色調(hue),飽和度(saturation)和亮度(lightness),通常也稱為hls。hsv代表色調,飽和度和值(value)。注意hsl 和hsv的兩個h的含義是相同的,而飽和度的定義是不同的,雖然都叫飽和度,從後面的定義可以看出二者的不同。

hsl 和 hsv 二者都把顏色描述在圓柱體內的點,這個圓柱的中心軸取值為自底部的黑色到頂部的白色而在它們中間是的灰色,繞這個軸的角度對應於「色相」,到這個軸的距離對應於「飽和度」,而沿著這個軸的距離對應於「亮度」,「色調」或「明度」。 hsv 以人類更熟悉的方式封裝了關於顏色的資訊:「這是什麼顏色?深淺如何?明暗如何?」。hsl 顏色空間類似於 hsv,在某些方面甚至比它還好。hsl的模型為雙圓錐形狀。

這兩種表示在用目的上類似,但在方法上有區別。二者在數學上都是圓柱,但 hsv(色相,飽和度,明度)在概念上可以被認為是顏色的倒圓錐體(黑點在下頂點,白色在上底面圓心),hsl 在概念上表示了乙個雙圓錐體和圓球體(白色在上頂點,黑色在下頂點,最大橫切面的圓心是半程灰色)。hsv 模型在 1978 年由埃爾維•雷•史密斯創立。下圖給出了hsl和hsv的圓柱模型。

用圓錐模型如圖:

在圓錐上,角度代表色調h,飽和度s表示為點到中心豎線的距離,而亮度或者值v用中心豎線表示。紅色的角度為0度,依次為黃色、綠色、青色、藍色、橙色。連續兩種顏色的角度相差60度。

下圖給出了乙個rgb到hs平面的影射例子。

下表給出了rgb到hsl和hsv的影射樣例。

那麼如何從rgb到hsl和hsv的轉換呢?利用下面的步驟就可以實現從rgb到hsl和hsv的轉換。

已知一點的r、g、b,計算最大值和最小值

計算h:

計算l和v:

計算s:

上面的公式實現了從rgb到hsl和hsv的轉換。那麼當採用opencv的彩色空間轉化函式cvcvtcolor(orgframe,destframe, cv_bgr2hsv),如果影象的資料型別為8位字元型時,則h、s、v都量化到整數,可以看出h的精度不是很高。

當在hsl和hsv空間進行處理後,需要轉換到rgb,可以採用下面的公式計算rgb。

先討論hsv到rgb的轉換,這裡h ∈ [0°, 360°], s ∈ [0, 1],  v ∈ [0, 1]。轉換公式如下:

計算c

最後得到:

從hsl到rgb的轉換。這裡h ∈ [0°, 360°], s ∈ [0, 1],  v ∈ [0, 1]。轉換公式如下:

然後:最後得到:

展示的 rgb 值的範圍是 0.0 到 1.0。

RGB HSV和HSL顏色空間

詳細資訊click 侵刪rgb 是我們接觸最多的顏色空間,由三個通道表示一幅影象,分別為紅色 綠色 g 和藍色 b 這三種顏色的不同組合可以形成幾乎所有的其他顏色。rgb 顏色空間是影象處理中最基本 最常用 面向硬體的顏色空間,比較容易理解。rgb 顏色空間利用三個顏色分量的線性組合來表示顏色,任何...

整理 opencv顏色灰度值 HSV和HSL

前言 在opencv很多函式中都需要設定灰度值引數,但是我們很多時候並不知道我們的灰度值是多少,我整理了兩種方法如下 1.查顏色表,第一表檢視顏色對應的灰度值的大概表示,用第二幅圖估計顏色的灰度值的大致大小,雖有些粗略,但是挺實用 最左邊值是255,最右邊的值是0 原圖很清晰,傳上來就不行了 2.常...

RGB和HSV顏色空間

rgb顏色空間 rgb red,green,blue 顏色空間最常用的用途就是顯示器系統,彩色陰極射線管,彩色光柵圖形的顯示器都使用r g b數值來驅動r g b電子槍發射電子,並分別激發螢光屏上的r g b三種顏色的螢光粉發出不同亮度的光線,並通過相加混合產生各種顏色 掃瞄器也是通過吸收原稿經反射...