为什么我们将RGB转换为HSV

时间:2013-06-12 10:20:31

标签: opencv image-processing

我有一个图像,我想在其中检测到蓝色矩形。我的老师告诉我:

  • 将其转换为HSV颜色模型
  • 定义thresh hold以使其成为具有我们想要检测的颜色的二进制图像

为什么我们这样做?为什么我们不直接thresh举行rgb图片? 谢谢你的回答 enter image description here

4 个答案:

答案 0 :(得分:11)

您可以找到问题的答案here

基本概要是HSV更适合对象检测,

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

如何形成BGR图像 在上图中,每个小框表示图像的像素。在真实图像中,这些像素非常小,人眼无法区分。

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

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

答案 1 :(得分:5)

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

答案 2 :(得分:4)

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

  

因为数字图像中物体颜色的R,G和B分量都与撞击物体的光量相关,因此彼此相关,就这些部件而言的图像描述使得物体辨别变得困难。色调/亮度/色度或色调/亮度/饱和度的描述通常更相关。

还有一些好消息here

答案 3 :(得分:0)

RGB中的R,G,B都与颜色亮度(我们称之为强度)有关,即我们无法将颜色信息与亮度分开。 HSV或Hue饱和度值用于将图像亮度与颜色信息分开。这使我们在处理或需要图像/帧的亮度时更容易。 HSV还用于颜色描述发挥不可或缺的作用。

干杯