2017-10-23 8 views
1

両者の違いは何ですか? 私はイメージ行列を持っており、それをfftw_complex連続配列にフラット化しましたか? どちらをfftw_plan_dft_2dまたはfftw_plan_dft_1dにするか?誰でもfftw_plan_dft_2dとfftw_plan_dft_1dの違いを説明できますか?

私は両方を試みましたが、両方の動作は全く異なりますか?

私はドキュメントを読もうとしましたが、その違いと使い方についてはあまり得られませんでした。

答えて

3

あなたの質問は、フーリエ変換に関するものです。具体的には、1次元FFTと2次元FFTの違いは何ですか?

短い答えは、2D FFTは、次のと同じであることである。

  1. がマトリクスの各行に独立して、1-D FFTを適用します。
  2. ステップ1の結果を取り、マトリックスの各列に1次元FFTを独立に適用します。

fftwプランでは、フラット化された複素数行列が使用されますが、fftw_plan_dft_2dはn0およびn1サイズのパラメータを使用して複素数配列を2D行列として正しく解釈できます。

0

サイズの信号Xの1次元DFT Y N書き込む:

2D dft is defined as

所与1Dの分離可能な産物は、アレイの各次元に沿って変換します。

したがって、2D dftは、最初の次元でdftをとり、もう一方の方向でdftをとることから成ります。それは、こう書いている:

を他の次元上でのDFTを服用すると、最初の結果を変更しないことに注意してください:

確かに、和がfactoredすることができ、the doc of opencvも参照:

このプロパティを備えていない平坦な配列全体の1Dのdftとは異なります。 2Dカーネルへの畳み込みに基づく線形画像フィルタ(ガウス関数など)は、2D dftに依存して、畳み込みをフーリエ空間で点単位の乗算に変換します。画像が2Dの場合、変換された画像も2Dです。説明のためにこのcourseを参照してください。

関連する問題