- 实验内容
(1)选择一幅图像,显示傅里叶变换频谱。再对得到傅里叶图像做傅里叶逆变换,显示图像,观察是否与原图像相同。
(2)对以下程序产生的图像做傅里叶变换的平移性证明,将频谱中心移至中央。
f(1000,1000)=0;
f=mat2gray(f);
[Y,X]=meshgrid(1:1000,1:1000);
f(350:649,475:524)=1;
(3)任选一副图像,显示其相角分布,将振幅置一,并使用其相角进行图像的复原。
- 源程序和结果
(1)选择一幅图像,显示傅里叶变换频谱。再对得到傅里叶图像做傅里叶逆变换,显示图像,观察是否与原图像相同。
clc;
clear all
I=imread('lena.bmp');
f=rgb2gray(I);
figure(4);
subplot(2,2,1),imshow(f);
title('原图');
subplot(2,2,2),
F=fft2(f);
imshow(F);
title('傅里叶变换'); %二维傅里叶变换
FS=fftshift(F);%频率图 %频谱
S=log(1+abs(FS));
subplot(2,2,3);
imshow(S,[]);
title('直接变换频谱图');
fr=real(ifft2(ifftshift(FS)));%频域的图反变
ret=im2uint8(mat2gray(fr));%取其灰度图
subplot(2,2,4),imshow(ret);
title('逆傅里叶变换');
(2)对以下程序产生的图像做傅里叶变换的平移性证明,将频谱中心移至中央。
clc;
clear all
f(1000,1000)=0;
f=mat2gray(f);%矩阵归一化
[Y,X]=meshgrid(1:1000,1:1000);%生成网络矩阵
f(350:649,475:524)=1;
g=f.*(-1).^[X+Y];
F=fft2(f);G=fft2(g);
figure(5);
subplot(1,3,1);imshow(f);title('原图');
subplot(1,3,2);imshow(F);title('原傅里叶变换');
subplot(1,3,3);imshow(G);title('平移后的傅里叶变换');
(3)任选一副图像,显示其相角分布,将振幅置一,并使用其相角进行图像的复原。
I=imread('lena.bmp');
I=rgb2gray(I);
A=fftshift(fft2(I));
A1=log(1+abs(A));
A2=angle(A);
A3=exp(1i*A2);
A4=ifft2(A3);
figure(6);
subplot(1,3,1);imshow(I);title('原图像');
subplot(1,3,2);imshow(A2,[]);title('相角分布');
subplot(1,3,3);imshow(A4,[]);title('复原的图像');