python - OpenCV Hough行不显示

标签 python opencv computer-vision

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

相关文章:

.net - 形状校正后如何获取像素坐标?

python - 提供不同线性代数后端的架构

python - 使用 Ming 连接到 MongoDB 副本集

opencv - 从 openCV 手动对焦网络摄像头

android - 一些奇怪的安卓错误

c++ - 如何去除图像中的小平行线?

python - 在 matplotlib 中用箭头绘制相空间轨迹

Python 匹配贪婪短语搜索。

c++ - OpenCV - 手骨架节点

python-2.7 - Homography 和 Lucas Kanade 有什么区别?