【发布时间】:2017-11-21 05:16:44
【问题描述】:
我可以使用 Opencv 的“cv2.HoughLines”来检测图像中的线条。但我想知道如何实现随机霍夫变换以使用 opencv python 检测线条,因为文献评论说 RHT 比 HT 表现更好。谁能帮帮我?
使用以下代码后
lines = cv2.HoughLines(imgray, 1, np.pi / 180, 300)
for rho, theta in lines[0]:
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))
cv2.line(imgray, (x1, y1), (x2, y2), (0, 0, 255), 2)
【问题讨论】:
-
教你如何实现如此复杂的算法远远超出了这个社区的范围。这是你必须自己学习的东西。我相信你会在网上找到一些源代码和论文。你可以在路上的小步骤上寻求帮助,但没有人会在这里写 200 页。
-
我怎样才能检测到多行而不仅仅是一个?
-
您很可能检测到不止一行,但至少与您帖子中的格式一样,您的代码只会绘制一行,因为对 cv2.line 的调用在 for 循环之外...跨度>
标签: python opencv image-processing computer-vision