2011-03-31 74 views
6

Hough Transform可用于从图像中提取线条。它也可以用来提取曲线 - 尽管因为更高维的Hough变换是资源消耗的,这有点难度。我想知道,如何将Hough变换限制在二维投票空间中以获得阶数为3的曲线,即x^{3} + ax^{2} + bx + c?查找曲线段的Hough变换

任何人都知道任何好的网站解释这(似乎无法找到任何)。或者,如果没有一个,这里的解释:)。

+0

非常感谢 - 当我有机会并选择解决方案时,我将通读所有这些内容。 – ale 2011-04-01 20:11:26

回答

4

广义Hough变换的本质是累加器的“边”是你正在寻找的答案。如果你试图匹配椭圆或任意曲线 - 在你的情况下,a,b,c参数,那么你应该建立3D累加器,并在那里寻找最大值。谷歌“使用霍夫变换的椭圆检测”或“使用霍夫变换的任意形状检测”。

有很多种方式来优化你的多维累加器搜索,所以不要害怕构建多维HT参数化的空间 - 它可以给你你的问题的很好的概述。

您可能希望将搜索分为两个阶段 - 例如,为您的a和b参数构建经典的2D,然后使用非常简单的1D累加器来寻找c,这已在边缘检测中完成,但请注意如果你的a,b,c相互依赖,这个分裂可能引入大的错误。 (概率)随机Hough变换,混合和多维Hough变换的方法(概率)随机Hough变换,混合和多维Hough变换。

而且通用霍夫变换和Radon变换几乎是同义的,所以对于任意形状检测“Radon变换”可能会给你更好的想法:Hough变换变换连续氡的离散版本。

1

尝试使用谷歌搜索“广义Hough变换”,你会发现很多东西,包括Ballard的原始文件,它看起来很可读。这对你来说最好的取决于你从哪里开始,所以谷歌可能是你最好的选择。

scholar.google.com提供了许多论文,但其中很少有人是免费的(尽管如果您有权访问,这可能是最好的开始)。

+0

谢谢汤姆,是的,我看过几篇论文。但是,我想知道的是如何将投票空间限制为2D。也许我错过了在原始论文中看到它,但我不希望它在那里,因为它是更多的优化。 – ale 2011-03-31 17:23:21

+0

在我看来,巴拉德的椭圆例子与你想要的非常相似。在那里,他从一个椭圆中的4个自由参数开始,并使用HT中固有的不变量去除其中的一些参数。 – tom10 2011-03-31 18:06:50

0

您是否只需要找到已知道参数a,b,c的曲线?使用GHT,您可以从您的eq创建一个离散的投票空间。用它在2d空间投票,你会发现你的曲线。如果你正在试图从Hough变换中确定a,b,c,它将会变得更困难:)