OpenCV中有數百種色彩空間轉換的方法。比較常用的有三種:灰度圖像、BGR以及HSV(Hue,Saturation,Value)。
1.灰度圖像:灰度色彩空間是通過去除彩色信息來將其轉換成灰階,灰度色彩空間對中間處理特別有效,比如人臉檢測。
2.BGR:即藍-綠-紅色彩空間,每一個像素點都由一個三元數組來表示,分別代表藍、綠、紅三種顏色。另一個與之相似的顏色空間:RGB,它們只是在顏色的順序上不同。
3.HSV:H(Hue)是色調,S(Saturation)是飽和度,V(Value)表示黑暗的程度(或光譜的另一端的明亮程度)
4.YUV:“Y”表示明亮度(Luminance或Luma),也就是灰階值;而“U”和“V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用於指定像素的顏色。
下面看一段代碼來解釋一些圖片色彩空間
import cv2
#引入opencv庫才能使用
#圖片空間色彩轉換
def color_space_demo(image):
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) #灰度圖
cv2.imshow("gray",gray)
hsv=cv2.cvtColor(image,cv2.COLOR_BGR2HSV) #HSV
cv2.imshow("hsv",hsv)
yuv=cv2.cvtColor(image,cv2.COLOR_BGR2YUV) #YUV
cv2.imshow("yuv", yuv)
ycrcb = cv2.cvtColor(image, cv2.COLOR_BGR2YCrCb) #YCrCb
cv2.imshow("ycrcb", ycrcb)
print("-------Hello Python--------")
src=cv2.imread("jjlin.jpg")#讀取照片
cv2.imshow("changed_src",src)#顯示原圖片
color_space_demo(src)
cv2.waitKey(0)
cv2.destroyAllWindows()
(1)原圖
(2)HSV
(3)Gray灰度圖
(4)YUV
(5)YCrCb