DIP实验报告滤波.docx

上传人:b****3 文档编号:27053317 上传时间:2023-06-26 格式:DOCX 页数:17 大小:608.69KB
下载 相关 举报
DIP实验报告滤波.docx_第1页
第1页 / 共17页
DIP实验报告滤波.docx_第2页
第2页 / 共17页
DIP实验报告滤波.docx_第3页
第3页 / 共17页
DIP实验报告滤波.docx_第4页
第4页 / 共17页
DIP实验报告滤波.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

DIP实验报告滤波.docx

《DIP实验报告滤波.docx》由会员分享,可在线阅读,更多相关《DIP实验报告滤波.docx(17页珍藏版)》请在冰豆网上搜索。

DIP实验报告滤波.docx

DIP实验报告滤波

课程:

数字图像处理

课程作业实验报告

实验名称:

SpatialFilteringandMedianFiltering

实验编号:

Proj03-02

签名:

姓名:

学号:

截止提交日期:

年月日

 

摘要:

本次实验主要学习图像间运算增强技术和几种常用的空间滤波技术,包括平滑空间滤波器和锐化空间滤波器两大类。

其中平滑空间滤波器包括:

平滑线性滤波器和非线性滤波器(此次实验中的中值滤波器便是此类),锐化空间滤波器包括:

使用二阶微分进行图像锐化(此次实验用的是拉普拉斯算子)和使用一阶微分对图像锐化。

此次实验还通过人为添加椒盐噪声,然后通过滤波技术处理该图像,对比输出结果,总结规律。

1、技术论述

1、空间滤波机理

空间滤波器也称空间掩模、核、模板和窗口,直接作用于图像本身而完成类似的平滑。

空间滤波器由一个邻域,对该邻域包围的图像像素执行的预定义操作组成。

滤波产生一个新像素,新像素的坐标位于邻域的中心坐标,像素的值是滤波操作的结果。

滤波的中心访问输入图像中的每个像素,就产生了处理后的图像。

如果在图像像素上执行的是线性操作,则该滤波器称为线性空间滤波器。

否则,滤波器称为非线性空间滤波器。

简单举个线性滤波的例子:

使用3*3的线性滤波处理图像。

在图像中的任意一点定义为(x,y),滤波器的响应g(x,y)是滤波器的系数与由该滤波器包围的图像像素的乘积之和:

g(x,y)=w(-1,-1)f(x-1,y-1)+w(-1,0)f(x-1,y)+......+w(1,1)f(x1,y1)

很明显,滤波器的中心系数w(0,0)对准位置(x,y)的像素。

对于一个大小为m*n的模板,我们假设m=2a+1且n=2b+1,其中a,b为正整数。

一般来说,使用大小为m*n的滤波器对大小为M*N的图像进行空间滤波,可由下式表示:

其中,x和y是可变的,以便w中的每个像素可访问f中的每个像素。

2、平滑增强技术

一幅图像可能受到各种噪声的影响,包括光电转换过程中的各种噪声、量化噪声、信息传输过程中的误差等,图像的平滑处理可以减小这些噪声。

图像平滑的方法与噪声的类型有关,图像的平滑过程总是要付出一定的细节模糊的代价。

平滑研究的问题之一是:

如何在平滑掉图像中的噪声的同时,尽量保持图像的细节,即少付出一些使细节模糊的代价。

图像中常见的噪声:

1.加性噪声:

加性噪声和图像信号强度不相关g=f+n

2.乘性噪声:

乘性噪声和图像信号相关,往往随图像信号的变化而变化g=f+f*n

3.量化噪声:

是数字图像的主要噪声源。

减小该类噪声的最好方法是,采用按灰度级概

率密度函数选择量化级

4.“椒盐噪声”即图像中黑色区域中的白点

平滑模板的特点及其运算:

一般选择中心对称的模板™模板中的系数为正值或0™模板的系数之和为1(可以保持均匀亮度区域的灰度不变)。

运算方法:

采用模板与图像进行卷积运算,即用模板与对应像素点进行加权平均。

如下图

(1)是几种常用平滑模板:

图1常用平滑模板

3、锐化增强技术

锐化(高频增强)模板目的:

使轮廓模糊的图像变得轮廓清晰。

方法:

增强图像的高频成分。

说明:

图像的轮廓对应着图像中灰度变化快的区域,即对应着图像空间频率的高频部分,增强图像的轮廓就是提升图像的高频成分。

Laplace算子具有高通特性,可用来进行图像锐化。

锐化表达式如下,其中因子α用于调节锐化程度。

g(x,y)=f(x,y)-α▽2f(x,y)

锐化模板推导及说明对数字图像,微分可以用差分表示,故Laplace算子为:

▽2f(m,n)=f(m+1,n)+f(m-1,n)-2f(m,n)+f(m,n+1)+f(m,n-1)-2f(m,n)

代入锐化表达式得:

g(m,n)=(1+4α)f(m,n)-α[f(m+1,n)+f(m-1,n)+f(m,n+1)+f(m,n-1)]

其中α>0,当α越大时,图像锐化得越厉害。

而当f(m,n)与其周围像素的灰度值相等时,即在图像无轮廓区域,上述处理后还是原来的f(m,n),这时没有锐化作用。

如下图

(2),几个具体的Laplace算子模板:

图2Laplace算子模板

 

4、中值滤波技术

中值滤波是一种非线性信号处理方法,与其对应的中值滤波器是一种非线性滤波器。

中值滤波器在一定的条件下可以克服线性滤波器,如最小均方滤波、平均值滤波(平滑滤波)等带来的图像细节模糊,且对滤除脉冲干扰及图像扫描噪声最为有效。

由于其在实际运算过程中不需要图像的统计特性,给处理带来了不少方便。

对一些细节多,特别是点、线、尖顶细节多的图像,不宜采用中值滤波方法。

中值滤波原理:

在一维情况下,中值滤波器是一个含有奇数个像素点的窗口。

进行处理时,将位于窗口正中的像素的灰度值,用窗口内各像素的灰度值的中值代替。

设有一个一维序列f1f2…fn,取中值滤波窗口长度为奇数m=2v+1。

对上述一维序列进行中值滤波,就是从序列中相继抽出m个点fi-v…fi-1fifi+1…fi+v,其中fi为窗口中心点的值,将这些个点的值按其数值大小排序,取其序号为正中间的那个数作为其滤波输出。

用数学公式表示为:

gi=Med{fi-v…fi-1fifi+1…fi+v}。

二维中值滤波器可表示为:

gij=MedA{fij}

其中,A为窗口,{fij}为以fij为中心的数据序列。

二维中值滤波器的窗口形状和尺寸对滤波效果影响较大。

不同的图像内容和不同的应用要求,往往采用不同的窗口形状和尺寸。

常用的有线状、方形、圆形、十字形以及园环形等。

窗口尺寸一般先用3再取5逐点增大,直到其滤波效果满意为止。

二维中值滤波器使用经验:

对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜。

对于包含有尖顶状物体的图像,适宜用十字形窗口。

窗口的大小以不超过图像中最小有效物体的尺寸为宜。

使用二维中值滤波器最值得注意的是,需要保持图像中有效的细线状的物体。

如果图像中点、线、尖角状细节较多,则不宜采用中值滤波。

2、实验结果及讨论

1、实验结果

实验结果如图(3)~图(8)所示:

图(3)中四幅图依次是图像的加、减、乘、除的运算结果;

图(4)是图像乘法和图像与常系数相乘的对比结果;

图(5)为使用课本图3.32的两个模板进行平滑滤波的结果;

图(6)为使用课本图3.37中C和D两个掩模进行拉普拉斯锐化增强的结果;

图(7)为使用课本图3.41中D和E两个掩模进行一阶导数锐化增强的结果;

图(8)左为图5.7(a)原图,中间为添加两次椒盐噪声后的图像,右为采用中值滤波

处理后的图像。

图3图像四种运算

图4图像乘法与常数乘法

图5平滑滤波处理结果

 

图6Laplace锐化处理结果

图7一阶导数锐化处理结果

图8中值滤波处理结果

2、实验讨论

从实验结果易得,当使用平滑滤波对图像处理时,总是要付出一定细节模糊的代价。

在实际的应用中因根据待处理图像的特点选择不同的滤波模板。

为了尽量减小细节模糊,在平滑以前,可以将图像的边界、轮廓提取出来,平滑以后再将其加入图像。

实验结果图(6)和图(7)是图像锐化处理的结果,锐化处理的主要目的是突出灰度的过渡部分。

图(6)运用拉普拉斯算子进行锐化,通过此变换增强了图像中灰度突变处的对比度。

中值滤波器是一种统计排序滤波器,对于处理脉冲噪声非常有效,比均值滤波器的效果更好。

实验结果图(8),便是采用中值滤波器处理呗椒盐噪声两次污染后的图像,结果比较理想,仍有部分残余斑点未滤除。

三、程序附录

functionmain()

%说明:

主函数包括三个部分:

1.图像四则运算

%2.空间滤波(平滑滤波、锐化增强)

%3.中值滤波

%第一部分:

图像的加、减、乘、除运算

ima=imread('Fig1.10(4).jpg');

imb=imread('Fig1.10(5).jpg');

im1=ima+imb;

im2=ima-imb;

im3=ima.*imb;

im4=ima./imb;

figure

subplot(2,2,1);

imshow(im1);

title('图4+图5');

subplot(2,2,2);

imshow(im2);

title('图4-图5');

subplot(2,2,3);

imshow(im3);

title('图4*图5');

subplot(2,2,4);

imshow(im4);

title('图4/图5');

k=1.5;

imz=multiply(ima,imb,0);

imd=multiply(ima,ima,k);

figure

subplot(1,3,1);

imshow(ima);

title('Fig1.10(4)原图');

subplot(1,3,2);

imshow(imz);

title('图4*图5');

subplot(1,3,3);

imshow(imd);

title(['常系数乘以图4系数K='num2str(k)]);

%第一部分结束

%第二部分:

图像平滑滤波、锐化增强

immean=imread('Fig3.38(a).jpg');

immean2=im2double(immean);

module1=ones(3)/9;

n=1;

module2=[n,2*n,n;2*n,4*n,2*n;n,2*n,n]/16/n;

imout1=imfiltermy(immean2,module1);

imout2=imfiltermy(immean2,module2);

%imout=uint8(imout);

figure

subplot(1,3,1);

imshow(immean);

title('Fig3.38(a)原图像');

subplot(1,3,2);

imshow(imout1);

title('平滑滤波后的图像a');

subplot(1,3,3);

imshow(imout2);

title('平滑滤波后的图像b');

%module1

%module2

M37c=[0,-1,0;-1,4,-1;0,-1,0];%Laplacian变换

M37d=[-1,-1,-1;-1,8,-1;-1,-1,-1];

imout37c=imfiltermy(immean2,M37c);

imout37d=imfiltermy(immean2,M37d);

imout37c=immean2-imout37c;

imout37d=immean2-imout37d;

imout37c=immean2+1*imout37c;

imout37d=immean2+1*imout37d;

figure

subplot(1,3,1);

imshow(immean);

title('Fig3.38(a)原图像');

subplot(1,3,2);

imshow(imout37c);

title('Laplacian锐化后的图像c');

subplot(1,3,3);

imshow(imout37d);

title('Laplacian锐化后的图像d');

M41d=[-1,-2,-1;0,0,0;1,2,1];%一阶导数变换

M41e=[-1,0,1;-2,0,2;-1,0,1];

imout41d=imfiltermy(immean2,M41d);

imout41e=imfiltermy(immean2,M41e);

imout41d=immean2-imout41d;

imout41e=immean2-imout41e;

imout41d=immean2+1*imout41d;

imout41e=immean2+1*imout41e;

figure

subplot(1,3,1);

imshow(immean);

title('Fig3.38(a)原图像');

subplot(1,3,2);

imshow(imout41d);

title('一阶导数锐化后的图像c');

subplot(1,3,3);

imshow(imout41e);

title('一阶导数锐化后的图像d');

%第二部分结束

%第三部分:

图像添加噪声、中值滤波

imno=imread('Fig5.07(a).jpg');

imno2=im2double(imno);

figure

subplot(1,3,1)

imshow(imno);

title('Fig5.07(a)原图');

fg=addnoise(imno2,0.2,0.2);

fz=medfilt2(fg,'symmetric');%

subplot(1,3,2);

imshow(fg);

title('二次椒盐噪声污染后图像');

subplot(1,3,3);

imshow(fz);

title('中值滤波后图像');

%第三部分结束

functionimout=multiply(ima,imb,x)

%功能:

乘法:

ima*imb和ima*x

%输入参数:

%ima:

输入图像A

%imb:

输入图像B

%x:

常系数

%输出参数:

%imout:

输出图像

%imout=ima*imbifx==0

%imout=ima*xifx!

=0

ifx==0

imout=ima.*imb;

else

imout=ima.*x;

end

end

functionimt=addnoise(ima,a,b)

%功能:

给图像添加椒盐噪声

%输入参数;

%ima:

输入图像

%a:

第一次添加椒盐噪声系数

%b:

第二次添加椒盐噪声系数

%输出参数:

%imt:

处理后的输出图像

%

%

imt=imnoise(ima,'salt&pepper',a);%一次椒盐噪声污染

imt=imnoise(imt,'salt&pepper',b);%二次椒盐噪声污染

end

functionimb=imfiltermy(ima,module)

%功能:

空间滤波函数

%输入参数:

%ima:

输入图像

%module:

滤波模板

%输出参数:

%imb:

输出图像

[xs,ys]=size(ima);

%[xm,yn]=size(module);

%d=(xm+1)./2;

imb=zeros(xs,ys);

imb(1,:

)=ima(1,:

);

imb(xs,:

)=ima(xs,:

);

imb(:

1)=ima(:

1);

imb(:

ys)=ima(:

ys);

fori=2:

xs-1

forj=2:

ys-1

imb(i,j)=module(1,1).*ima(i-1,j-1)+module(1,2).*ima(i-1,j)+module(1,3).*ima(i-1,j+1)+...

module(2,1).*ima(i,j-1)+module(2,2).*ima(i,j)+module(2,3).*ima(i,j+1)+...

module(3,1).*ima(i+1,j-1)+module(3,2).*ima(i+1,j)+module(3,3).*ima(i+1,j+1);

end

end

%fori=2:

xs-1

%forj=2:

ys-1

%form=1:

3

%forn=1:

3

%imb(i,j)=imb(i,j)+module(m,n).*ima(i+m-2,j+n-2)

%end

%end

%end

%end

end

functionimb=medfiltermy(ima)

%功能:

中值滤波

%输入参数:

%ima:

输入图像

%输出参数:

%imb:

输出图像

[xs,ys]=size(ima);

imb=zeros(xs,ys);

M=zeros(3,3);

N=zeros(3,1);

%imb(1,:

)=ima(1,:

);

%imb(xs,:

)=ima(xs,:

);

%imb(:

1)=ima(:

1);

%imb(:

ys)=ima(:

ys);

fori=2:

xs-1

forj=2:

ys-1

%M=sort(ima(i-1:

i+1,j-1:

j+1),2,'ascend');

%M=sort(M,1,'ascend');

M=ima(i-1:

i+1,j-1:

j+1);

fork=1:

5

forq=k+1:

9

ifM(k)

x=M(q);

M(q)=M(k);

M(k)=x;

end

end

end

imb(i,j)=M(5);

end

end

end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1