cv2.HoughLines返回的排序矩阵

2024-04-18 10:26:51 发布

您现在位置:Python中文网/ 问答频道 /正文

当用Python中的Hough变换执行行检测时,我得到了一个矩阵,其中每一行的值为rho和theta。在这些线中,我只取水平线。在

用下面的方法我可以从那条直线上提取几个点。在

for line in lines:
    for rho, theta in line:
        a = np.cos(theta)
        b = np.sin(theta)
        x0 = a*rho
        y0 = b*rho
        x1 = int(x0 + 1000*(-b))
        y1 = int(y0 + 1000*(a))
        x2 = int(x0 - 1000*(-b))
        y2 = int(y0 - 1000*(a))

我读过HoughLines按累加器的值按升序对数组进行排序,但我想对数组进行排序,并将图像的顶行放在数组的第一个位置,这样就可以只画出那条线。在

我终于找到了解决办法

^{pr2}$

Tags: 方法infor排序npline矩阵数组
1条回答
网友
1楼 · 发布于 2024-04-18 10:26:51

I take only the horizontal ones

the top line of the image [...] to draw only that line.

因此,您需要找到具有最小rho的水平线。您已经知道如何找到水平线,现在迭代这些水平线并找到具有最小rho值的那条。在

排序是查找最小值或最大值的一种昂贵的方法。我不太熟悉Python库,但我确信它有一个max函数,它将索引返回到最大的元素?啊,it does! You're looking for ^{}。在

相关问题 更多 >