16

我有一张图片,我想检测其中的蓝色矩形。我的老师告诉我:

  • 将其转换为 HSV 颜色模型
  • 定义一个阈值保持,使其成为具有我们想要检测的颜色的二值图像

那么我们为什么要这样做呢?为什么我们不直接 thresh 保存 rgb 图像?谢谢你的回答 在此处输入图像描述

4

4 回答 4

16

您可以在此处找到问题的答案

基本总结就是HSV更适合物体检测,

OpenCV 通常以 8 位、无符号整数、BGR 格式捕获图像和视频。换句话说,捕获的图像可以被认为是 3 个矩阵,蓝色、红色和绿色,整数值范围从 0 到 255。

BGR 图像是如何形成的 在上图中,每个小方框代表图像的一个像素。在真实图像中,这些像素非常小,以至于人眼无法区分。

通常,可以认为 BGR 颜色空间更适合基于颜色的分割。但是 HSV 颜色空间是最适合基于颜色的图像分割的颜色空间。因此,在上述应用程序中,我将视频原始图像的颜色空间从 BGR 转换为 HSV 图像。

HSV 颜色空间由 3 个矩阵组成,“色调”、“饱和度”和“值”。在 OpenCV 中,“hue”、“saturation”和“value”的取值范围分别为 0-179、0-255 和 0-255。“色调”表示颜色,“饱和度”表示相应颜色与白色混合的量,“值”表示相应颜色与黑色混合的量。

于 2013-06-12T10:34:38.580 回答
9

根据http://en.wikipedia.org/wiki/HSL_and_HSV#Use_in_image_analysis

因为数字图像中物体颜色的 R、G 和 B 分量都与照射到物体上的光量相关,因此它们相互关联,根据这些分量的图像描述使物体识别变得困难。色调/亮度/色度或色调/亮度/饱和度方面的描述通常更相关。

这里还有一些很好的信息

于 2013-06-12T10:31:17.650 回答
5

HSV 颜色空间通过将颜色(色调)与饱和度和伪照明分开来抽象化颜色(色调)。这使得它适用于实际应用程序,例如您提供的应用程序。

于 2013-06-12T10:35:17.190 回答
1

RGB中的R,G,B都与颜色亮度(我们松散地称为强度)相关,即我们无法将颜色信息与亮度分开。HSV 或色调饱和度值用于将图像亮度与颜色信息分开。这使得我们在处理或需要图像/帧的亮度时更容易。HSV 还用于颜色描述起着不可或缺的作用的情况。

干杯

于 2017-06-19T06:59:29.760 回答