2010-12-05 14 views
3

2次元フーリエ変換に関する質問があります。私は現在、これの背後にある数学を理解している段階にあります。私はそれを知りません。私の知る限り、DFTの複雑さはO(N*N)です。私は次のアルゴリズムを見れば:2次元離散フーリエ変換の複雑さ

alt text

私はそれがどのように動作するか理解していません。我々は、変換された画像のすべてのピクセルについてこの計算を行うつもりですか?

  1. 我々は2 * 2のイメージを持っています。我々はDFT F(x、y)をやろうとしている。この画像の各ピクセルに対して
  2. 私は、新しいイメージを作成します、各画素はcorrosponding複素数値
の大きさであります

これは動作するのですか、何か不足していますか?今、私はそれを見ているので、複雑さがあります。O(N^4)

+1

そしてC#の関連性は? –

+0

関数型プログラミング言語がこの計算を別々に扱うかどうかわからないので、これを追加するといいかもしれないと思った。 –

答えて

3

式は「ピクセル(u、v)でFの値を取得し、評価する(右辺の式)」を意味します。したがって、変換されたイメージ全体を取得するには、変換されたイメージのすべてのピクセルについて評価されます。

数式を使用してDFTを計算するには、すべての出力値の入力値ごとにO(1)計算を行う必要があります。 2D DFTの場合、入力ピクセル数はM * Nであり、入力ピクセルの数は(M * N)^ 2であるため、アルゴリズムは複雑さO((M * N)^ 2)を持ちます。出力画素もM * Nである。

edit:2D行列DFTは、行と列を別々のステップで変換することによってO(NM^2 + MN^2)で計算できます。アルゴリズムはここにあります:http://fourier.eng.hmc.edu/e101/lectures/Image_Processing/node6.html

+0

ああ、ありがとう!しかし、私はプログラミングを始める前に1つの短い質問が残っています。あなたはおそらく今何を(ux/M + vy/N)正確に意味しますか? –

+0

(http://fourier.eng.hmc.edu/e101/lectures/Image_Processing/node6.html)によると、2D DFTの複雑さはO(N^3) – RobS

+0

です@RobS私は与えられたDFTの複雑さを記述していましたアルゴリズム。あなたがリンクしているアルゴリズムは、実際には漸近的に高速です。私は答えに加えました。 – Heatsink

関連する問題