RGB與HSV的深層理解 詳細

2021-09-24 02:05:04 字數 1396 閱讀 1156

最近準備研究計算機視覺領域,那麼處理和人臉識別是其中乙個模組,今天在學習opencv的時候,了解了乙個新的模型hsv顏色模型,他與rng色彩模型是一樣的東西,之前了解一些rgb顏色模型,但是我覺得自己沒有完全真正明白rgb到底是怎樣決定顏色的變化的,包括什麼是hsv。

深層理解rgb

什麼是hsv

灰度化兩者聯絡

我們可以這樣理解,我們生活的顏色其實都可以由r(紅)、g(綠)、b(藍)所組成,例如:r:83 g:134 b:139該組合會構成下面顏色。

那既然顏色是三組數字所組成,必然顏色不可能是無窮多個,r、g、b一定會有取值的範圍,他們的範圍就是0~255(根據cie(國際照明委員會)制定的顏色系統)。

如果你還不明白,還是不要緊,接下裡我將利用**的方式繼續讓你搞懂什麼是rgb?青請看下圖:

我們將三個通道對用到立體模型上,看到我r、g、b三個方向的通道了嗎?隨著三個叔值的不同,顏色也會隨之變化,特殊的是當r=g=b時就是灰度圖了,下面我會具體介紹什麼是灰度圖。

如果說rng顏色模型是乙個正方體,那麼hsv模型就是乙個六稜錐,圖示如下:

通過圖示我們也能夠看到,他和rgb顏色模型相似,也是由三個屬性決定顏色,h、s、v分別是色彩、深度、明暗,按著圖中方向的變化,其對應的顏色也會改變,三者也同樣是有取值範圍的,不同的是他的灰度圖和取值範圍, s = 0時,只有灰度,取值範圍是角度:

用角度度量,取值範圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°。它們的補色是:黃色為60°,青色為180°,品紅為300°;

飽和度s表示顏色接近光譜色的程度。通常取值範圍為0%~100%,值越大,顏色越飽和。

明度表示顏色明亮的程度,對於光源色,明度值與發光體的光亮度有關;對於物體色,此值和物體的透射比或反射比有關。通常取值範圍為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)就是灰度圖了。

android中Logcat的深層理解

android的開發也可以歸類為嵌入式裝置的開發,即便不是嵌入式開發,依然要注意對記憶體和處理的使用。養成乙個好的習慣對自己的幫助是很大的。在log的原始碼中可以看到這樣的注釋 the order in terms of verbosity,from least to most is error,w...

mysql的深層理解 MySQL深層次的總結

客戶端與伺服器連線 tcp ip 命名管道和共享記憶體 unix域套接字檔案 處理請求包括 連線管理,解析與優化,儲存引擎 show engines create table 表名 建表語句 engine 儲存引擎名稱 alter table 表名 engine 儲存引擎名稱 啟動選項 配置檔案路徑...

從 RGB 到 HSV 的轉換詳細介紹

從rgb 到 hsv 的轉換詳細介紹 1.rgb rgb是從顏色發光的原理來設計定的,通俗點說它的顏色混合方式就好像有紅 綠 藍三盞燈,當它們的光相互疊合的時候,色彩相混,而亮度卻等於兩者亮度之總和,越混合亮度越高,即加法混合。紅 綠 藍三個顏色通道每種色各分為256階亮度,在0時 燈 最弱 是關掉...