我是学生,我必须做一个项目,使用霍夫变换来检测图像的边界,也就是我们所说的骨架。我还使用 Pyside。
为此,我知道如何执行霍夫变换,我找到了一个带有 Python 插件的网站(http://scikits-image.org/docs/0.4/api/skimage.transform.html#hough),作为返回,它给了我:H:uint64 的二维 ndarray(霍夫变换累加器)、距离和 theta:ndarray(计算变换的角度。)
因此,根据这些信息,我想反转霍夫变换以获得图像的“骨架”并在“正常”空间 y=ax+b(对于所有线条和形状)中表示它。
为了做到这一点,我找到了一篇关于 Window-base Inverse Hough Transform 的文章。 本文讨论了一种通过使用下面的算法(两步)来实现的方法,问题是我真的不知道如何将其放入我的应用程序,甚至是 Python 中:s
如果您想要更多信息(我可以发布太多链接,看起来)那么这个链接,我们将引导您到我已经发布了我的信息的论坛(Link to the french forum (post #6)。
您将在第 6 篇文章中看到算法和 pdf 文章站点的链接。
非常感谢您的帮助。
请您参考如下方法:
寻找已知形状的边界是另一项挑战。我不确定您是否正确使用关键字 - 寻找广义霍夫变换可能比寻找逆霍夫变换更好。
上面链接中的霍夫变换已经为您提供了累加器所有角度的输出: 出,角度,d = hough(img)
以弧度为单位的角度和以像素为单位的 d 距离。所以你对 y=ax+b 的要求已经满足了(a 是 angle[i],b 是 d[i])。 显然,这个 hough 变换实现只适用于线条。
