import cv2 as cv
import numpy as np
filename = 'C:/Users/45450/Desktop/lenna.jpg'
img = cv.imread(filename)
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('source image', img)
cv.imshow('gray', gray)
cv.waitKey()
hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
cv.imshow('Hue', hsv[:, :, 0])
cv.imshow('Saturation', hsv[:, :, 1])
cv.imshow('Value', hsv[:, :, 2])
cv.waitKey()
cv.imshow('blue', img[:, :, 0])
cv.imshow('Green', img[:, :, 1])
cv.imshow('Red', img[:, :, 2])
cv.waitKey()
cv.destroyAllWindows()
OpenCV中,系統圖像缺省爲BGR格式,顏色三通道順序爲B,G,R 分別對應索引爲0,1,2
HSI/HSV顏色空間:
H的取值範圍爲0-180。其中紅色對應0 綠色對應60 藍色對應120 相對於H通道顯示的時候,藍色顯示出來最亮。
其餘兩變量範圍爲0-255。 S爲飽和度分量,看這個顏色是否足夠飽和 越飽和顯示的顏色越亮。
HSV中V指RGB裏最大的值 V=max(r, g, b) 最終顯示出來的是飽和度最大值 (存在疑惑)
HSI中I指平均值 I=(r+g+b)/3
BGR三通道顯示時,例如B--Blue 則藍色部分顯示出來的最亮,最亮爲白色。
原圖像中白色在單通道顯示是也爲白色 ,因爲白色包含BGR。