フリーソフトのImageJを使って、画像をFFTします。
このとき、FFTのoptionでパワースペクトルも同時に表示することができるのですが、結果として出てくるFFT後の画像とパワースペクトルの二つの画像の違いは何なのでしょうか?
FFT後の画像とパワースペクトルの数値データを見たのですが大きさが違うように見えるだけで、どのような意味があるのかがさっぱり分かりませんでした。
FFTの原理もあまり理解できていないので、ネットで調べてみてもイマイチよく分かりませんでしたので質問させていただきました。
どうかよろしくお願いします。
No.5ベストアンサー
- 回答日時:
#3です。
FHT(高速ハートレー変換)というのをちょっと調べてみると、フーリエ変換と同じようなことを実数だけでやるというものだそうです。結果をちょっと細工するとフーリエ変換と同じ結果になるので、持っている情報量は同じ。原画が再生される。そして、FHTから求めるパワースペクトルはフーリエ変換から求められるパワースペクトルと同じようです。
先に示したURLによれば、FFTの結果(実はFHT)として見せている画像はパワースペクトルを見せているということなので、「結果として出てくるFFT後の画像とパワースペクトルの二つの画像」は結局のところ同じものではないのでしょうか。
数値以前に、明るい画素は明るい、暗い画素は暗い、と画素毎に確実な対応関係が確認できれば、両者同じもの、見せ方が違うだけ、という結論でよさそうに思われますが。
「結果として出てくるFFT後の画像とパワースペクトルの二つの画像」と数値が対応しないということですが、対応しないのは次のどちらかではないでしょうか。
第一に、FFT結果として、見せている画像とは別に保持しているフーリエ変換結果の数値がある、と先に示したURLでは書かれているはずですが、違いますか?ここ大事。
すると、Text Imageで保存されるのは「見せている画像」と「それとは別に保持しているフーリエ変換結果の数値」と、どっちですか?前者「見せている画像」ではありませんか?それだと比べようもないかもしれませんよね。見せている画像というのは絶対値化とか自乗とかしただけでなく、適当なスケーリングをしているかもしれないし、表示ダイナミックレンジ圧縮のために対数化しているかもしれないのですから。そのような画素値がText Imageで保存されるのではないですか?ご確認ください。
第二に、ext Imageで保存されるのは「別に保持しているフーリエ変換結果の数値」だとしても、それはFFT結果とかいいつつも実はFHTの結果であり、別の値になります。FHTの結果を振幅自乗してもパワーにはなりません。FHT結果からFFT結果に焼き直すには細工が要ります。
結局、FFTといいつつFHTなるものを中で使っているということは、結果として見せるのは同じパワースペクトルであるからこそ、中身の保存値はFFTじゃなくFHT結果で構わない、ということなんではないでしょうか?
>Text Imageで保存されるのは「見せている画像」と「それとは別に保持しているフーリエ変換結果の数値」と、どっちですか?
「見せている画像」をText Imageに変換しているのかもしれません。もし「保持しているフーリエ変換結果の数値」ならば実数と虚数が出てくるはずですよね?(絶対値として保存したら出ないのかな?)
No.4とNo.5でのtatsumi01さんとimoriimoriさんのご回答をまとめると次のような感じでよろしいのでしょうか?
・私がいう「FFT後の画像」は、実は32bits のFHTをした結果の8bits のパワースペクトルを示した物
・「FFT後の画像」と「パワースペクトル」は内容的には同じ物で、見せ方(スケールとかレンジ)の違いがあるだけ
・Text Imageで保存した数値データが違うのは、何らかの処理を行った後の画素値をそのまま数字として出力しているから
No.4
- 回答日時:
No. 3 の方の引用された文を見ますと、imgeJ での FFT は 32bits の FHT (高速ハートレー変換)を計算し、それに 8bits のパワースペクトル画像が付いてくるようです。
FHT は良く知りませんが FFT とは異なり、実数の値が出て来るのかも知れません。画像サイズが判りませんが 2048×2048 なら 10桁の値が出てもおかしくありません。
パワスペクトラム画像は 8bits に正規化してあるそうですから 3桁でおかしくありません。
いずれにせよ、FHT はフーリエ変換のある表現、パワスペクトルは各周波数成分の絶対値の二乗 (前に絶対値と書いたのは誤り) です。フィルタリングなどの処理をするにはフーリエ変換そのものが必要ですが、目で全体を把握するにはパワスペクトルが便利です。しかし、パワスペクトルでは情報が落ちていますから、情報処理するには向きません。
No.3
- 回答日時:
Image Jを使った事はないのですが、
http://rsb.info.nih.gov/ij/docs/menus/process.html
を見ると、「Computes the Fourier transform and displays the power spectrum. The frequency domain image is stored as 32-bit float FHT attached to the 8-bit image that displays the power spectrum.」とあります。
FFTは、結果の実際の値は別に保持し(複素数のはず)、見せる画像(フーリエ面での画像ということで画像と言ってもおかしくはないと私は思っています)はパワースペクトルであると読めます。つまりFFTの画像というのはパワースペクトル。ならば正の実数値であるかのように見えることになります。
質問者様はFFT結果の画像とはまた別の手段でパワースペクトルを求めたということなのでしょうか?
また、FFT結果の値を見るときに、別に保持している(一般には複素数であるはずの)値を見たということなのでしょうか?
もし画像の明るさから判断したということですと、このweb pageの例からするとFFT結果の画像は値を対数変換してグレースケール表示するようですので(そうしないとパワースペクトルはdc部分のみぎらぎら光って他は見えないのが普通だからでしょう)、画像表示の輝度レベルからは判断できないです。
参考URL:http://rsb.info.nih.gov/ij/docs/menus/process.html
回答ありがとうございます。
>質問者様はFFT結果の画像とはまた別の手段でパワースペクトルを求めたということなのでしょうか?
ImageJに「FFT options」というのがあって「Disply:Raw 32-bit Power Spectrum」にチェックをしてFFTをすると「FFT of ○○」と「PS of ○○」(○○はFFTするファイル名です。)という二つの画像が同時に出てくるのです。
二つの画像をText Imageで保存し、Excelで表示して数字のデータとして読み取りました。
説明不足ですみませんでした。よろしくお願いします。
No.2
- 回答日時:
> 得られた画像についてですが、得られたパワースペクトルとFFT後の画像はどちらとも正の実数だったのです。
「FFT後の画像」と書かれていますが、画像をFFTして得られるものは複素スペクトラムであって、「画像」ではないことはお分かりですか。もちろん、2次元データですから(実部だけ、あるいは虚部だけを)画像としてディスプレイに表示できることは事実ですが。
FFTの値が全ての空間周波数で実数であるためには、原画像を f(x, y) として
f(-x, y) = f(x, y)
f(x, -y) = f(x, y)
つまり、原画像が上下にも左右にも対称でないといけません(ここで、座標原点は画像の中心に取っています)。入力画像はそんな性質ですか?また、全ての周波数で正になるというのも考えにくいことです。
「求められたFFT」というのは、実はFFTではなく何か処理した値ではないでしょうか。直感ですが、FFTの値を二乗するとパワースペクトラムになっていませんか。もしそうなっているなら、FFTと称するものはFFTの絶対値です。
なお、「画像の中心(x,y)=(0,0)の信号値が飛び出て高くなる」のは、実画像では普通に成立する性質です。原点の値は原画像の濃淡値を合計したものになります。上に書いたように、FFTの値を二乗して見て下さい。
>画像をFFTして得られるものは複素スペクトラムであって、「画像」ではないことはお分かりですか。
うーん、難しいですね^^;なんとなくイメージでは分かっているつもりだったんおですが・・・
>原画像が上下にも左右にも対称でないといけません(ここで、座標原点は画像の中心に取っています)。入力画像はそんな性質ですか?
入力画像はMRIの頭部画像なので対称ではありません。
>FFTの値を二乗するとパワースペクトラムになっていませんか。
残念ながらなりませんでした。パワースペクトルの値が10桁くらいあるのに対して、FFTの値は3桁しかありませんので、、
No.1
- 回答日時:
FFTで得られる2次元データは複素数です。
したがって、これを画像として表示させるには2枚の画像(実部と虚部)が必要で、後述するようにマイナスの値をどう表現するかの問題があります。パワースペクトルは、各周波数でのフーリエ変換の値の絶対値ですから、2次元データとしては実数(しかも、≧0)です。したがって、画像として表示させると1枚の画像ですみ、≧0ですから普通の濃淡画像になります。
「FFT後の画像」が1枚だとすると、説明書を見てみないと何であるかわかりません。各画素(周波数)の値が複素数である上に正負の値を取りますから、常識的に考えると画像で表現するのはかなり困難です。
早速の回答ありがとうございます。
得られた画像についてですが、得られたパワースペクトルとFFT後の画像はどちらとも正の実数だったのです。
そしてどちらも画像の中心(x,y)=(0,0)の信号値が飛び出て高くなる(白く映る)画像となり、パワースペクトルの値の方がかなり大きな値となっていました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 物理学 フーリエ級数展開をExcelのFFTでシミュレートする 5 2023/07/03 22:02
- 物理学 風力発電での音 1 2023/04/16 08:55
- レトロゲーム Fftというゲームでnpcとかあったようななんでしたっけよろしくお願いしますm(_ _)m 2 2023/04/16 15:50
- 数学 「FFTの基本は、DFTはサンプル数Nが偶数なら 2つのDFTに分解できるということ。 分解するとD 3 2022/03/31 21:01
- 数学 Pythonのspecgramに関する質問です。 1 2022/12/04 19:18
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
- フリーソフト 倍率自動調整して全画面表示できるフリーの画像ビューアー 1 2023/08/24 10:55
- Windows 10 フォルダ内の全ての画像を矢印キーでスライドできるようにしたい 1 2022/10/21 12:53
- モニター・ディスプレイ NVIDIA Geforce GT 710の解像度設定について教えて下さい 3 2022/06/19 13:00
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
1日前の検尿
-
今朝、毎朝の習慣でオナニーし...
-
変な話しになります。尿検査で...
-
射精をして1週間以内に尿検査を...
-
検便についてです。 便は取れた...
-
腕を見たら黄色くなってる部分...
-
2つの数値のうち、数値が小さい...
-
彼女のことが好きすぎて彼女の...
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
値が入っているときだけ計算結...
-
男です。昨日の午後3時くらいに...
-
白血球が多いとどんな心配があ...
-
Excelで""で囲む方法
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
中出しをするとお腹が痛い・・・。
-
麻疹風疹の抗体検査結果につい...
-
エクセルでエラーが出て困って...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
至急!尿検査前日にオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子が黄色?
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
健否~書類の書き方~
-
甲状腺が腫れているが血液検査...
-
はしかの抗体検査は何科の病院...
-
テスターで断線を調べる方法教...
おすすめ情報