- 追踪视频中的颜色
- 对图片通道的分离与合并
from cv2 import cv2 as cv
import numpy as np
def video_demo():
# VideoCapture.open
capture = cv.VideoCapture('C:\\pictures\\videos\\1.mp4')
while True:
ret,frame = capture.read()
if ret == False:
break
hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)
# 根据那个表可以修改所想的颜色,可以追踪中视频中的颜色
lower_hsv = np.array([156,43,46])
upper_hsv = np.array([180,255,255])
mask = cv.inRange(hsv,lowerb=lower_hsv, upperb=upper_hsv)
# 小技巧,所显示的是所需要的颜色部分
dst = cv.bitwise_and(frame,frame,mask=mask)
cv.imshow('dst',dst)
cv.imshow('video',frame)
cv.imshow('mask',mask)
c = cv.waitKey(40)
if c == 27 :
break
'''
filepath = "C:\\pictures\\0.jpg"
img = cv.imread(filepath) # blue green red
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",img)
# 通道的分离与合并
b,g,r = cv.split(img)
cv.imshow('blue',b)
cv.imshow('green',g)
cv.imshow('red',r)
img[:,:,2] = 0 #把红色去掉了
img = cv.merge([b,g,r]) #通道合起来
cv.imshow('changed image',img)
'''
video_demo()
cv.waitKey(0)
cv.destroyAllWindows()
这是我在网上找的一个视频,通过追踪视频的某个颜色(以红色为例)效果如下: