OpenCV-Python:颜色空间转换(简单根据颜色追踪对象)

颜色空间转换指从一种图片表示格式转为另一种,如:BGR \leftrightarrow Gray,BGR \leftrightarrow HSV等。

颜色空间转换

在OpenCV中提供了150多种格式转换,在这里介绍两种使用最广的:BGR \leftrightarrow Gray 和 BGR \leftrightarrow HSV。颜色格式转换使用cv2.cvtColor(input_image, flag),flag决定转换类型。 BGR \rightarrow Gray,falg为cv2.COLOR_BGR2GRAY;BGR \rightarrow HSV,flag为cv2.COLOR_BGR2HSV;使用如下代码查看更多flag:

注:HSV的三个分量:色调(H)范围0->179,饱和度(S)范围0->255,明度(V)范围0->255。不同的软件使用不同的比例。

对象跟踪

现在我们已经知道怎么从BGR转为HSV,利用HSV可以方便的查找一个指定对象的颜色,因为HSV比RGB的颜色表示要简单。在下面的例子中,我们在视频中追踪一个黑色物体。方法如下

  1. 提取视频的每一帧
  2. 从BGR颜色空间转为HSV颜色空间
  3. 取HSV图片的黑色颜色范围
  4. 提取出黑色物体

追踪黑色物体:

Screen Shot 2015-12-28 at 16.29.07

frame

由于使用的是黑色,在res中看不清楚,你可以尝试追踪其他颜色。下面列出了HSV主要颜色的大致范围:

objectcolor

如果你要追踪的颜色不在上面的表中,怎么找到对应颜色的范围呢?

或使用图像处理软件(Photoshop)。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注