opencv 转换颜色空间 目标跟踪

#转换颜色空间
import cv2
import numpy as np
flags = [i for i in dir(cv2) if i.startswith('COLOR_')]
print (flags)

cap=cv2.VideoCapture(0)
while(1):
    ret,frame=cap.read()
    frame=cv2.flip(frame,1)
    #转换到hsv
    hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
    
    #设定蓝色阈值
    blue=np.uint8([[[255,0,0]]])#三层括号分别对应cvArray,cvMat,IplImage
    hsv_blue=cv2.cvtColor(blue,cv2.COLOR_BGR2HSV)
    lower_blue=hsv_blue-30
    upper_blue=hsv_blue+30
    
     #设定红色色阈值
    red=np.uint8([[[0,0,255]]])#三层括号分别对应cvArray,cvMat,IplImage
    hsv_red=cv2.cvtColor(red,cv2.COLOR_BGR2HSV)
    lower_red=hsv_red-50
    upper_red=hsv_red+50
    
     #设定绿色色阈值
    green=np.uint8([[[0,255,0]]])#三层括号分别对应cvArray,cvMat,IplImage
    hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)
    lower_green=hsv_green-30
    upper_green=hsv_green+30
    #创建掩模
    maskb=cv2.inRange(hsv,lower_blue,upper_blue)
    maskr=cv2.inRange(hsv,lower_red,upper_red)
    maskg=cv2.inRange(hsv,lower_green,upper_green)
    mask=np.bitwise_or(maskb,maskr)
    mask=np.bitwise_or(maskg,mask)
    #位运算
    res=cv2.bitwise_and(frame,frame,mask=mask)
    #显示图像
    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)
    
    k=cv2.waitKey(10)
    if k==ord('q'):
        break
    
cv2.destroyAllWindows()

猜你喜欢

转载自blog.csdn.net/qq_41244435/article/details/86626990