数字图像处理实验 - 联系客服

发布时间 : 星期三 文章数字图像处理实验 -更新完毕开始阅读e28bca7058fb770bf68a551c

逆变换:

1f(i,k)?Nm?0n?0??F(m,n)eN?1N?1j2?(mik?n)NN

图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。

3利用MATLAB软件实现数字图像傅立叶变换的程序: I=imread(‘原图像名.gif’); %读入原图像文件 imshow(I); %显示原图像

fftI=fft2(I); %二维离散傅立叶变换 sfftI=fftshift(fftI); %直流分量移到频谱中心 RR=real(sfftI); %取傅立叶变换的实部 II=imag(sfftI); %取傅立叶变换的虚部 A=sqrt(RR.^2+II.^2); %计算频谱幅值

A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225 %归一化 figure; %设定窗口

imshow(A); %显示原图像的频谱

三、 实验步骤

1.将图像内容读入内存;

2.用Fourier变换算法,对图像作二维Fourier变换; 3.将其幅度谱进行搬移,在图像中心显示; 4.用Fourier系数的幅度进行Fourier反变换; 5.用Fourier系数的相位进行Fourier反变换;

6.比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。 7.记录和整理实验报告。

四、 实验仪器

1.计算机;

24

2 .MATLAB程序;

3.移动式存储器(软盘、U盘等)。 4.记录用的笔、纸。

五、 实验报告内容

1.叙述实验过程;

2.提交实验的原始图像和结果图像。

六、 思考题

1.傅里叶变换有哪些重要的性质?

2.图像的二维频谱在显示和处理时应注意什么?

七、实验图片

number.tif

25

实验七 图像增强—频域滤波

一、 实验目的

1.掌握怎样利用傅立叶变换进行频域滤波 2.掌握频域滤波的概念及方法 3.熟练掌握频域空间的各类滤波器 4.利用MATLAB程序进行频域滤波

二、 实验原理及知识点

频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。频域低通过滤的基本思想:

G(u,v)=F(u,v)H(u,v)

F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的图像。

理想地通滤波器(ILPF)具有传递函数:

?1ifD(u,v)?D0 H(u,v)???0ifD(u,v)?D0其中,D0为指定的非负数,D(u,v)为(u,v)到滤波器的中心的距离。

D(u,v)?D0的点的轨迹为一个圆。

n阶巴特沃兹低通滤波器(BLPF)(在距离原点D0处出现截至频率)的传递函数为H(u,v)?11?[D(u,v)D0]2n

与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在

D0处突然不连续。

高斯低通滤波器(GLPF)的传递函数为

H(u,v)?eD2(u,v)2?2其中,?为标准差。

26

相应的高通滤波器也包括:理想高通滤波器、n阶巴特沃兹高通滤波器、高斯高通滤波器。给定一个低通滤波器的传递函数Hlp(u,v),通过使用如下的简单关系,可以获得相应高通滤波器的传递函数:Hhp?1?Hlp(u,v)

利用MATLAB实现频域滤波的程序

f=imread('room.tif');

F=fft2(f); %对图像进行傅立叶变换

%对变换后图像进行队数变化,并对其坐标平移,使其中心化 S=fftshift(log(1+abs(F)));

S=gscale(S); %将频谱图像标度在0-256的范围内 imshow(S) %显示频谱图像 h=fspecial('sobel'); %产生空间‘sobel’模版 freqz2(h) %查看相应频域滤波器的图像 PQ=paddedsize(size(f)); %产生滤波时所需大小的矩阵 H=freqz2(h,PQ(1),PQ(2)); %产生频域中的‘sobel’滤波器

H1=ifftshift(H); %重排数据序列,使得原点位于频率矩阵的左上角 imshow(abs(H),[]) %以图形形式显示滤波器 figure,imshow(abs(H1),[])

gs=imfilter(double(f),h); %用模版h进行空域滤波 gf=dftfilt(f,H1); %用滤波器对图像进行频域滤波 figure,imshow(gs,[]) figure,imshow(gf,[]) figure,imshow(abs(gs),[]) figure,imshow(abs(gf),[])

f=imread('number.tif'); %读取图片

PQ=paddedsize(size(f)); %产生滤波时所需大小的矩阵 D0=0.05*PQ(1); %设定高斯高通滤波器的阈值

H=hpfilter('gaussian',PQ(1),PQ(2),D0); %产生高斯高通滤波器 g=dftfilt(f,H); %对图像进行滤波 figure,imshow(f) %显示原图像 figure,imshow(g,[]) %显示滤波后图像

三、 实验步骤:

1.调入并显示所需的图片;

2.利用MATLAB提供的低通滤波器实现图像信号的滤波运算,并与

27