【发布时间】:2017-07-17 17:20:55
【问题描述】:
我正在尝试从下图中获取线条: original
我的代码使用以下函数:
import cv2
lines = cv2.HoughLinesP(image, .1, np.pi/360, 10,
minLineLength, maxLineGap)
其中minLineLength = 20,maxLineGap = 10。我得到以下信息:
after hough lines
为什么在这种情况下水平线没有出现,尽管肉眼可以清楚地看到?
【问题讨论】:
-
我不确定,但在原始图像中我看不到任何“清晰可见”的线条......你的意思是没有阈值的图像吗?我相信您上传了错误的图片,请编辑以便我们提供更好的帮助。这可能是因为他们没有您指定的
minLineLength,也许较低的值会检测到他们。 -
这是正确的图像。矩形的上边缘不应该注册为水平霍夫线吗?
-
以像素为单位的 rho 分辨率太小。尝试 1 而不是 0.1。使用较小的值的风险是您没有在累加器的任何 bin 中累积足够的像素以达到您设置为 10 的阈值。对于像您这样的图像,使用这个 0.1 没有意义。
-
@Eskapp 评论很重要。 rho 参数以像素为单位进行测量,因此给它部分像素(有些不切实际)可能会产生意想不到的结果。根据我的建议发布了答案,还包括了 rho 考虑。
标签: python opencv computer-vision