1 __author__ = "WSX" 2 import cv2 as cv 3 import numpy as np 4 5 def color_space( img ): 6 gray_img = cv.cvtColor(img , cv.COLOR_BGR2GRAY) #色彩空间转换 7 hsv_img = cv.cvtColor(img , cv.COLOR_BGR2HSV) 8 hls_img = cv.cvtColor(img, cv.COLOR_BGR2HLS) 9 ycrcb_img = cv.cvtColor(img, cv.COLOR_BGR2YCrCb) 10 return gray_img 11 12 13 def image_show(): 14 img = cv.imread("1.JPG") 15 End_image = color_space( img ) 16 cv.namedWindow("Show", cv.WINDOW_AUTOSIZE) 17 cv.imshow("Show" , End_image) 18 cv.waitKey(0) 19 cv.destroyAllWindows() 20 21 def video_exe(): #过滤视频中的颜色 22 video = cv.VideoCapture("2.mp4") 23 ret , frame = video.read() 24 while True: 25 if ret == False: 26 break 27 hsv = cv.cvtColor(frame , cv.COLOR_BGR2HSV) 28 low = np.array([37 , 43 ,46]) #筛选HSV空间中的绿色 29 upper = np.array([77, 255, 255]) 30 msk = cv.inRange(hsv , lowerb= low , upperb= upper) 31 #dst = cv.bitwise_and(frame,frame ,mask = msk) 32 cv.imshow("video" , frame) 33 cv.imshow("new_video" , msk) 34 #cv.imshow("dst_video", dst) 35 c = cv.waitKey(30) 36 if c == 27: 37 break 38 39 cv.destroyAllWindows() 40 41 #image_show() 42 video_exe() 43 44 #opencv支持通道分离(b,g,r = cv.split) 45 #opencv支持通道合并(img = cv.merge(b,g,r))