我正在尝试从下图获得线条:
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/