如何从图像matlab中检测颜色?

时间:2011-09-30 14:43:02

标签: matlab image-processing

我们正在做一个基于垫子实验室的机器人项目。它实际上根据颜色对对象进行分类,因此我们需要一种算法来检测使用mat实验室从相机捕获的图像中的特定颜色。 如果有人可以帮助我,那将是一个很大的帮助。its the video of the project

4 个答案:

答案 0 :(得分:3)

回应Amro的回答:

Five squares with the same hue value but visually different colors

以上五个方格在HSV空间中具有相同的Hue值。通过Hue选择是有帮助的,但是您也希望对饱和度和值施加一些约束。

HSV允许您以更具人性意义的方式描述颜色,但您仍需要查看所有三个值。

答案 1 :(得分:1)

您可能希望转换为HSV颜色空间,并根据Hue值检测颜色。 MATLAB提供RGB2HSV函数。

以下是文件交换中的an example提交,用于说明基于色调的颜色检测。

答案 2 :(得分:1)

作为一个起点,我将使用rgb空间和欧几里德范数来检测像素是否具有给定的颜色。通常,您有一个像素的值为3 [red green blue]。您还有3个定义目标颜色的值:[255 0 0]表示红色。计算这两个向量之间的欧几里德范数,并应用决策阈值来对像素的颜色进行分类。

最终,您想要消除亮度因子(即亮红色还是暗红色?)。您可以切换到HSV空间并在H值上使用相同的范数。或者您可以使用[red/green blue/green]向量。在此之前,对图像应用低通滤波器,因为分割(也存在于hsv2rgb变换中)往往会增加噪声。

答案 3 :(得分:0)

为了获得单色掩模,首先使用rgb2gray将rgb图像转换为灰色。还从rgb图像中提取所需的颜色平面(例如,为了获得红色平原,给出rgb_img(:,:,1))。从灰色图像中减去给定的平面........