1
私は、データのセットをFFTしてみましょう(中央に 'T'を描いた10枚の画像です)、与えられた領域でスペクトルの大きさを計算します。Matlabのある領域でスペクトルの大きさを計算する
for i=1:10
filename = sprintf('T%d.GIF', i);
%fourier transform and showing
f = imread(filename); %read in image
z = fft2(double(f)); % do fourier transform
q = fftshift(z); % puts u=0,v=0 in the centre
Magq = log(abs(q)); % magnitude spectrum
Phaseq=angle(q); % phase spectrum
imagesc(log(abs(q)+1)); % Usually for viewing purposes:
colorbar;
end
上の写真は私のコードを実行した後に結果である:
は、ここに私のコードです。下の写真は計算したい部分です。
私は、スペクトルの大きさを計算する
T(i,1)=mean(mean(Magq(1:150,300:340)))+mean(mean(Magq(260:400,300:340)))+mean(mean(Magq(190:210,160:320)))+mean(mean(Magq(190:210,320:480)));
を使用していますが、これの結果は常に-Inf
です。これは主に、mean(mean(Magq(1:150,300:340)))
とmean(mean(Magq(260:400,300:340)))
が両方とも-Inf
に等しいためです。
結果が-Inf
である理由を教えてください。
私はどこが間違っているのか分かりました。私はそれを無視する必要がありますので、私の最終結果にはあまり影響を与えません。とにかくおかげさまで! – newinjava