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