openCV基础学习札记(7)—颜色空间转换

openCV基础学习札记(7)—颜色空间转换

1.转换颜色空间

在OpenCV中有超过150 种进行颜色空间转换的方法。经常用到的也就两种:BGR↔Gray 和 BGR↔HSV。我们用到的函数是cv2.cvtColor(input_image flag),其中flag就是转换类型。

  • 对于BGR↔Gray的转换,我们使用的flag就是cv2.COLOR_BGR2GRAY。

  • 对于BGR↔HSV的转换我们用的flag就是cv2.COLOR_BGR2HSV。

在 OpenCV 的 HSV 格式中,H(色彩/色度)的取值范围是 [0,179], S(饱和度)的取值范围 [0,255],V(亮度)的取值范围 [0,255]。但是不同的软件使用的值可能不同。

2.物体跟踪

现在我们知怎样将一幅图像从 BGR 换到 HSV 了,我们可以利用 一点来提取带有某个特定色的物体。在 HSV 颜色空间中要比在 BGR 空间中更容易表示一个特定颜色。

在我们的程序中,我们提取的是一个蓝色的物体。下就是就是我们做的几步:

• 从视频中获取每一帧图像

• 将图像换到 HSV 空间

• 设置 HSV 阀值到蓝色范围。

• 获取蓝色物体,当然我们可以做其他任何我们想做的事,比如:在蓝色物体周围画一个圈。

openCV基础学习札记(7)—颜色空间转换

我运行了这个,噪点非常的多,没出来效果,这是网上的图,可能还需要再修正这个值,需要消减噪音。

openCV基础学习札记(7)—颜色空间转换

3.怎样找到要跟踪对象的HSV值

函数cv2.cvtColor()可以用到这里,现在需要传入的参数是RGB的值而不是一幅图。例如要找到绿色的HSV值,只需在终端输入以下命令或运行该指令脚本。

openCV基础学习札记(7)—颜色空间转换

你可以分别用 [H-100,100,100] 和 [H+100,255,255] 做上下阀值。

openCV基础学习札记(7)—颜色空间转换


分享到:


相關文章: