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()

Python OpenCV 彩色圖像與灰度圖像的轉換

也看到瞭 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()

Python OpenCV 彩色圖像與灰度圖像的轉換

偽彩色圖像

彩色圖片可以變成灰度圖,那相應的灰度圖也可以變成彩色的,當然這裡說的是偽彩色圖像。

這部分內容由於目前應用場景不明確,給大傢貼一下我學習過程中看到的博客吧。

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 彩色圖像與灰度圖像的轉換

感謝大佬方向性的指導

到此這篇關於Python OpenCV 彩色與灰度圖像的轉換實現的文章就介紹到這瞭,更多相關OpenCV彩色與灰度圖像轉換內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: