3.2 在MATLAB中计算及观察二维DFT

3.2 在MATLAB中计算及观察二维DFT

function t = func_3_2()
%读取图片   
f = imread('Fig0303(a).tif');  
%返回傅里叶变换,大小为MxN,0填充  
F = fft2(f);  
%计算每个元素的幅度
S = abs(F);
%显示图片
imshow(S,[])
%将变换的原点移动到频域矩阵的中心
Fc = fftshift(F);
%显示图片
figure,imshow(abs(Fc),[])
%频谱范围很大,中心处的亮度值占支配地位,用Log变换处理这个难点
S2 = log(1+abs(Fc));
%显示图片
figure,imshow(S2,[])
%反居中变换的语法
F = ifftshift(Fc);

你可能感兴趣的:(3.2 在MATLAB中计算及观察二维DFT)