<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本專欄程式碼地址
https://github.com/xiawei20161308104/xv_opencv_tutorials
本節程式碼路徑xv_opencv_tutorials/ImageProcessinginOpenCV/changing_colorspaces.py
參考影象工程第4版,張毓晉,清華大學出版社
顏色空間轉化函數 cv.cvtColor()
“Indeed rays,properly expressed,are not colored”——牛頓。
光線為不同頻率的電磁波,人的視覺能感受到光的刺激,並且將不同頻率的電磁波感知為不同顏色,所以,彩色僅存在於人的眼睛和大腦中,物理世界分佈的是帶有不同輻射能量的光線。
彩色模型建立在彩色空間之上,彩色模型和彩色空間的概念不做分別。
根據原理可以分為4類,根據應用可以分為2類
根據原理模型 | 原理 | 舉例 |
---|---|---|
比色模型/色度模型 | 基於對光譜反射的物理測量 | 為顏色"id",顏色最精確的表達 |
生理學模型 | 基於人類視網膜中存在的3種基本顏色感知錐細胞 | RGB |
心理物理模型/精神物理學模型 | 基於人類對顏色的感知 | HSI,HCV,L*a*b* |
對立模型 | 基於感知實驗 | HSB |
根據應用模型 | 應用 | 舉例 |
---|---|---|
面向硬裝置 | 顯示器,印表機 | RGB,CMY,CMYK |
面向視覺 | 動畫,影象處理 | HSI,HSB,L*a*b* |
人對彩色的感知與刺激視網膜的電磁輻射的譜能量分佈,人的神經心裡學,人的生理行為等有關,感知彩色是一個很複雜的過程,應用也存在多樣性。CIE定義了若干彩色模型,每個模型都只有特定的適用情況,
沒有一種通用模型滿足所有情況,由彩色原理和彩色應用等去選擇合適的彩色模型能統一處理問題的維度。
瞭解自己的需求並尋找對應特性的彩色空間。例如,RGB模型特別適合在影象採集輸入和影象輸出顯示等場合應用,但與人類視覺感知有一定區別,就是當我們看到一幅影象的時候並不能感知到他的紅綠藍各有多少分量,這個時候HSV模型就比較適配,H代表色調,S代表飽和度,V代表強度,這樣建立的模型與人的感知高度適配。
在HSV模式下分析影象,取到影象的V值,並減小100個畫素到v1,對比觀察,能發現,人眼就能明顯感知到亮度的變化。
def main(): # 讀取影象 src = cv.imread("../imgs/opencv.png") # 轉換HSV空間 hsv = cv.cvtColor(src, cv.COLOR_BGR2HSV) # 分離通道 h, s, v = cv.split(hsv) cv.namedWindow("v", cv.WINDOW_NORMAL) cv.imshow("v", v) # 減小亮度 v1 = v - 30 cv.namedWindow("v1", cv.WINDOW_NORMAL) cv.imshow("v1", v1) cv.waitKey(0) cv.destroyAllWindows()
(出自影象工程第4版,張毓晉,清華大學出版社)
CMY
HSI
為了更直觀的感受HSI彩色模型對人類感官的適配,程式碼拆分了同一幅圖的RGB分量和HSV分量。
顏色越深則該分量值的佔比越大。可以看出,HSI的三幅圖看起來很不相同,表示,人眼能感覺到的HSI三個分量的區別要比RGB三個分量的區別要大
。
L*a*b*
L*a*b*是一個均勻彩色空間
,即,人所感覺到的兩點的色彩區別程度與此空間中兩點的歐氏距離相對應每個工具包工具定義的分量範圍不同,像色調H可以是0-180也可以是0-360,在數學上,可以互相轉換。所以opencv在處理時,對於8位元和16位元影象,R、 G 和 B 被轉換為浮點格式,並按比例縮放歸一化到0-1。
部分轉換公式如下:
opencv的cvtColor函數實現色彩空間的轉換,提供了150種
顏色空間的轉換方式,只需要在cvtColor
函數的flag
位填寫對應的轉換標識即可。轉換標識獲取如下。
import cv2 as cv flags = [i for i in dir(cv) if i.startswith('COLOR_')] #這裡會輸出150種flag,他們是opencv定義的彩色空間轉換flag,是cv.cvtColor(input_image, flag)的第二個引數值。 print( flags )
可以自己通過上面的程式碼獲取,或者直接查詢官方檔案
這裡介紹兩種轉換程式碼和效果案例,分別是BGR2Gray
和BGR2HSV
(opencv中沒提供HSI,但這兩個彩色空間差不多
#BGR2Gray import cv2 as cv def main(): src = cv.imread("../imgs/opencv.png") cv.namedWindow("input", cv.WINDOW_AUTOSIZE) cv.imshow("input", src) gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) cv.imwrite('gray.png', gray) cv.imshow("gray", gray) cv.waitKey(0) cv.destroyAllWindows() if __name__ == "__main__": main()
def main(): src = cv.imread("../imgs/opencv.png") cv.namedWindow("input", cv.WINDOW_AUTOSIZE) cv.imshow("input", src) hsv = cv.cvtColor(src, cv.COLOR_BGR2HSV) cv.imwrite('hsv.png', hsv) cv.imshow("hsv", hsv) # 分離通道 h, s, v = cv.split(hsv) cv.namedWindow("h", cv.WINDOW_NORMAL) cv.imshow("h", h) cv.namedWindow("s", cv.WINDOW_NORMAL) cv.imshow("s", s) cv.namedWindow("v", cv.WINDOW_NORMAL) cv.imshow("v", v) cv.waitKey(0) cv.destroyAllWindows() if __name__ == "__main__": main()
到此這篇關於opencv+影象處理(Image Processing in OpenCV) 4-0改變顏色空間的文章就介紹到這了,更多相關opencv影象處理改變顏色空間內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45