有谁能建议正确的FFT(实数或复数)?我在这里查看了此处,但仍有疑问。
我想做图像相关来确定主图像中子图像的位置。我理解FFT和iFFTs的基础知识。
计划如下:
如果使用实2d fft(vDSP_fft2dzrip),则结果以打包格式呈现,这使得难以使用vDSP_zvmul将两个结果矩阵相乘。
如果使用复杂fft(vDSP_fft2dzip),我根本没有获得任何相关性。
苹果示例和大多数音频示例除了执行反演之外,不对正向FFT的结果进行任何操作。
有人能帮助我开始进行图像相关吗?第一个问题...我能使用复杂FFT并避免打包格式吗?
我想做图像相关来确定主图像中子图像的位置。我理解FFT和iFFTs的基础知识。
计划如下:
- 对主图像进行FFT。512x512
- 取子图像的共轭。
- 对子图像执行FFT。30x30但用零填充到512x512
- 将两个结果矩阵进行复合乘法
- 在结果上执行iFFT
- 即使结果应该是(大部分)实数,也要取得结果矩阵的幅值
- 寻找最大值,应该对应最大相关性。
如果使用实2d fft(vDSP_fft2dzrip),则结果以打包格式呈现,这使得难以使用vDSP_zvmul将两个结果矩阵相乘。
如果使用复杂fft(vDSP_fft2dzip),我根本没有获得任何相关性。
苹果示例和大多数音频示例除了执行反演之外,不对正向FFT的结果进行任何操作。
有人能帮助我开始进行图像相关吗?第一个问题...我能使用复杂FFT并避免打包格式吗?
vImageConvolve
函数肯定会使用频域实现,这是实现非平凡图像算法的唯一实用方式。也许您可以尝试使用浮点变量或先对图像进行缩放? - TarkvImageConvolve
。但是对于大图像来说速度太慢了,而且运行时间为O(n^2)
。基于FFT的实现可能更快,时间复杂度为O(nlogn)
。 - kiranpradeep