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