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))