一、颜色空间转换
在 OpenCV 中有超过 150 中进行颜色空间转换的方法。但是你以后就会发现我们经常用到的也就两种:BGR↔Gray 和 BGR↔HSV。我们要用到的函数是:cv2.cvtColor(input_image,flag),其中 flag就是转换类型。
对于 BGR↔Gray 的转换,我们要使用的 flag 就是 cv2.COLOR_BGR2GRAY。
同样对于 BGR↔HSV 的转换,我们用的 flag 就是 cv2.COLOR_BGR2HSV。
你还可以通过下面的命令得到所有可用的 flag。
二、物体跟踪
现在我们知道怎样将一幅图像从 BGR 转换到 HSV 了,我们可以利用这一点来提取带有某个特定颜色的物体。在 HSV 颜色空间中要比在 BGR 空间中更容易表示一个特定颜色。在我们的程序中,我们要提取的是一个蓝色的物体。下面就是就是我们要做的几步:
• 从视频中获取每一帧图像
• 将图像转换到 HSV 空间
• 设置 HSV 阈值到蓝色范围。
• 获取蓝色物体,当然我们还可以做其他任何我们想做的事,比如:在蓝色
物体周围画一个圈。
三、怎样找到要跟踪对象的 HSV 值?
这是我在stackoverflow.com上遇到的最普遍的问题。其实这真的很简单,
函数 cv2.cvtColor() 也可以用到这里。但是现在你要传入的参数是(你想要
的)BGR 值而不是一副图。例如,我们要找到绿色的 HSV 值,我们只需在终
端输入以下命令: