答えて
あなたはこのコードを使用することができます(つまり、F = fft2(I)
)I
があなたの入力画像とF
はそのフーリエ変換であることを
と仮定すると:ここ
F = fftshift(F); % Center FFT
F = abs(F); % Get the magnitude
F = log(F+1); % Use log, for perceptual scaling, and +1 since log(0) is undefined
F = mat2gray(F); % Use mat2gray to scale the image between 0 and 1
imshow(F,[]); % Display the result
は私のHOWからMatlabのページへの例です。
close all; clear all;
img = imread('lena.tif','tif');
imagesc(img)
img = fftshift(img(:,:,2));
F = fft2(img);
figure;
imagesc(100*log(1+abs(fftshift(F)))); colormap(gray);
title('magnitude spectrum');
figure;
imagesc(angle(F)); colormap(gray);
title('phase spectrum');
これは、画像の振幅スペクトルと位相スペクトルを示します。カラー画像を使用しましたが、グレー画像を使用するように簡単に調整できます。
ps。私はちょうどMatlab 2012a上に上記の画像は含まれていないことに気付きました。したがって、上の最初の行は、
img = imread('ngc6543a.jpg');
と置き換えてください。私は上記の例を作成するために古いバージョンのMatlabを使用し、ここでそれをコピーしました。
スケーリングファクタに
我々は、2Dフーリエ変換の大きさを変換プロットするとき、我々はよりよく見ることができるように明るい領域に暗い画素の範囲を拡大する変換ログ用いた画素値をスケーリングする必要があります変換。私たちは、私が知っているdetrmineこのスケールを事前にする既知の方法はありません式で
s = c log(1+r)
をc
値を使用します。ちょうど にあなたが好きに得るために異なる値を試してみる必要があります。上記の例では100
を使用しました。
imagescを使用している場合(c-limitsを設定しない)、使用している定数の意味がありません –
空間ドメインと周波数ドメインで 'fftshift'を適用しています。それ 。 。 。いいえ、いいえ? – imallett
- 1. 2D FFTプロットを正しい周波数(Matlab)に正規化する方法は?
- 2. MATLAB FFT位相プロット
- 3. matlabでfftデータをプロットする
- 4. Matlab 2Dプロット - 軸をバイナリで表示
- 5. Matlab:1つのベクトルのデータから2Dプロット/アニメーションを作成する方法は?
- 6. MATLABでプロットをトリミングする方法
- 7. matplotlibに2D強度プロットをプロットする方法は?
- 8. CUDA fft MATLAB fftと異なる結果
- 9. Matlab - 濃度対距離プロット(2D)
- 10. Matlabの - 2D濃度/等高線プロット
- 11. Matlab、FFT、Centroid Frequency
- 12. fft matlabとjava
- 13. MatlabでFFTを使用して信号のスペクトルを計算してプロットする
- 14. PythonでFFT図をプロットする
- 15. グラフとfftをPythonでプロットする
- 16. Pythonで2Dオブジェクトをプロットする方法は?
- 17. Matlabで2D正規乱数を生成する方法は?
- 18. MATLABまたはJavaのFFT
- 19. MATLAB GUIから2DプロットをPNG形式で保存します
- 20. Matlabのfft/ifftデコンボリューション
- 21. Matlabプロットでポイントを接続する方法は?
- 22. MATLABプロットで特定の輪郭を検出する方法は?
- 23. matplotlibを使って2Dグラデーション(虹)をプロットする方法は?
- 24. Matlabで3Dグリッド(立方体)をプロットする方法
- 25. matlabの2dポイントに変換を適用する方法は?
- 26. MATLABでプロットする
- 27. Matlabで2Dスペクトログラムを作成
- 28. Matlab:色校正なしでプロットする方法は?
- 29. 2Dでプロットする3Dポリゴン
- 30. matlabで複数のプロットをプロットする
+1。ログ(F + 1)を使用していて、ログ(F)ではない理由についてのコメントを追加することができます - ログ(0)未定義の値のため) –
@Anderyありがとう、完了。 –