2016-05-13 2 views
1

DMの複雑な関数に対してFFTを行いました。そして不思議なことに、予想される低周波はコーナーに位置しています(添付画像参照)。その後の処理は非常に不便でした。dmスクリプトにFFTシフト関数があります

これは、numpy.fft.fftを使ってPythonで実行すると同じような結果を示しますが、numpy(python)では低頻度を中心にシフトするfftshift関数があります。

このようなFFTイメージで動作するDMには、コーナーから中心に低周波数をシフトするための同様の機能がありますか?

FFT of an complex function

+0

上記画像のIFFTは非常にきれいです。 c)ホログラフィー関連? – BmyGuest

+0

計算されたフレネル回折波のFFT。長い時間のために私を苦しんだ... – w4m

答えて

2

スクリプト計算FFTは、それが中央の周波数だ持っています。 (操作の入力が複雑な画像であることを持っていることを、注意してください。)あなたは周波数が「シフト」を参照してください場合

image img := GetFrontImage() 
ConvertToComplex(img) 
ComplexImage fImg := FFT(img) 
fImg.ShowImage() 

はしかし、その後、非常に可能性があなたのFFTでサインインエラーがある(または、同等、FFTとiFFTのミックスアップ)。

しかし、あなたの実際の質問に答えるために、はい、そこにそのようなコマンドがあり、それが実際に文書化されています

void ShiftCenter(BasicImage image)

enter image description here enter image description here

+0

あなたのヒント(混在fftとifftの)ありがとう。私はFFT法を使ってフレネル回折を計算しようとしていましたが、オブジェクトを伝播して "フォーカス"(FFT)してから "イメージ"(IFFT)しました。 – w4m

関連する問題