3

经过一些颜色检测、二进制阈值处理,并使用 cvFindContours() 并在图像上绘制轮廓和检测到的蓝色矩形后,我有:

在此处输入图像描述

我的问题是一些简单的碰撞避免(中心的蓝色矩形不能撞到红色的“墙壁”)。将红墙轮廓近似为矩形将有助于我的目的。但是,使用简单的 cvBoundingRect 并在白色轮廓周围绘制红色矩形,我得到:

在此处输入图像描述

边缘被剪掉了一点,但您可能会了解我们对轮廓使用边界矩形的期望,因为整个轮廓用于近似边界矩形,因此是大的重叠矩形。我想要的是墙壁轮廓被划分为多个边界矩形,例如左墙近似为一个矩形,右墙,前墙等......如下面的说明性再现:

在此处输入图像描述

对此的任何帮助将不胜感激。

4

1 回答 1

1

检测线(通常是 Hough、RANSAC)以及您拥有的有关问题的其他一些信息应该就足够了,甚至可能是矫枉过正。例如,从左下图开始,我们得到右下图。

在此处输入图像描述 在此处输入图像描述

但是如果你在左边有上面的图片(你应该已经有了),那么问题已经解决了。只需绘制墙壁的内部和外部轮廓即可。

于 2013-02-10T14:51:13.330 回答