- ベストアンサー
VBを使った自作の逆FFTについて
- 自作の逆FFTを用いて2次元FFT図を元の画像に戻すプログラムを作成しました。
- しかし、得られた画像には右斜上方向に数本の線や何かが入り、その線によって画像の濃度が逆転するという問題があります。
- また、2次元FFT図を読み込む際に、白い点の実数部のみを読み込ませていますが、虚数部も読み込む必要があるのか、それとも別の原因による問題なのかについても疑問があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
実例となると自分で作ってみるしかないのですが、フーリエ変換式というのはこういうものでしょうか。DFTの具体的なアルゴリズムをご提示ください。 http://www.geocities.jp/shotajp/fourier.htm 計算結果が複素数で出力されますが、この結果はノルムだけをとっても0から255の間の整数に収まらないので最大値を255として比例配分することになります。ただ、この操作では全体的に数値の小さいところがほとんどになり、画面上は真っ黒になってしまいます。人間の視覚で判断するには対数スケールで配分した方がわかりやすくなります。もちろん次の計算には使うことができないので見るだけですが。
その他の回答 (2)
- nta
- ベストアンサー率78% (1525/1942)
グレースケール上ではRGBのそれぞれの8ビット値が一致すればよいので、演算はどれか8ビット値だけを取り出してフーリエ変換すればいいと思います。もちろんフーリエ変換の前は実数変換を行い、フーリエ変換後もスケーリングをして0~255の整数値に規格化する必要があります。これをRGB値のそれぞれに代入することになるでしょう。フーリエ変換後の複素数の取り扱いはいろいろな課題があります。ノルムだけを使用するのか、実数部をとるのかこのあたりは求める内容やそれ以降の処理の進め方によります。
補足
ありがとうございます。 >演算はどれか8ビット値だけを取り出して すいません。よろしければ、具体例を教えていただけませんでしょうか? 規格化っていうのは、どういうことなのでしょうか? ご指導の程よろしくおねがいします。
- nta
- ベストアンサー率78% (1525/1942)
どうしても説明が読みとれません。 使用する逆FFT図はRGB値各8ビット×4の組み合わせでモノクロかもしれませんが、その32ビット値をフーリエ変換してしまうと別の色を表現することになってしまいます。常にグレースケール上に配分できるように変換する作業はできているのでしょうか。
補足
遅くなって申し訳ございません。 >どうしても説明が読みとれません。 すいません。日本語の表現が苦手です。 >使用する逆FFT図はRGB値各8ビット×4の組み合わせでモノクロかもしれませんが、その32ビット値をフーリエ変換してしまうと別の色を表現することになってしまいます。常にグレースケール上に配分できるように変換する作業はできているのでしょうか。 すいません。勉強不足です。 グレースケール上に配分という処理はどのような処理ですか? 詳しく教えてください。お願いします。
お礼
ありがとうございました。 0から255の間の整数に収まらないので最大値を255として比例配分することになります。がポイントですね。 がんばってみます。