从图像中提取鲁棒性线
我需要从下图中提取所有墙边(包括地板,墙壁交点和墙壁,门交点)。如果我使用canny检测和hough变换(概率)。 它给了我许多冗余和不必要的行。 我正在寻找是否可以在hough变换运行之前改进canny图像。
输入图像
以下是canny检测算法给出的canny图像
我使用canny参数为0,20作为最小和最大阈值。 我无法使用最大阈值的非常高的值,否则我会失去墙边缘,但与其他图像相比,梯度将较低。
我想在窗口中识别高密度点集,如果它高于某个阈值,则将它们设置为零。
以下是之后获得的canny图像。 你可以看到墙边被保留下来。
任何人都可以建议我一个更好的方式来处理这个问题? 我的意思是细化Canny图像,这样我就可以识别随机点集群,并将它们设置为零。 我正在考虑检查窗口中的共线点,但不知道这会有多有效? 任何意见将受到欢迎
我认为在使用hough变换之后,可以过滤出最长和几乎垂直的线条。 看看这个链接。
SimpleCV只是一个包含OpenCV函数的快捷方式库,您不需要使用它。 我不认为在得到这个想法后你会遇到问题的实现。
编辑:好吧,我更多地考虑你的问题。 实际上,将簇设置为零作为预处理步骤并不算糟糕。 一步一步增加窗口大小怎么样? 我的意思是在获得第二个图像后,应用2 *窗口大小,相同阈值的另一个聚类过滤器。 我认为你可以继续这样做,因为墙边很难被取消。
另一种方法是,使用矩形窗口(宽度> = 5 *高度)进行群集筛选,因为您需要垂直边缘。
另一种方式是发挥侵蚀和扩张作用,并过滤出大面积的斑点。
另一种方法,检查图像的顶部,只有墙边和枝形吊灯。 您可以水平搜索白色图案,然后跟随它的邻居指定连接点的长度。 然后过滤出更长的。
链接地址: http://www.djcxy.com/p/79595.html上一篇: Robust Line Extraction from Image
下一篇: Detecting quadrilateral shapes from random set of lines segments