% 画像を読み込んで表示
imagedata=imread('lena512.bmp');	% 画像データの読み込み
figure;imagesc(imagedata);colormap(gray(256));	% グレースケール２５６階調で表示

% FFT
[h w] = size(imagedata);
fftdata = fft2(double(imagedata), h, w);

% 振幅　可視化のためにlogをとって正規化
fftshiftdata = abs(fftshift(fftdata));
logfftshift = log(fftshiftdata);
max_value = max(logfftshift(:));
amp = logfftshift/max_value; % 0～1に正規化
figure;imshow(amp); % 結果の表示・書き出し

% 位相
pha = angle(fftdata);
ifftpha = ifft2(double(pha),h,w);
iphaimg = abs(ifftpha);
figure;imagesc(iphaimg);colormap(gray(256));

% IFFTして表示
ifftdata = ifft2(double(fftdata), h, w);
figure;imagesc(ifftdata);colormap(gray(256));
