我正在研究一种方法来检测图像中的地板。我试图通过将图像缩小为彩色区域,然后假设最大的区域是地板来实现这一点。(我们对机器人的操作环境做了一些相当广泛的假设)我正在寻找的是一些建议的算法,将适合这个问题。任何帮助将不胜感激。编辑:具体来说,我正在寻找一种能够可靠地提取一个区域的图像分割算法。我尝试过的所有方法(主要是PyrSegmentation)似乎都是通过将图像减少到N种颜色来工作的。这会在摄像头观察空白区域时导致误报。
PyrSegmentation
mrfwxfqh1#
由于地板检测是主要目标,我建议您尝试通过纹理进行分离,而不是通过颜色进行分割。本征变换论文描述了纹理“粗糙度”的单值描述符,使用图像/视频帧中灰度窗口的本征值平均值。在论文的第78页,他们对 * 本征变换输出 * 图像应用均值漂移分割,有效地将其分离为不同的纹理。由于您的图像来自视频源,光照可能会有很多变化,因此颜色分割可能会带来一些问题(除非您使用HSV和上述其他颜色空间)。在OpenCV中使用cvSVD()函数计算特征值非常简单快捷。
cvSVD()
du7egjpx2#
如果你可以假设颜色的恒定性,那么你的主要问题是光线的变化会干扰你的颜色检测。为此,将你的输入图像转换为HSV, HSL,cie-Lab,YUV或其他亮度分离的颜色空间,以及仅基于颜色部分的segment your image(省略亮度值,V,L,L和Y在上面的例子)。这将帮助您克服阴影和照明变化的障碍。
2条答案
按热度按时间mrfwxfqh1#
由于地板检测是主要目标,我建议您尝试通过纹理进行分离,而不是通过颜色进行分割。
本征变换论文描述了纹理“粗糙度”的单值描述符,使用图像/视频帧中灰度窗口的本征值平均值。在论文的第78页,他们对 * 本征变换输出 * 图像应用均值漂移分割,有效地将其分离为不同的纹理。
由于您的图像来自视频源,光照可能会有很多变化,因此颜色分割可能会带来一些问题(除非您使用HSV和上述其他颜色空间)。在OpenCV中使用
cvSVD()
函数计算特征值非常简单快捷。du7egjpx2#
如果你可以假设颜色的恒定性,那么你的主要问题是光线的变化会干扰你的颜色检测。为此,将你的输入图像转换为HSV, HSL,cie-Lab,YUV或其他亮度分离的颜色空间,以及仅基于颜色部分的segment your image(省略亮度值,V,L,L和Y在上面的例子)。这将帮助您克服阴影和照明变化的障碍。