【问题标题】:how to implement randomized hough transform to detect line?如何实现随机霍夫变换来检测线?
【发布时间】: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


【解决方案1】:

【讨论】:

  • 概率霍夫变换不同于 RHT。
  • @annie 这就是我写“代替”的原因。它性能更好,您无需实施任何东西。至少 RHT 是一个概率 HT,也许反过来就不是这样了。它更快。我从未见过两者之间的基准,也许你可以创建一个?`:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-24
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多