3

谁能建议使用正确的 FFT(实数或复数)?我看过这里,但仍有疑问。

我想做图像相关来识别主图像中子图像的位置。我了解 FFT 和 iFFT 的基础知识。

计划:

  1. 对主图像执行 FFT。512x512
  2. 取子图像的复共轭。
  3. 对子图像执行 FFT。30x30 但用零填充到 512x512
  4. 将两个结果矩阵相乘
  5. 对结果执行 iFFT
  6. 即使结果应该(大部分)是真实的,也要取结果矩阵的大小
  7. 寻找对应于最大相关性的最大值。

我无法获得预期的结果。

如果我使用真正的 2d fft (vDSP_fft2dzrip),结果是压缩格式,这使得很难使用 vDSP_zvmul 乘以两个结果矩阵。

如果我使用复杂的 fft (vDSP_fft2dzip),我根本无法获得任何相关性。

苹果示例和大多数音频示例对正向 FFT 的结果没有做任何事情,除了做逆向。

谁能帮我开始使用图像相关性?第一个问题...我可以使用复杂的 FFT 并避免打包格式吗?

4

1 回答 1

3

实数和复数 FFT 之间的唯一区别是,实数 FFT 可以通过使用巧妙的打包方案将 2^n 实数 FFT 转换为 2^(n-1) 复数 FFT 稍微更有效。两种情况下的结果应该相同。因此,如果我是您,为了简单起见,我会坚持使用复杂的 FFT,至少在您一切正常之前。

你也看过了vImageConvolve_ARGB8888吗?它似乎做了你想做的事,而且省了很多力气:)

于 2012-12-15T14:36:47.683 回答