OpenCV3-Python之 色彩空间 过滤视频的背景颜色

连接上一节,这一节直接上代码:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import cv2 as cv
import numpy as np


#读取视频文件
def extract_obj():
    capture = cv.VideoCapture("D:\exerciseResource\\02Jumping.wmv") #读取视频文件
    while(True): #判断是否读取成功
        ret, frame = capture.read()
        if ret == False:
            break
        #把视频中的某种颜色过滤出来
        hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)      # 转换成HSV色彩空间
        lower_hsv = np.array([0, 43, 46])               # 色彩低值(红色)
        upper_hsv = np.array([180, 255, 255])           # 色彩高值
 mask =cv.inRange(hsv, lowerb=lower_hsv, upperb=upper_hsv)#inRang之后得到的是二值图像
        '''与或非的逻辑操作'''
        dst = cv.bitwise_and(frame, frame, mask=mask)#这里可以把彩色图像显示出来
        cv.imshow("video", frame) #显示视频文件
 cv.imshow("mask", dst)#这里显示dst而不是mask
        c = cv.waitKey(30)
        if c == 27:
            break
extract_obj()
cv.waitKey(0)

cv.destroyAllWindows()

运行效果如下:


第一个是原视频,第二个是过滤掉灰色背景的视频!

猜你喜欢

转载自blog.csdn.net/elegentbeauty/article/details/80138814