3

我正在使用 Matlab 中霍夫变换的图像处理工具箱实现。

它工作得很好,但它把原点放在图像的左上角,这会导致一个不必要的大霍夫图像,有很多未使用的空间。

我想用图像中心的原点做霍夫变换,这样半径范围就会减小。我正在实现的算法也需要以这种方式表示霍夫空间。

我不想从头开始实现霍夫变换,因为我不太了解 mex,无法像 Matlab 一样有效地重新实现它。因此,我一直在尝试采用 Matlab 所做的霍夫变换,并以某种方式变换霍夫图像,以便之后有效地移动原点。

任何人都知道更简单的方法或如何按照我的建议进行操作?

4

1 回答 1

2

好的,这个想法在我的脑海中还不是很精确,但是我想出了几个想法:

a)您可以重新参数化相对于图像中心的半径和角度。这不应该太难,但你必须考虑一下。

b)你可以尝试这样的事情: 在此处输入图像描述

您可以获取hough图像的四个象限中的每一个。如果你hough在“D”上做常规,那么累加器应该自动正确。服用hough“B”将要求您flipud在服用hough. 之后半径是正确的,但角度需要在水平轴上翻转。在对所有四个象限执行类似的方法并固定角度后,您可以将累加器加在一起,然后找到线的位置。

如果我有时间,我想我可能会尝试自己实现它,看看它是如何工作的。从文档看来,您无法使用houghmatlab 提供的直接执行此操作,因此这两个解决方案是我能想到的最好的解决方案。也许其他人会发布一些更容易的东西。

于 2013-04-03T18:46:40.923 回答