我正在尝试从下图获得线条:
original

我的代码使用以下功能:

import cv2
lines = cv2.HoughLinesP(image, .1, np.pi/360, 10,
                        minLineLength, maxLineGap)

其中minLineLength = 20,而maxLineGap =10。我得到以下信息:
after hough lines

尽管用肉眼可以清楚地看到水平线,为什么在这种情况下仍不显示水平线?

最佳答案

问题是您用于rho的分辨率。

0.1的分辨率非常小。实际上,对于大小为(N, N)像素的图像,rho的可能值的数量为N * N * sqrt(2) / rho_resolution(有时,其倍数取决于 Angular 定义方式)。

可能值的数量在霍夫累加器中具体化为箱。该数字越大,则相同的bin所累积的图像不同像素越少。如果Rho的分辨率值非常小,则最终将得到一个稀疏的累加器,在此处和那里都有一些较低的值。

将此值提高到1或2像素的分辨率,您应该会看到更有意义的线条出现。

关于python - OpenCV Hough行不显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45150145/

10-12 21:54