Python OpenCV 彩色與灰度圖像的轉換實現
彩色圖像轉換為灰度圖像
第一種方式通過 imread 讀取圖像的時候直接設置參數為 0 ,自動轉換彩色圖像為灰度圖像
第二種方式,可以通過 split 進行通道分離,或者叫做讀取單個通道,也可以將一個彩色圖像分離成 3 個單通道的灰度圖像
今天要學習的方法,是通過一個叫做 cvtColor
的方法實現該操作。
cv2.cvtColor()
方法用於將圖像從一種顏色空間轉換為另一種顏色空間。
OpenCV 提供瞭 150 多種 color-space 轉換方法。多到用不過來~
該方法的語法格式為:
cv2.cvtColor(src, code[, dst[, dstCn]])
參數:
- src:它是要更改其色彩空間的圖像。
- code:它是色彩空間轉換代碼。
- dst:它是與 src 圖像大小和深度相同的輸出圖像,可選參數。
- dstCn:它是目標圖像中的頻道數。如果參數為 0,則通道數自動從 src 和代碼得出,可選參數。
參數翻譯成中文,也找到瞭
cvtColor(src,dst,code,dstCn) ===> (原圖像,color轉化代碼,輸出圖像,輸出通道)
轉換灰度圖代碼如下:
import cv2 # path path = './7_1.jpg' # 讀取圖片 src = cv2.imread(path) # 圖片展示窗口名稱 window_name = 'Image' # BGR 轉換成灰度圖 image = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) cv2.imshow(window_name, image) cv2.waitKey()
也看到瞭 HSV 格式圖片,轉換結果如下,有點嚇人,順便轉換瞭其他的一些格式:
import cv2 import matplotlib.pyplot as plt # path path = './7_1.jpg' # 讀取圖片 src = cv2.imread(path) # 圖片展示窗口名稱 window_name = 'Image' # BGR 轉換成 RGB image1 = cv2.cvtColor(src, cv2.COLOR_BGR2RGB) # BGR 轉換成 Gray image2 = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) # BGR 轉換成 HSV image3 = cv2.cvtColor(src, cv2.COLOR_BGR2HSV) plt.subplot(1, 3, 1) plt.imshow(image1) plt.title("RGB") plt.subplot(1, 3, 2) plt.imshow(image2,"gray") plt.title("GRAY") plt.subplot(1, 3, 3) plt.imshow(image3,"hsv") plt.title("hsv") plt.show()
偽彩色圖像
彩色圖片可以變成灰度圖,那相應的灰度圖也可以變成彩色的,當然這裡說的是偽彩色圖像。
這部分內容由於目前應用場景不明確,給大傢貼一下我學習過程中看到的博客吧。
https://blog.csdn.net/kingroc/article/details/101302997
https://blog.csdn.net/sns1991sns/article/details/102838303
https://blog.csdn.net/xiaxuesong666/article/details/79522904
關於偽彩色圖像的說明,在百度百科可以直接查閱到。
感謝大佬方向性的指導
到此這篇關於Python OpenCV 彩色與灰度圖像的轉換實現的文章就介紹到這瞭,更多相關OpenCV彩色與灰度圖像轉換內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python OpenCV計算圖片相似度的5種算法
- Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()的區別
- opencv+圖像處理(Image Processing in OpenCV) 4-0改變顏色空間的過程
- Python圖像運算之圖像點運算與灰度化處理詳解
- Python下opencv使用hough變換檢測直線與圓