我使用的是图像处理工具箱,在Matlab中实现了Hough变换。
它工作得很好,但是它将原点放在图像的左上角,这会导致不必要的大Hough图像,其中有很多未使用的空间。
我想做Hough变换,原点在图像的中心,这样半径范围就会缩小另外,我正在实现的算法需要用这种方式表示Hough空间。
我不想从头开始实现Hough变换,因为我对mex的了解还不足以像Matlab那样高效地重新实现它所以我一直在尝试用Matlab做的hough变换,然后用某种方式对hough图像进行变换,从而有效地移动原点。
有谁知道我建议的更简单的方法或方法吗?

最佳答案

好吧,这个想法在我看来还不太准确,但我有几个想法:
a)您可以重新绘制与图像中心相关的半径和角度这不应该太难,但你得考虑一下。
b)你可以试试这样的方法:
您可以获取图像四个象限中的每个象限的hough如果对“D”执行常规hough,则累加器应自动正确取“B”的hough需要在取flipud之前先做ahough之后,半径将是正确的,但角度需要翻转在水平轴上。在所有四个象限上做一个类似的方法并固定角度后,你只需要把累加器加在一起,然后找出这些线的位置。
如果我有时间的话,我想我可以试着自己实现它,看看它是如何工作的从文档来看,你不能直接使用matlab提供的hough来完成这项工作,所以这两个解决方案是我能想到的最好的解决方案也许其他人会发布一些更简单的东西。

10-08 08:43