3

使用する正しいFFT(実数または複素数)について誰かアドバイスできますか?私はここを見ましたが、まだ質問があります。

マスター イメージ内のサブ イメージの位置を特定するためにイメージ相関を実行したいと考えています。FFT と iFFT の基本を理解しています。

計画:

  1. マスター イメージで FFT を実行します。512x512
  2. サブイメージの複素共役を取ります。
  3. サブイメージに対して FFT を実行します。30x30 ですが、512x512 になるようにゼロでパディングされます
  4. 複素数 結果の 2 つの行列を乗算します
  5. 結果に対して iFFT を実行する
  6. 結果は(ほとんど)実数であるはずですが、結果の行列の大きさを取ります
  7. 最大相関に対応する最大値を探します。

期待した結果が得られなくて困っています。

実際の 2d fft (vDSP_fft2dzrip) を使用すると、結果は圧縮された形式になり、vDSP_zvmul を使用して 2 つの結果行列を乗算することが難しくなります。

複雑な fft (vDSP_fft2dzip) を使用すると、相関関係がまったく得られません。

リンゴの例とオーディオの例のほとんどは、順方向 FFT の結果を逆にする以外には何もしていません。

画像相関を始めるのを手伝ってくれる人はいますか? 最初の質問...複雑な FFT を使用して、パック形式を回避できますか?

4

1 に答える 1

3

実数 FFT と複素数 FFT の唯一の違いは、2^n の実数 FFT を 2^(n-1) 複素数 FFT に変換する巧妙なパッキング スキームを使用することで、実数 FFT の方がわずかに効率的であるということです。どちらの場合も、結果は同じになるはずです。したがって、私があなたなら、少なくともすべてが機能するまでは、単純化のために複雑な FFT を使い続けるでしょう。

もご覧になりましたvImageConvolve_ARGB8888か?それはあなたがやろうとしていることを、はるかに少ない労力で行うようです:)

于 2012-12-15T14:36:47.683 に答える