当前位置:文档之家› 数字图像处理实验报告

数字图像处理实验报告

数字图像处理试验报告实验二:数字图像的空间滤波和频域滤波姓名:XX学号:2XXXXXXX 实验日期:2017 年4 月26 日1.实验目的1. 掌握图像滤波的基本定义及目的。

2. 理解空间域滤波的基本原理及方法。

3. 掌握进行图像的空域滤波的方法。

4. 掌握傅立叶变换及逆变换的基本原理方法。

5. 理解频域滤波的基本原理及方法。

6. 掌握进行图像的频域滤波的方法。

2.实验内容与要求1. 平滑空间滤波:1) 读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。

2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要求在同一窗口中显示。

3) 使用函数 imfilter 时,分别采用不同的填充方法(或边界选项,如零填充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图像。

4) 运用 for 循环,将加有椒盐噪声的图像进行 10 次,20 次均值滤波,查看其特点, 显示均值处理后的图像(提示:利用 fspecial 函数的’average’类型生成均值滤波器)。

5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要求在同一窗口中显示结果。

6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。

2. 锐化空间滤波1) 读出一幅图像,采用3×3 的拉普拉斯算子 w = [ 1, 1, 1; 1 – 8 1; 1,1, 1]对其进行滤波。

2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5×5的拉普拉斯算子w = [ 1 1 1 1 13) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对blurry_moon.tif进行锐化滤波,并利用式g(x, y) ?f (x, y) ? ?2 f (x, y) 完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。

4) 采用不同的梯度算子对该幅图像进行锐化滤波,并比较其效果。

5) 自己设计锐化空间滤波器,并将其对噪声图像进行处理,显示处理后的图像;3. 傅立叶变换1) 读出一幅图像,对其进行快速傅立叶变换,分别显示其幅度图像和相位图像。

仅对相位部分进行傅立叶反变换后查看结果图像。

2) 仅对幅度部分进行傅立叶反变换后查看结果图像。

3) 将图像的傅立叶变换F 置为其共轭后进行反变换,比较新生成图像与原始图像的差异。

4. 平滑频域滤波1) 设计理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器,截至频率自选,分别给出各种滤波器的透视图。

2) 读出一幅图像,分别采用理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器对其进行滤波(截至频率自选),再做反变换,观察不同的截止频率下采用不同低通滤波器得到的图像与原图像的区别,特别注意振铃效应。

(提示:1)在频率域滤波同样要注意到填充问题;2)注意到(-1);)5. 锐化频域滤波1) 设计理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器,截至频率自选,分别给出各种滤波器的透视图。

2) 读出一幅图像,分别采用理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器对其进行滤波(截至频率自选),再做反变换,观察不同的截止频率下采用不同高通滤波器得到的图像与原图像的区别。

3.实验具体实现1. 平滑空间滤波:(1).读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。

img=imread('lena.png') figure,subplot(1,3,1);imshow(img);title('原始图像'); img2=imnoise(img,'salt & pepper',0.02); subplot(1,3,2);imshow(img2); title('椒盐噪声图像');实验结果如下:(2).对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要求在同一窗口中显示。

平滑滤波是低频增强的空间域滤波技术。

它的目的有两个,一是模糊,二是消除噪声。

将空间域低通滤波按线性和非线性特点有:线性、非线性平滑滤波器,线性平滑滤波器包括均值滤波器,非线性的平滑滤波器有最大值滤波器,中值滤波器,最小值滤波器。

代码如下:img=imread('lena.png')img=rgb2gray(img);figure,subplot(1,3,1);imshow(img);title('原始图像');img2=imnoise(img,'salt &pepper',0.02);subplot(1,3,2);imshow(img2);title('椒盐噪声图像');img3=imnoise(img,'gaussian',0.02);subplot(1,3,3),imshow(img3); title('高斯噪声图像');%对椒盐噪声图像进行滤波处理h=fspecial('average',3);I1=filter2(h,img2)/255;I2=medfilt2(img2,[3 3]);figure,subplot(2,2,1),imshow(img),title('原图像'); subplot(2,2,2),imshow(img2),title('椒盐噪声图'); subplot(2,2,3),imshow(I1),title('3*3 均值滤波图'); subplot(2,2,4),imshow(I2),title('3*3 中值滤波图'); %对高斯噪声图像进行滤波处理G1=filter2(h,img3)/255;G2=medfilt2(img3,[3 3]);figure,subplot(2,2,1),imshow(img),title('原图像'); subplot(2,2,2),imshow(img3),title('高斯噪声图'); subplot(2,2,3),imshow(G1),title('3*3 均值滤波图'); subplot(2,2,4),imshow(G2),title('3*3 中值滤波图');实验结果如下:(3). 使用函数 imfilter 时,分别采用不同 的填充方法(或边界选项,如零填 充、’replicate ’、’symmetric ’、’c ircular ’)进行低通滤波,显示处理后的图像。

g = imfilter(f, w, filtering_mode, boundary_options,size_options),其中,f 为输入图像,w 为滤波掩模,g 为滤波后图像。

实验结果如下:(4).运用 for 循环,将加有椒盐噪声的图像进行 10 次,20 次均值滤波,查看其特点,显 示均值处理后的图像(提示:利用 fspecial 函数的’ave rage ’类型生成均值滤波器)。

代码如下:h=fspecial('motion',50,45); %创建一个运动模糊滤波器filteredimg=imfilter(img,h);boundaryReplicate=imfilter(img,h,'replicate');boundary0=imfilter(img,h,0);boundarysymmetric=imfilter(img,h,'symmetric');boundarycircular=imfilter(img,h,'circular');for i=1:10J1=imfilter(img2,h);endfor j=1:20实验结果:(5).对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要求在同一窗口中显示结果。

代码如下:h1=fspecial('average');J=imfilter(img2,h1);实验结果为:(6).自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。

代码如下:[m n]=size(img2); figure,subplot(1,2,1),imshow(img2);for i=2:1:m-1for j=2:1:n-1h=1;for p=i-1:1:i+1for q=j-1:1:j+1实验结果:2.锐化空间滤波(1)读出一幅图像,采用3×3的拉普拉斯算子 w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1]对其进行滤波。

代码如下:img=imread('lena.png'); img=rgb2gray(img);img=im2double(img);实验结果为:(2)编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5×5 的拉普拉斯算子w = [ 1 1 1 1 1(3)分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对blurry_moon.tif 进代码如下:基于上一题行锐化滤波,并利用式完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。

function[W]=lapulasi(num)n=num,W=ones(n),x=fix(n/2)+1; W(x,x)=-(n*n-1);其他代码:f=imread('moon.tif');f=im2double(f);figure,subplot(2,3,1),imshow(f),title('Original Image');实验结果为:代码如下:[I,map]=imread('moon.tif'); I=double(I);figure,subplot(2,3,1),imshow(I,map),title('OriginalImage'); [Gx,Gy]=gradient(I);G=sqrt(Gx.*Gx+Gy.*Gy),J1=G;subplot(2,3,2),imshow(J1,map),title('Operator1 Image');J2=I;K=find(G>=7);J2(K)=G(K);subplot(2,3,3),imshow(J2(4)采用不同的梯度算子对该幅图像进行锐化滤波,并比较其效果。

相关主题