一:改变颜色空间(Change Colorspace)
1)打印改变颜色空间的所有方法:
import cv2
import numpy as np
from matplotlib import pyplot as plt
# openCV中有150改变多个颜色空间的方法,以下方法列出cv2中的所有方法,但是加了限制,所以只会打印改变颜色空间的方法
flags=[i for i in dir(cv2) if i.startswith('COLOR_')]
for i in flags:
print(i)
# 虽然改变颜色空间的方法很多,但是我们只会学习应用最广泛的两个:BGR <--> Gray and BGR <--> HSV.
# BGR <--> Gray:cv2.COLOR_BGR2GRAY
# BGR <--> HSV:cv2.COLOR_BGR2HSV
因为150多个太多了,打印结果就不放上来了。
2)追踪图像中某一指定颜色的物体
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 官网上的例子是通过追踪摄像头里面的一个蓝色小球,但是我的摄像头有问题,所以我就改成追踪video里面的东西。
cap = cv2.VideoCapture('test.mp4')
while(1):
# 一帧一帧的读取图像中的内容
_,frame=cap.read()
# 把BGR转换成HSV
hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
# 在HSV中定义蓝色的范围
lower_blue=np.array([110,50,50])
upper_blue=np.array([130,255,255])
# 获取hsv图像的阈值来获取唯一的蓝色
mask=cv2.inRange(hsv,lower_blue,upper_blue)
# 使用Bitwise-AND计算mask和原始图片
res=cv2.bitwise_and(frame,frame,mask=mask)
# 显示信息的基本步骤
cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
cv2.imshow('res',res)
k=cv2.waitKey(5) & 0xFF
if k==27:
break
cv2.destroyAllWindows()
这是用于追踪物体的最简单的方法。后面学到contours函数,我们还可以做很多事情,比如通过找到物体的重心并用这个重心去追踪物体,仅仅通过在镜头前移动你的手就可以画出图像以及其他许多有趣的事物。
2)找出HSV值并追踪
通过