在這一篇文章中,我們將會學(xué)習(xí)使用一下OpenCV中色彩空間的轉(zhuǎn)換函數(shù),我們這里說的色彩空間是說的使用多種顏色(通常指三種以上),來表示顏色的方法,像是我們平時所說的RGB,HSV,YUV,YCRCB,都是色彩空間模型。OpenCV也很方便的封裝了很多的色彩空間函數(shù)。下面我們一起來實踐一下(以下所有試驗都根據(jù)下圖完成,我截取的Windows自帶的壁紙^_^)
一:RGB
RGB我們很熟悉,一幅圖像是由三個獨立的紅,藍,綠通道構(gòu)成,每個值代表每個像素的每個分量的度量值,如果值越高也就越亮。
因為人眼也是由三種感光細胞構(gòu)成,因此RGB我們是最熟悉的,比如在電競的時候,使用RGB燈可以刺激人的感官,提升成績。
上圖也就是RGB的實現(xiàn)方式。
二:灰度
灰度圖像我們的應(yīng)用也是非常廣泛,包括我們后續(xù)的如果做視頻追蹤也都是將彩色視頻逐幀轉(zhuǎn)換為灰度圖像再去定位,不過這是后話。
彩色轉(zhuǎn)換為灰度圖像的計算方法如下:
每個像素值只表示灰度信息這一單一信息
RGB[A]準換成灰度:Y=0.299*R+0.587*G+0.114*B
灰度轉(zhuǎn)換為RGB[A]:R=Y,G=Y,B=Y,A=max(ChannelRange)
在OpenCV中我們可以使用cvtColor函數(shù)來實現(xiàn)轉(zhuǎn)換
結(jié)果如下:
三:HSV
HSV顏色空間輸入面向色度的顏色坐標系統(tǒng)的一種。這種類型的顏色模型接近人類顏色感知的仿真模型。
HSV的三個通道表示色度(H給出的顏色光譜構(gòu)成的一種度量),飽和度(S給出主波長中的純光比例,這表明一種顏色距離相同亮度灰度的程度)和純度(V給出相對于白色光照強度的亮度),對應(yīng)于直覺上的色彩、明暗和色調(diào)。HSV廣泛應(yīng)用于色彩的比較.
關(guān)于HSV的計算可以參考以下的公式:
這里我們用OpenCV實現(xiàn):
得到的結(jié)果如下:
這樣來看,似乎什么信息都沒有,這里要注意一點,因為在代碼中顯示函數(shù)使用的是imshow(),這個函數(shù)是以RGB來顯示的,因此我們使用HSV肯定是不正確的,如果想顯示正確,必須要將其轉(zhuǎn)換成RGB空間,這個具體以后再詳細說一下。
四:YCRCB
該空間廣泛用于視頻和圖像壓縮,不能算作純粹的色彩空間,它是RGB顏色空間的一種解碼方式Y(jié)通道表示亮度,而Cr和Cb表示紅色差值(在RGB空間中R通道和Y的差值)和藍色差值(在RGB空間中B通道和Y的差值)各自的色度分量。
其變化的計算如下:
在OpenCV中,我們使用:
得到的結(jié)果如下:
總體來看,還是可以看得出相對于其他的色彩模型,還是能夠保留一定的色彩,但是因為壓縮的緣故,色彩空間還是差很多。
完整的代碼如下,希望大家可以多多動手,親身嘗試一下。
import cv2 as cvimport numpy as np#色彩空間轉(zhuǎn)換函數(shù):RGB,HSV,YUV重要def color_space_demo(image): gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY) cv.imshow("gray",gray) hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV) cv.imshow("HSV",hsv) yuv = cv.cvtColor(image,cv.COLOR_BGR2YUV) cv.imshow("YUV",yuv) Ycrcb = cv.cvtColor(image,cv.COLOR_BGR2YCrCb) cv.imshow("YCRCB",Ycrcb) #imread函數(shù)用來讀取圖片src = cv.imread("D:/1.png")#namedWindow函數(shù)用來指定輸出圖片的尺寸和窗口大小,autosize是自動大小cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)#imshow函數(shù)用來顯示圖像cv.imshow("input image",src)color_space_demo(src)#等待鍵盤觸發(fā),否則一直在此窗口等待cv.waitKey(0)#結(jié)束所有的窗口cv.destroyAllWindows()
責(zé)任編輯:xj
原文標題:【CV學(xué)習(xí)筆記】色彩空間
文章出處:【微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
CV
+關(guān)注
關(guān)注
0文章
53瀏覽量
16911 -
OpenCV
+關(guān)注
關(guān)注
31文章
635瀏覽量
41596 -
HSV
+關(guān)注
關(guān)注
0文章
10瀏覽量
2621
原文標題:【CV學(xué)習(xí)筆記】色彩空間
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
西門子TIA Portal中函數(shù)FC和函數(shù)塊FB的相互轉(zhuǎn)換
![西門子TIA Portal<b class='flag-5'>中</b><b class='flag-5'>函數(shù)</b>FC和<b class='flag-5'>函數(shù)</b>塊FB的相互<b class='flag-5'>轉(zhuǎn)換</b>](https://file1.elecfans.com/web3/M00/06/00/wKgZPGeHGMaAOxLgAAAze8PX5kI195.png)
AI模型部署邊緣設(shè)備的奇妙之旅:如何在邊緣端部署OpenCV
RK3568 + OpenCV 會碰撞出什么火花?案例詳解:2-1 基于OpenCV的畫線實驗
【龍芯2K0300蜂鳥板試用】5 搭建opencv開發(fā)環(huán)境
OpenCV圖像識別C++代碼
opencv-python和opencv一樣嗎
opencv的主要功能有哪些
OpenCV攜奧比中光3D相機亮相CVPR 2024
嵌入式學(xué)習(xí)-飛凌ElfBoard ELF 1板卡 - 如何在Ubuntu中編譯OpenCV庫
ELF 1技術(shù)貼|如何在Ubuntu中編譯OpenCV庫
![ELF 1技術(shù)貼|如何在Ubuntu<b class='flag-5'>中</b>編譯<b class='flag-5'>OpenCV</b>庫](https://file1.elecfans.com/web2/M00/EB/90/wKgaomZZjUuAPcB7AAA6n2s3T5U762.png)
評論