簡介:
最近準備研究計算機視覺領域,那麼圖片處理和人臉識別是其中一個模塊,今天在學習OpenCV的時候,瞭解了一個新的模型HSV顏色模型,他與RNG色彩模型是一樣的東西,之前瞭解一些RGB顏色模型,但是我覺得自己沒有完全真正明白RGB到底是怎樣決定顏色的變化的,包括什麼是HSV。
目的:
- 深層理解RGB
- 什麼是HSV
- 灰度化
- 兩者聯繫
什麼是RGB?
我們可以這樣理解,我們生活的顏色其實都可以由R(紅)、G(綠)、B(藍)所組成,例如:R:83 G:134 B:139該組合會構成下面顏色。
那既然顏色是三組數字所組成,必然顏色不可能是無窮多個,R、G、B一定會有取值的範圍,他們的範圍就是0~255(根據CIE(國際照明委員會)制定的顏色系統)。
如果你還不明白,還是不要緊,接下里我將利用圖解的方式繼續讓你搞懂什麼是RGB?青請看下圖:
我們將三個通道對用到立體模型上,看到我R、G、B三個方向的通道了嗎?隨着三個叔值的不同,顏色也會隨之變化,特殊的是當R=G=B時就是灰度圖了,下面我會具體介紹什麼是灰度圖。
什麼是HSV顏色模型?
如果說RNG顏色模型是一個正方體,那麼HSV模型就是一個六棱錐,圖示如下:
通過圖示我們也能夠看到,他和RGB顏色模型相似,也是由三個屬性決定顏色,H、S、V分別是色彩、深度、明暗,按着圖中方向的變化,其對應的顏色也會改變,三者也同樣是有取值範圍的,不同的是他的灰度圖和取值範圍, S = 0時,只有灰度,取值範圍是角度:
- 色調H
用角度度量,取值範圍爲0°~360°,從紅色開始按逆時針方向計算,紅色爲0°,綠色爲120°,藍色爲240°。它們的補色是:黃色爲60°,青色爲180°,品紅爲300°;
飽和度S表示顏色接近光譜色的程度。通常取值範圍爲0%~100%,值越大,顏色越飽和。
- 明度V
明度表示顏色明亮的程度,對於光源色,明度值與發光體的光亮度有關;對於物體色,此值和物體的透射比或反射比有關。通常取值範圍爲0%(黑)到100%(白)。
什麼是灰度圖?
把白色與黑色之間按對數關係分成若干級,稱爲“灰度等級”。範圍一般從0到255,白色爲255,黑色爲0,故黑白圖片也稱灰度圖像,在醫學、圖像識別領域有很廣泛的用途。
任何顏色都由紅、綠、藍三基色組成,假如原來某點的顏色爲RGB(R,G,B),那麼,我們可以通過下面幾種方法,將其轉換爲灰度:
- 浮點算法:Gray=R*0.3+G*0.59+B*0.11
- 整數方法:Gray=(R*30+G*59+B*11)/100
- 移位方法:Gray =(R*77+G*151+B*28)>>8;
- 平均值法:Gray=(R+G+B)/3;
- 僅取綠色:Gray=G;
通過上述任一種方法求得Gray後,將原來的RGB(R,G,B)中的R,G,B統一用Gray替換,形成新的顏色RGB(Gray,Gray,Gray),用它替換原來的RGB(R,G,B)就是灰度圖了。