是否有任何方法可以平均化在 houghlines 中检测到的接近线?

问题描述

我必须从图像中检测合适的矩形(满足门的面积和纵横比条件)才能在其中找到门。所以我使用精明的边缘检测来找到边缘,然后我使用霍夫变换来提取边缘的线条。我得到了如下图所示的结果: enter image description here

现在我以某种方式提取了形成满足“门条件”的矩形的线。但是正如您在图像中所看到的,线条非常接近,以至于形成了许多满足我的门条件的矩形。所以我想我会通过用平均线替换关闭线来减少线,但我无法做到,因为它变得越来越复杂。我试过这样的事情。

def segregateLines(tobesegLines):
    while True:
        noLinesLeft = True
        for i in range(0,len(tobesegLines)):
            closeLineFound = False
            for j in range(0,len(tobesegLines)):
                if abs(tobesegLines[i][0][0] - tobesegLines[j][0][0]) < 50:
                    closeLineFound = True
                    noLinesLeft = False
                    newLines.append([[(abs(tobesegLines[i][0][0] +tobesegLines[j][0][0])) /2,tobesegLines[i][0][1]]])

            if not closeLineFound:
                newLines.append(tobesegLines[i])

        if noLinesLeft:
            break
        segregateLines(newLines)
    return newLines

但我收到“内存错误”。有没有人知道在 python 中平均关闭行。或者关于从线条中提取正确的矩形以找到我的门的任何其他想法?

P.S :我有每条线与原点的距离,即 rho。我将线条分隔为几乎水平和几乎垂直的线条。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...