【发布时间】:2014-02-28 13:04:01
【问题描述】:
我们正在做一个基于 mat lab 的机器人项目。它实际上根据对象的颜色对对象进行分类,因此我们需要一种算法来从使用 mat lab 的相机捕获的图像中检测特定颜色。 如果有人可以帮助我,那将是一个很大的帮助。its the video of the project
【问题讨论】:
我们正在做一个基于 mat lab 的机器人项目。它实际上根据对象的颜色对对象进行分类,因此我们需要一种算法来从使用 mat lab 的相机捕获的图像中检测特定颜色。 如果有人可以帮助我,那将是一个很大的帮助。its the video of the project
【问题讨论】:
回应 Amro 的回答:
上面的五个正方形在 HSV 空间中都具有相同的色调值。按色相选择很有帮助,但您还需要对饱和度和值施加一些限制。
HSV 允许您以更人性化的方式描述颜色,但您仍然需要查看所有三个值。
【讨论】:
作为起点,我将使用 rgb 空间和欧几里得范数来检测像素是否具有给定的颜色。通常,一个像素有 3 个值:[red green blue]。您还有 3 个值定义目标颜色:[255 0 0] 表示红色。计算这两个向量之间的欧几里德范数,并应用决策阈值对像素的颜色进行分类。
最终,您想要摆脱亮度因素(即,它是亮红色还是暗红色?)。您可以切换到 HSV 空间并在 H 值上使用相同的范数。或者您可以使用[red/green blue/green] 向量。在此之前,对图像应用低通滤波器,因为除法(也存在于 hsv2rgb 变换中)往往会增加噪声。
【讨论】:
您可能希望转换为 HSV 颜色空间,并根据色调值检测颜色。 MATLAB 提供了RGB2HSV 函数。
这是在 File Exchange 上提交的an example,说明了基于色调的颜色检测。
【讨论】:
为了获得单色蒙版,首先使用 rgb2gray 将 rgb 图像灰度转换。还从 rgb 图像中提取所需的颜色平面,(例如,为了获得红色纯色,请给出 rgb_img(:,:,1))。从灰度图像中减去给定的平面............
【讨论】: