matlab显示图像频谱

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qiuchangyong/article/details/72393565

将以下代码保存为m文件:

function display_spectrums(file)

img=imread(file);
img=rgb2gray(img);
img=double(img);
f=fft2(img);
f=fftshift(f);
magnitude=log(1+abs(f));
subplot(2,1,1),imshow(magnitude,[]),title('图像幅度谱');
phase=(1+angle(f)/pi)*255;

subplot(2,1,2),imshow(phase,[]),title('图像相位谱');

调用时输入:display_spectrums('文件名')即可输出图像的幅度谱和相位谱。

由于幅度值范围很大,所以要取对数处理;由于相位在(-pi, pi]之间,所以要线性变换到(0, 255]的范围。

展开阅读全文

没有更多推荐了,返回首页