在Matlab中将Hough图像转换为不同的原点

时间:2013-04-03 15:57:39

标签: matlab image-processing hough-transform

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

效果很好,但它将原点放在图像的左上角,导致不必要的大型Hough图像,并且有大量未使用的空间。

我想在原点位于图像中心的情况下进行霍夫变换,这样半径范围就会缩小。此外,我正在实现的算法需要以这种方式表示Hough空间。

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

任何人都知道我建议的更简单的方法或怎么做?

1 个答案:

答案 0 :(得分:2)

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

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

b)您可以尝试这样的事情: enter image description here

您可以拍摄图像四个象限中的每一个的hough。如果您在“D”上执行常规hough,则累加器应该自动正确。取{B}的hough将需要您在flipud之前执行hough。之后半径将是正确的,但角度需要在水平轴上翻转。在对所有四个象限进行类似的方法并修复角度后,您可以将累加器添加到一起,然后找到线的位置。

如果我有时间,我想我可能会尝试自己实现它,看看它是如何工作的。从文档看来,你不能直接用matlab提供的hough做到这一点,所以这两个解决方案是我能想到的最好的解决方案。也许其他人会发布更容易的东西。