顏色空間模型

數字圖像在內存中的存儲方式


數字圖像在內存中的存儲就是一排排數字矩陣,如下圖所示:

在這裏插入圖片描述

上圖展示了圖片中很小一個區域在內存中的存儲形式,矩陣中的數值表示每個像素點強度值的大小。
OpenCv 讀取圖像數據並形成內存中的像素矩陣,像素矩陣的排布與圖像的顏色空間和數據類型有關。OpenCv 作爲一個計算機視覺庫,其主要工作是處理和操作這些像素矩陣信息。
顏色空間是指針對一個給定的顏色模型,如何組合像素並對其進行編碼;常見的顏色空間有灰度級空間、RGB顏色空間、HSV/HLS顏色空間、YCrCb顏色空間。數據類型決定了控制顏色的精度,常見的數據類型有無符號( 00255255 之間)的 char,有符號( 127-127127127 之間)的 charfloatfloat型( 44 字節,3232位),double型(88字節,6464位),其中,floatdouble 可以給出更精細的顏色分辨能力。同時增加像素的尺寸也會增加圖像所佔的內存空間。


RGB顏色空間模型


RGBRGB 的顏色空間:該顏色空間主要用於計算機圖形學中,表示每個像素具有 RGBR、G、B 三種顏色分量,每個分量均爲 [0,255][0, 255] 的大小,以三個分量爲座標軸,構建一個三維顏色空間。如下圖所示。

在這裏插入圖片描述

由圖可知:[0,0,0][0, 0, 0]:純黑色; [255,255,255][255, 255, 255]:純白色; [255,0,0][255, 0, 0]:純紅色; [0,255,0][0, 255, 0]:純綠色; [0,0,255][0, 0, 255]:純藍色。
圖片中任何一個帶顏色的像素都是由RGB構成的結構[B, G, R, A](這是OpenCv的存儲順序, 不同於我們認爲RGB順序)。

在這裏插入圖片描述


HSV的顏色空間


這個顏色模型中參數分別是:色調(H)飽和度(S)明度(V)

  • 色調(H):用角度來度量,取值範圍爲 [0°360°][0°,360°],從紅色開始按逆時針方向計算,紅色爲 0°,綠色爲 120°120°,藍色爲 240°240°。它們的補色是:黃色爲 60°60°,青色爲 180°180°,品紅爲 300°300°
  • 飽和度(S):飽和度 SS 表示顏色接近光譜色的程度。一種顏色,可以看成是某種光譜色與白色混合的結果,其中光譜色所佔的比例越大,顏色接近光譜色的成都越高,顏色的飽和度也就越高。飽和度越高,顏色則深而豔。光譜色的白光成分爲 00,飽和度達到最高。通常取值範圍爲 [0%,100%][0\%,100\%],值越大,顏色越飽和。
  • 明度(V):明度表示顏色明亮的程度,對於光源色,明度值與發光體的光亮度有關;對於物體色,此值和物體的透射比或反射比有關。同城取值爲[0%,100%][0\%, 100\%]。與光強度沒有直接的聯繫。

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

在這裏插入圖片描述在這裏插入圖片描述

HSVHSV 對於用戶來說是一種直觀的顏色模型。例如,要得到一種彩色模型,我們先指定彩色角 HH,並讓 A=S=1A=S=1,然後我們通過向其中加入黑色和白色得到我們需要的顏色。增加黑色可以減小 VVSS 不變,增加白色可以減小 SSVV 不變。例如,要得到深藍色,V=0.4S=1H=240V=0.4, S = 1, H = 240


HSI的顏色空間


HSIHSI,也可以叫 HSL(HueSaturationIntensity(Lightness))HSL(Hue-Saturation-Intensity(Lightness)),其類似與 HSVHSV 顏色空間模型。

  • 色調(H),飽和度(S):與 HSVHSV 顏色模型的概念是一樣的。顏色空間任一點距離 II 的距離。
  • 強度(I):對應成像亮度和圖像灰度,是顏色的明亮程度。這個分量可以從圖片彩色信息(色調和飽和度)裏消去,使得 HSIHSI 模型成爲開發基於彩色描述的圖像處理方法的良好工具,而這種彩色描述對於人來說是自然而直觀的。
    注意:當強度 I=0I=0 時,色調、飽和度 SS 無定義;當 S=0S=0 時,色調 HH 無定義。

在這裏插入圖片描述


HSV與HSI顏色空間模型的區別


HSIHSIHSVHSV 的顏色模型比較接近,它們用來描述顏色相對於 RGBRGB 等模型顯得更加的自然。
HSIHSIHSVHSV 中,HH 都表示色相,該值範圍爲 [0,360][0, 360],色相的意義就是光的波長,不同波長的光呈現了不同的色相。SS 都表示飽和度,其本質爲一束光可能有很多種不同波長的單色光構成,波長越多顏色越分散,而單色光構成的色彩純淨度就很高。
兩種模型唯一不同的就是最後一個分量:在 HSIHSI 中表示亮度 Lightness/Luminance/Intensity(Lightness/Luminance/Intensity)HSVHSVVV 表示明度(Value/Brightness)。

在這裏插入圖片描述

上圖中能很好的對比出 HSIHSIHSVHSV 的區別:在 HSIHSI 中,圓柱體外圍是純色,這圈純色爲與亮度 L/I(L/I) 等於 1/21/2 的部位;而在 HSVHSV 中,純色對應於明度 (V)(V) 等於 11 的部位。
HSLHSL 中,飽和度分量總是對應等價的灰度值;而在 HSVHSV 中,在極大值時候,飽和度從全飽和漸變話到白色,這可以認爲是反直覺的。
HSLHSL 中,亮度的跨越是從黑色經過色相到白色的;而在 HSVHSV 中,VV 分量是從黑色過渡到色相 (H)(H) 的。


RGB、HSV和HSI的轉換方法


RGB–>HSV

在這裏插入圖片描述


HSV --> RGB

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章