在图像处理时,学习过绿幕抠图,放在视频里也是一样的。
一、首先需要将图片转换成HSV格式
hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)
二、然后根据HSV中的色彩阈值表,将我们想要的对象提取出来
这里我来提取一个绿色,可以看到绿色的区域是(35,43,46)(77,255,255)
mask = cv.inRange(hsv,(35,43,46),(77,255,255))
三、完整的代码如下:
def color_object_trace():
capture = cv.VideoCapture(0)
k = cv.getStructuringElement(cv.MORPH_RECT,(3,3))
while (True):
ret, frame = capture.read()
if ret is True:
cv.imshow("video_input", frame)
hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)
mask = cv.inRange(hsv,(35,43,46),(77,255,255))
mask = cv.morphologyEx(mask, cv.MORPH_OPEN, k)
cv.imshow("mask",mask)
c = cv.waitKey(2)
if c == 27:
break
else:
break
效果如下,我拿了一个蔬菜: