今天学习了从BGR模式转变成HSV模式,利用了cv2.cvtColor(input_image,flag)这个函数,flag决定了转换的类型,比如说是从BGR转换成HSV,还是从BGR转换成GRAY。
注意:HSV的取值范围为 H [0,179] S [0,255] V [0,255]
下面贴上代码
import cv2
import numpy as np
cap=cv2.VideoCapture(0)
while(1):
_,frame=cap.read()
hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
lower_blue=np.array([110,50,50])
upper_blue=np.array([130,255,255])
mask=cv2.inRange(frame,lower_blue,upper_blue)
res=cv2.bitwise_xor(frame,frame,mask=mask)
cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
cv2.imshow('res',res)
k=cv2.waitKey(5)
if k==27:
break
if k==ord('q'):
break
cv2.destroyAllWindows()
用frame读取摄像头,hsv就是转换了以后的灰色图像
再看这个函数 cv2.inRange(input_image,lower_blue,upper_blue) 这个函数的作用就是用来设置阙值,可以用来过滤背景色
看到网上有一句解释,就是将低于lower_blue和高于upper_blue的部分分别变成0,lower_blue~upper_blue之间的值变成255
再看图像的逻辑运算
参考https://blog.csdn.net/haluoluo211/article/details/52814704,可以自己动手试一遍每个逻辑运算。