数字图像处理实验3 冈萨雷斯
- 格式:doc
- 大小:1.00 MB
- 文档页数:4
实验三 图像的傅里叶变换
一、实验目的
1、 掌握二维 DFT 变换及其物理意义
2、 掌握二维 DFT 变换的 MATLAB 程序
3、 空间滤波及频域滤波 二、实验内容
1、 利用 MATLAB 实现数字图像的傅里叶变换
读入并显示图 Fig0316(3)(third_from_top).tif ,作该图的二维 FFT 变换 F ,将其直流分量移到频 谱中心 F1,计算其实部 RR 、虚部 II ,用两种方法计算及幅值 A1=abs(F1)和 A2=sqrt(RR.^2+II.^2), 分别显示 A1 和 A2,并加以比较。
2、 近似冲击函数二维傅里叶变换
A=zeros(99,99); A(49:51,49:51)=1;
作 A 的二维傅里叶变换 B ,将 B 直流分量移到频谱中心 B1,分别用函数 imshow 和 mesh 显示 A 和 B1 模的对数(log(1+abs(B1)))
空域图像频域图像
1
10
0.8
8
0.6 6
0.4 4
0.2 2
50
40 50
30 40
20 30
20
10 10
0 0
50
4050 3040
2030
20
1010
00
3、空间滤波与频域滤波
将图Fig0504(a)(gaussian-noise).tif(f)分别进行空间与频域滤波。
空间滤波:
用fspecial 产生9*9,标准差为2 的高斯滤波器w,用函数imfilter 对f 进行空间滤波,得到滤波后的图像fi1。
频域滤波
将上述高斯滤波器w 用函数freqz2 获得其256*256 频域形式W,用W 在频域滤波图像f(注意W 的直流分量在频谱中心),得到Ff,求其傅里叶逆变换(ifft2),得到滤波后的图像fi2。
用函数imshow 显示w,用函数mesh 显示W,用imshow 显示f,fi1,Ff 的模的对数,fi2。比较fi1 与fi2。
1 0.8
0.6
0.4
0.2
0 60
40
60
40
20
20
0 0
三、实验要求 在屏幕上显示出各
个图像。
程序:
i=imread('Fig0316(3)(third_from
_top).tif'); figure,imshow(i);
title('Fig0316(3)(third_from_top).
tif'); f=fft2(i);
f1=fftshift(f);
rr=real(f1);
ii=imag(f1);
a1=abs(f1);
a2=sqrt(rr.^2+ii^2);
aa1=log(1+a1);
aa2=log(1+a2);
figure,imshow(aa1,[]);
title('a1 abs');
figure,imshow(aa2,[]);
title('a2 sqrt');
A=zeros(99,99);
A(49:51,49:51)=1;
B=fft2(A);
B1=fftshift(B);
figure,imshow(A);
title('冲击函数imsow');
figure,mesh(A);
title('冲击函数mesh');
figure,imshow(log(1+abs(B1))); title('冲击函数频域模mesh'); figure,mesh(log(1+abs(B1))) title('冲击函数频域模mesh');
g=imread('Fig0504(a)(gaussian-noise).tif');
G=fft2(g);
w=fspecial('gaussian',9,2);
fi1=imfilter(g,w);
W=freqz2(w,256,256);
W1=ifftshift(W);
Ff=G.*W1;
fi2=real(ifft2(Ff));
figure,imshow(w);
title('w');
figure,mesh(W);
title('W');
figure,imshow(g);
title('Fig0504(a)(gaussian-
noise).tif(g)');
figure,imshow(fi1,[]);
title('空间滤波');
figure,imshow(fi2,[]);
title('频域滤波')