今天要介紹基礎的灰階與色彩轉換技術,分別為:
色彩影像經常需要轉換成灰階影像,才可使用灰階影像處理技術,以利進一步的影像處理或分析工作。OpenCV提供簡易的色彩灰階轉換函式,例如:
`gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)`
其中,img為輸入的色彩影像,gray為輸出的灰階影像。使用的公式為:
本公式其實與YCrCb色彩模型的Y分量相同,主要是針對人類視覺系統對於色彩的反應而設計。程式碼如下:
import numpy as np
import cv2
img1 = cv2.imread("D:\Desktop\IThome\lena.bmp", -1)
img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
cv2.imshow("Original", img1)
cv2.imshow("After", img2)
cv2.waitKey()
cv2.destroyAllWindows()
結果如下圖:
虛擬色彩(Pseudocolor)轉換式在輸入灰階影像後,根據事先定義的色彩對應表,稱為色彩表(Color Map),藉以給定輸出的像素色彩值。由於給定的色彩值並非原始影像的真實色彩,因此稱為虛擬色彩(Pseudocolor)或假色彩(False-Color)。
OpenCV提供虛擬色彩轉換,事先定義許多色彩表,函式名稱為applyColorMap()。如下圖:
虛擬色彩影像處理的應用相當多,例如:機場的行李檢查X光設備。原始影樣為灰階影像,可以透過上述的影像處理技術給定虛擬的顏色,方便安檢人員檢查使用。
import numpy as np
import cv2
img1 = cv2.imread("D:\Desktop\IThome\lena.bmp", -1)
img2 = cv2.applyColorMap(img1, cv2.COLORMAP_HSV)
cv2.imshow("Original", img1)
cv2.imshow("After", img2)
cv2.waitKey()
cv2.destroyAllWindows()
注意applyColorMap裡面的第二個參數請參照色彩表以及需求變更。