官网参见https://docs.opencv.org/3.4.1/df/d9d/tutorial_py_colorspaces.html
- 颜色空间转换
- 物体跟踪
1.颜色空间转换
opencv中有超过150种颜色空间转换方法,对于我们来说最常用的也就2种BGR ↔ Gray和BGR ↔ HSV。
颜色转换函数如下
cv.cvtColor(input_image, flag)
flag :颜色转换类型
BGR → Gray,flag = cv.COLOR_BGR2GRAY
BGR → HSV,flag = cv.COLOR_BGR2HSV
例,获得所有可用flag。注意:我是python2。
import cv2
import numpy as np
from matplotlib import pyplot as plt
flags = [i for i in dir(cv2) if i.startswith('COLOR_')]
print flags
opencv的HSV中,H(色彩/色度)的取值范围是[0,179],S(饱和度)的取值范围[0,255],V(亮度)的取值范围[0,255]。不同软件使用的值可能不同。所以当你需要拿opencv的HSV值与其他软件的HSV值进行对比时,一定要记得归一化。
2.物体跟踪
我们已经知道了如何把BRG图像转换为HSV空间,我们可以利用这点从图像中抽取特定颜色的物体。在HSV空间中,它比BRG空间更容易表示某个特定的颜色。操作方法如下,以蓝色为例:
- 获得视频中的每一帧图像
- 把图像从BRG转换到HSV颜色空间
- 把HSV图像阈值设置到蓝色范围
- 现在就可以获得蓝色物体了。然后对该物体做我们想进行的操作。
以下文章中有个识别蓝色球的例子就是基于HSV颜色空间分析,只不过用的是静态图像。https://blog.csdn.net/weixin_42555985/article/details/94599050