一兼耀、常見色彩空間
1、灰度色彩空間是通過去除彩色信息來將其轉(zhuǎn)換成灰階求冷,灰度色彩空間對中間處理特別有效瘤运,比如人臉檢測。
2匠题、BGR拯坟,即藍-綠-紅色彩空間,每一個像素點都由一個三元數(shù)組來表示韭山,分別代表藍郁季、綠、紅三種顏色钱磅。另一個與之相似的顏色空間:RGB梦裂,它們只是在顏色的順序上不同。
3续搀、HSV塞琼,也稱六角錐體模型,顏色的參數(shù)分別是:色調(diào)(H)禁舷,飽和度(S),明度(V)毅往。
4牵咙、HIS,顏色的參數(shù)分別是:色調(diào)(H)攀唯,亮度(I)洁桌,飽和度(S)。
5侯嘀、YUV另凌,顏色的參數(shù)分別是:明亮度(Y),“U”和“V”表示色度戒幔。
6吠谢、YCrCb,即YUV诗茎,Cr和Cb表示色度工坊。
二、BGR轉(zhuǎn)換成其他色彩空間
import cv2 as cv
def color_space_demo(image):
????gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
????cv.imshow("gray",gray)
????hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV)
????cv.imshow("hsv",hsv)
????yuv = cv.cvtColor(image,cv.COLOR_BGR2YUV)
????cv.imshow("yuv",yuv)
????ycrcb = cv.cvtColor(image,cv.COLOR_BGR2YCrCb)
????cv.imshow("ycrcb",ycrcb)
img = cv.imread("D:/temp/img/longnv.jpg")
color_space_demo(img)
cv.waitKey(0)
cv.destroyAllWindows()
三、從視頻文件中過濾某種顏色
import cv2 as cv
import? numpy as np
def extract_obj():
????cap = cv.VideoCapture("D:/temp/video/test12.mp4")
????while 1:
????????ret,frame = cap.read()
????????if ret ==False:
????????????break
? ? ? ? # 把視頻中的黑色過濾出來
? ? ? ? hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)
????????lower_hsv = np.array([0,0,0])
????????upper_hsv = np.array([180,255,46])
????????mask = cv.inRange(hsv,lowerb=lower_hsv,upperb=upper_hsv)
????????cv.imshow("video",frame)
????????cv.imshow("mask",mask)
????????if cv.waitKey(24)==30:
????????????break
extract_obj()
cv.waitKey(0)
cv.destroyAllWindows()
四王污、通道的分離與合并
import cv2as cv
import? numpyas np
img = cv.imread("D:/temp/img/f1.jpg")
#通道分離
b,g,r = cv.split(img)
cv.imshow("blue",b)
cv.imshow("green",g)
cv.imshow("red",r)
#通道合并
img2 = cv.merge([b,g,r])
img2[:,:,0]=0
cv.imshow("img2",img2)
cv.waitKey(0)
cv.destroyAllWindows()