math - 用于查找曲线段的霍夫变换

标签 math computer-vision hough-transform

Hough Transform可用于从图像中提取线条。它还可以用于提取曲线——虽然这有点困难,因为更高维的霍夫变换会消耗资源。我想知道是否如何将 Hough 变换限制为 3 阶曲线的 2D 投票空间,即 x^{3}+ax^{2}+bx+c ?

任何人都知道任何解释这一点的好网站(似乎找不到任何网站)。或者如果没有的话在这里解释:)。

最佳答案

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

有很多方法可以在多维累加器中优化您的搜索,所以不要害怕构建多维 HT 参数化空间 - 它可以让您很好地了解您的问题。

您可能希望将搜索分成两个阶段 - 例如为您的 a 和 b 参数构建一个经典的 2D,然后使用非常简单的 1D 累加器来查找 c,这已在边缘检测中完成,但请注意,此拆分可能会引入如果 a,b,c 相互依赖,则错误很大。

优化多维霍夫变换的方法:(概率)随机霍夫变换、混合和多维霍夫变换。

此外,广义霍夫变换和拉登变换几乎是同义词,因此对于任意形状检测,“拉登变换”可能会给您更好的想法:霍夫变换是连续拉登变换的离散版本。

关于math - 用于查找曲线段的霍夫变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5502726/

相关文章:

php - 检测两个数字范围是否冲突

java - 生成一个结果没有点的除法,除数和被除数是从一系列数字中随机生成的

在 C 中计算 64x64 int 产品的高 64 位

java - 如何创建像电话一样的秒/毫秒计时器?

swift - 用于对象搜索的 CoreML

matlab - 通过周围像素的平均值去除图像中的孔

python - 求凹曲线形状 Blob 的宽度和高度

python - 如何在 HoughLinesP 之后合并行?

c++ - 我们如何修改 OpenCV 并生成新的 DLL

.net - 从 CvHoughCircles 获取更多信息