FFTの実数部が画像を回転+オリジナルに変換するのはなぜですか?


16

私はこの画像を読みました:

ここに画像の説明を入力してください

画像を正確に戻すために、FFT(2D)を取得してから、逆FFTを取得しました。参照用にコードが提供されています。

imfft = fft2(photographer);
im = uint8(ifft2(imfft));

imshow(im); %Output is same image

しかし、フーリエを変更して実際の部分のみを使用すると、

imfft = real(fft2(photographer));
im = uint8(ifft2(imfft));
imshow(im);

私はこのような画像を取得します(サイズの変更は無関係であり、Matlabの図ハンドラから保存するためだけであることに注意してください):

ここに画像の説明を入力してください

誰かがその背後にある理論(数学)を説明できますか?ありがとう

回答:


16

イメージがによって与えられたとしましょう。そのフーリエ変換は、 I F(ω X、ω Y)= ∫ X ∫ Y I (X 、Y )E J ω X X E J ω Y Y D X 、D Y私(バツ、y)

私f(ωバツ、ωy)=∫バツ∫y私(バツ、y)ejωバツバツejωyydバツdy

ここで、実際の部分を取り、逆を実行します。

私m(α、β)=∫ωバツ∫ωyℜ{私f(ωバツ、ωy)}ejωバツαejωyβdωバツdωy=∫ωバツ∫ωyℜ{∫バツ∫y私(バツ、y)ejωバツバツejωyydバツdy}ejωバツαejωyβdωバツdωy=∫バツ∫y私(バツ、y)∫ωバツ∫ωyℜ{ejωバツバツejωyy}ejωバツαejωyβdωバツdωydバツdy

内部積分は、の2Dフーリエ変換で あり、

cos⁡(ωバツバツ)cos⁡(ωyy)+罪⁡(ωバツバツ)罪⁡(ωyy)
12[δ(バツ−α)δ(y−β)+δ(バツ+α)δ(y+β)]

結果を代入すると、 私m

私m(バツ、y)=12[私(バツ、y)+私(−バツ、−y)]

もちろん、場合、離散フーリエ変換は信号が周期的であると仮定し、を取得します ここで、は画像の寸法です。その結果が得られた理由がお分かりいただけると思います。バツ、y>0N

私m(バツ、y)=12[私(バツ、y)+私(N−バツ、M−y)]
N、M

いい答え!+1
— ピーターK。

3
I think you can see now why got that result.はい。ただし、この質問はHNQリストに載っているので、おそらく数学的な傾向のないサイトから来た人には最終ステップを追加することを検討するでしょう。
— マスト

9

z(バツ、y)z∗(−バツ、−y)起源について。ここでの原点はフーリエ空間の中心になることに注意してください。もちろん、DC成分がFFT実装の中心にない場合、これを再定式化できます。そして、これはあなたの画像に見られるものです:点反射版は真の画像をオーバーレイしています-あなたが1つのスペースを本当の価値にさせたからです。

このプロパティは、実際にはいくつかのケースで磁気共鳴画像(MRI)を加速するために使用されています。MRIはフーリエ空間で直接データを取得します。理想的なMR画像は実数値のみで記述できるため(励起された磁化ベクトルはすべて位相0です)、データスペースの半分を取得するだけで、イメージング時間の半分を節約できます。もちろん、MR画像は現実の制限のために完全に真の価値があるわけではありません...しかし、いくつかのトリックを使えば、この手法を有利に使用することができます。


2
私は、ThPが提供した同じ答えを述べる簡単な方法が好きでした。そして、MRIに関する情報をありがとう。それについて知らなかった。
— 失敗した科学者
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.