颜色空间转换
对图像进行颜色空间转换,比如从 BGR 到灰度图,或者从BGR 到 HSV 等
我们要用到的函数是:cv2.cvtColor(input_image ,flag),其中 flag就是转换类型,常用的就几种转换的类型;
对于 BGR↔Gray 的转换,我们要使用的 flag 就是 cv2.COLOR_BGR2GRAY。
同样对于 BGR↔HSV 的转换,我们用的 flag 就是 cv2.COLOR_BGR2HSV。
物体跟踪
通过某个颜色来跟踪一个物体,
• 从视频中获取每一帧图像
• 将图像转换到 HSV 空间
• 设置 HSV 阈值到蓝色范围。
• 获取蓝色物体
1 import cv2 2 import numpy as np 3 4 cap = cv2.VideoCapture(r'你的视频文件') 5 6 while(1): 7 8 # Take each frame 9 _, frame = cap.read() 10 11 # Convert BGR to HSV 12 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 13 14 # define range of blue color in HSV 15 lower_blue = np.array([110,50,50]) 16 upper_blue = np.array([130,255,255]) 17 18 # Threshold the HSV image to get only blue colors 19 mask = cv2.inRange(hsv, lower_blue, upper_blue) 20 21 # Bitwise-AND mask and original image 22 res = cv2.bitwise_and(frame,frame, mask= mask) 23 24 cv2.imshow('frame',frame) 25 cv2.imshow('mask',mask) 26 cv2.imshow('res',res) 27 k = cv2.waitKey(5) & 0xFF 28 if k == 27: 29 break 30 31 cv2.destroyAllWindows()
利用掩膜(mask)进行“与”操作,即掩膜图像白色区域是对需要处理图像像素的保留