我必须从图像中检测合适的矩形(满足门的面积和纵横比条件)才能在其中找到门。因此,我使用canny边缘检测找到边缘,然后使用hough变换提取边缘线。我得到的结果如下图所示: 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中平均接近的行数。或者关于从线条中提取正确的矩形来找到我的门的其他想法
附言:我有每条线到原点的距离,即ρ。我把线分为水平线和垂直线
目前没有回答
相关问题 更多 >
编程相关推荐