我有一张图片,想要检测其中的一个蓝色矩形。我的老师告诉我:
- 将其转换为HSV颜色模型
- 定义一个阈值,使其成为具有我们要检测的颜色的二进制图像
那我们为什么要这样做?为什么不直接针对RGB图像进行阈值处理?
感谢您的回答。
我有一张图片,想要检测其中的一个蓝色矩形。我的老师告诉我:
那我们为什么要这样做?为什么不直接针对RGB图像进行阈值处理?
感谢您的回答。
您可以在这里找到您问题的答案。
基本概括是HSV对于对象检测更好,
OpenCV通常以8位无符号整数BGR格式捕获图像和视频。换句话说,捕获的图像可以看作是三个矩阵—BLUE、RED和GREEN,其整数值范围从0到255。
BGR图像如何形成 在上面的图像中,每个小方格代表图像的一个像素。在真实图像中,这些像素非常小,肉眼无法区分。
通常,人们认为BGR颜色空间更适合基于颜色的分割。但是HSV颜色空间是最适合基于颜色的图像分割的颜色空间。因此,在上述应用程序中,我将视频的原始图像从BGR颜色空间转换为HSV图像。
HSV颜色空间由3个矩阵——'hue'、'saturation'和'value'组成。在OpenCV中,'hue'、'saturation'和'value'的值范围分别为0-179、0-255和0-255。'Hue'表示颜色,'Saturation'表示所述颜色与白色混合的程度,而'value'表示所述颜色与黑色混合的程度。
HSV颜色空间将颜色(色调)与饱和度和伪光源分离,从而实现了对颜色的抽象。这使得它可以应用于像您提供的实际世界应用程序中。
RGB中的R、G、B都与颜色亮度(我们通常称之为强度)相关,即我们无法将颜色信息与亮度分开。HSV或色相饱和度值用于分离图像亮度和颜色信息。当我们需要处理或需要图像/帧的亮度时,这使得工作更加容易。HSV也用于颜色描述起着重要作用的情况。
干杯