数字图像 -中值滤波

数图课程设计

实验报告

学院:通信与信息工程学院 班级:电子信息科学与技术 姓名: 学号:

实验名称:中值滤波

【一】 实验目的及要求 1.了解中值滤波的原理;

2.滤波窗口种类可选; 3.可以添加多种不同噪声; 4.使用中值滤波法去除噪声;

【二】 实验原理

中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计特性,所以比较方便。中值滤波首先是被应用在一维信号处理技术中,后来被二维图像信号处理技术所应用。在一定的条件下,可以克服线性滤波器(如领域平均运算)所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。但是对一些细节多,特别是点、线、尖顶细节多的图像 不宜采用中值滤波的方法。

中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的“中值”代替。“中值”是指将一个领域中灰度值按照从大到小(或者相反)的顺系排列成一序列,排在中间的数就是此序列的中值。

1. 一维序列f 1,f 2,„,f n ,取窗口长度为m(m为奇数) ,对此序列进行中值滤波,就是从输入序列中相继抽出m 个数,f i -v ,„,f i -1,„,

f 1,„,f i +1,„,f i +v ,其中i 为窗口的中心位置,v =

m -1

,再将这m 个点2

按其数值大小排列,取其序号为正中间的那作为输出。用数学公式表示为:

Y i =Med {f i -v , , f i , , f i +v } i ∈Z , v =

m -1

2

2. 二维序列{X ij }进行中值滤波时,滤波窗口也是二维的,但这种二维窗口可以有各种不同的形状,如线状、方形、圆形、十字形、圆环形等。二维数据的中值滤波可以表示为:

Y i , j =Med {X ij },A 为滤波窗口

A

在实际使用窗口时,窗口的尺寸以不超过图像中最小有效物体的尺寸为宜,一般先用3⨯3再取5⨯5逐渐增大,直到其滤波效果满意为止。对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜,对于包含尖顶角物体的图像,适宜用十字形窗口。

【三】 程序清单与运行结果

程序清单

添加均值为0,方差为0.01的椒盐噪声时的程序: f=input('请输入文件名:','s');

choice=input('请选择中值滤波器的形状:1. 矩形 2.十字形 3.线形\n'); p=input('请输入阶数:'); if(mod(p,2)~=0) Fid=fopen(f); [A,count]=fread(Fid); B=reshape(A,256,256); C=zeros(256,256); B=B';

subplot(2,2,1),imshow(uint8(B)); title('(a)原图象');

J=imnoise(uint8(B),'salt & pepper',0.01); subplot(2,2,2),imshow(J);

title('(b)添加均值为0,方差为0.01的椒盐噪声图像');

if(choice==1) C=rectfilter(B,p);

subplot(2,2,3),imshow(uint8(C)); title('(c )矩形窗中值滤波后的图象');

else if(choice==2) C=crossfilter(B,p);

subplot(2,2,3),imshow(uint8(C));

title('(c)十字形窗中值滤波后的图象'); else (choice==3) C=straightfilter(B,p);

subplot(2,2,3),imshow(uint8(C)); title('(c)线形窗中值滤波后的图象'); end end else

disp('输入阶数错误!必须是奇数!'); end

程序中调用的各类窗口函数:

十字形窗口函数:

function B=crossfilter(A,n) m=(n+1)/2; for i=m:(256-m+1) for j=m:(256-m+1)

x=A(i-m+1:i+m-1,j-m+1:j+m-1); y=zeros(1,2*n-1); for k=1:n y(k)=x(m,k); end h=1; for k=1:n if(k~=m)

y(n+h)=x(k,m); h=h+1; end 线形窗口函数:

end

B(i,j)=med(y,2*n-1); end end

矩形窗口函数:

function B=rectfilter(A,n) m=(n+1)/2; for i=m:(256-m+1) for j=m:(256-m+1)

x=A(i-m+1:i+m-1,j-m+1:j+m-1); y=reshape(x,1,n*n); B(i,j)=med(y,n*n); end end

function B=straightfilter(A,n)

m=(n+1)/2; for i=m:(256-m+1) for j=1:256

x=[A(i-m+1:i+m-1,j)];

B(i,j)=med(x,n); end end

加椒盐噪声的运行结果:

图(1)

将椒盐噪声程序换成高斯噪声:

J2=imnoise(uint8(B),'gaussian',0.01); subplot(2,2,2),imshow(J2);

title('(b)添加均值为0,方差为0.01的高斯噪声图像');

加高斯噪声的运行结果:

图(2)

【四】 实验结果分析

在图(1)中,图(c ) 是对(a )图像进行中值滤波的的结果,图(b )是加了椒盐噪声的图像。由图(c ) 才可知,经中值滤波后,图像的噪声得到了很大程度的抑制。

在图(2)中,图(c ) 是对(a )图像进行中值滤波的的结果,图(b )是加了椒盐噪声的图像。由图(c ) 才可知,经中值滤波后,图像的噪声得到了一定程度的抑制。比较两个图可知,中值滤波器对椒盐噪声的的消噪效果比较好,但对高斯噪声的消噪效果不是很好。

中值滤波的优点:可以做到既去除噪声又能保护图像的边缘,从而获得较满意的复原效果。缺点:对带有噪声有选择性,适用于“椒盐”噪声,对于随机噪声不如低通法效果好。

【五】 心得体会

通过这次实验对中值滤波有了更深的认识,之前上课听老师讲了中值滤波的原理,但对它的作用及滤波后的效果没有真实的了解,这次实验刚好让我更好的学习和理解中值滤波,实验中的矩形,十字形窗口函数我不会写,是参考同学的,不会的部分请教了同学, 自己也查阅了一些资料,在实验的过程中学到了很多知识。

很感谢老师们给我这次实验的机会,让我深刻地认识到自己的优点和不足,在实验的过程中,遇到很多问题,我知道自己要学习的东西还很多很多,也懂了不亲自动手,就不知道自己究竟掌握了多少知识,纸上得来终觉浅,要真正学到知识就要多动手,多动脑。

数图课程设计

实验报告

学院:通信与信息工程学院 班级:电子信息科学与技术 姓名: 学号:

实验名称:中值滤波

【一】 实验目的及要求 1.了解中值滤波的原理;

2.滤波窗口种类可选; 3.可以添加多种不同噪声; 4.使用中值滤波法去除噪声;

【二】 实验原理

中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计特性,所以比较方便。中值滤波首先是被应用在一维信号处理技术中,后来被二维图像信号处理技术所应用。在一定的条件下,可以克服线性滤波器(如领域平均运算)所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。但是对一些细节多,特别是点、线、尖顶细节多的图像 不宜采用中值滤波的方法。

中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的“中值”代替。“中值”是指将一个领域中灰度值按照从大到小(或者相反)的顺系排列成一序列,排在中间的数就是此序列的中值。

1. 一维序列f 1,f 2,„,f n ,取窗口长度为m(m为奇数) ,对此序列进行中值滤波,就是从输入序列中相继抽出m 个数,f i -v ,„,f i -1,„,

f 1,„,f i +1,„,f i +v ,其中i 为窗口的中心位置,v =

m -1

,再将这m 个点2

按其数值大小排列,取其序号为正中间的那作为输出。用数学公式表示为:

Y i =Med {f i -v , , f i , , f i +v } i ∈Z , v =

m -1

2

2. 二维序列{X ij }进行中值滤波时,滤波窗口也是二维的,但这种二维窗口可以有各种不同的形状,如线状、方形、圆形、十字形、圆环形等。二维数据的中值滤波可以表示为:

Y i , j =Med {X ij },A 为滤波窗口

A

在实际使用窗口时,窗口的尺寸以不超过图像中最小有效物体的尺寸为宜,一般先用3⨯3再取5⨯5逐渐增大,直到其滤波效果满意为止。对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜,对于包含尖顶角物体的图像,适宜用十字形窗口。

【三】 程序清单与运行结果

程序清单

添加均值为0,方差为0.01的椒盐噪声时的程序: f=input('请输入文件名:','s');

choice=input('请选择中值滤波器的形状:1. 矩形 2.十字形 3.线形\n'); p=input('请输入阶数:'); if(mod(p,2)~=0) Fid=fopen(f); [A,count]=fread(Fid); B=reshape(A,256,256); C=zeros(256,256); B=B';

subplot(2,2,1),imshow(uint8(B)); title('(a)原图象');

J=imnoise(uint8(B),'salt & pepper',0.01); subplot(2,2,2),imshow(J);

title('(b)添加均值为0,方差为0.01的椒盐噪声图像');

if(choice==1) C=rectfilter(B,p);

subplot(2,2,3),imshow(uint8(C)); title('(c )矩形窗中值滤波后的图象');

else if(choice==2) C=crossfilter(B,p);

subplot(2,2,3),imshow(uint8(C));

title('(c)十字形窗中值滤波后的图象'); else (choice==3) C=straightfilter(B,p);

subplot(2,2,3),imshow(uint8(C)); title('(c)线形窗中值滤波后的图象'); end end else

disp('输入阶数错误!必须是奇数!'); end

程序中调用的各类窗口函数:

十字形窗口函数:

function B=crossfilter(A,n) m=(n+1)/2; for i=m:(256-m+1) for j=m:(256-m+1)

x=A(i-m+1:i+m-1,j-m+1:j+m-1); y=zeros(1,2*n-1); for k=1:n y(k)=x(m,k); end h=1; for k=1:n if(k~=m)

y(n+h)=x(k,m); h=h+1; end 线形窗口函数:

end

B(i,j)=med(y,2*n-1); end end

矩形窗口函数:

function B=rectfilter(A,n) m=(n+1)/2; for i=m:(256-m+1) for j=m:(256-m+1)

x=A(i-m+1:i+m-1,j-m+1:j+m-1); y=reshape(x,1,n*n); B(i,j)=med(y,n*n); end end

function B=straightfilter(A,n)

m=(n+1)/2; for i=m:(256-m+1) for j=1:256

x=[A(i-m+1:i+m-1,j)];

B(i,j)=med(x,n); end end

加椒盐噪声的运行结果:

图(1)

将椒盐噪声程序换成高斯噪声:

J2=imnoise(uint8(B),'gaussian',0.01); subplot(2,2,2),imshow(J2);

title('(b)添加均值为0,方差为0.01的高斯噪声图像');

加高斯噪声的运行结果:

图(2)

【四】 实验结果分析

在图(1)中,图(c ) 是对(a )图像进行中值滤波的的结果,图(b )是加了椒盐噪声的图像。由图(c ) 才可知,经中值滤波后,图像的噪声得到了很大程度的抑制。

在图(2)中,图(c ) 是对(a )图像进行中值滤波的的结果,图(b )是加了椒盐噪声的图像。由图(c ) 才可知,经中值滤波后,图像的噪声得到了一定程度的抑制。比较两个图可知,中值滤波器对椒盐噪声的的消噪效果比较好,但对高斯噪声的消噪效果不是很好。

中值滤波的优点:可以做到既去除噪声又能保护图像的边缘,从而获得较满意的复原效果。缺点:对带有噪声有选择性,适用于“椒盐”噪声,对于随机噪声不如低通法效果好。

【五】 心得体会

通过这次实验对中值滤波有了更深的认识,之前上课听老师讲了中值滤波的原理,但对它的作用及滤波后的效果没有真实的了解,这次实验刚好让我更好的学习和理解中值滤波,实验中的矩形,十字形窗口函数我不会写,是参考同学的,不会的部分请教了同学, 自己也查阅了一些资料,在实验的过程中学到了很多知识。

很感谢老师们给我这次实验的机会,让我深刻地认识到自己的优点和不足,在实验的过程中,遇到很多问题,我知道自己要学习的东西还很多很多,也懂了不亲自动手,就不知道自己究竟掌握了多少知识,纸上得来终觉浅,要真正学到知识就要多动手,多动脑。


相关文章

  • 数字图像去噪典型算法仿真与分析
  • 数字图像去噪典型算法仿真与分析 个人信息********* 摘要:图像去噪是数字图像处理中的重要环节和步骤.本文首先介绍了常见的图像噪声:然后,在介绍图像去噪的基本方法和原理的基础上,讨论了均值滤波.中值滤波和维纳滤波三种典型的图像去噪方法 ...查看


  • 改进中值滤波器去噪算法研究
  • 改进中值滤波器去噪算法研究 陈 亮 (吉首大学信息科学与工程学院,湖南 吉首 416000) 摘 要 图像信号在产生.传输和记录过程中,经常会受到各种噪声的干扰,由于其严重地影响了图像的视觉效果,因此迫切需要合适的滤波器对其进行滤波.论文首 ...查看


  • 毕业论文图像处理噪声方法与研究
  • 长 治 学 院 2013届学士学位毕业论文 图像处理中消除噪声的方法研究 学 号: 09407205 姓 名: 程晓满 指导教师: 上官晋太 专 业: 计算机科学与技术 系 别: 计算机 完成时间:2013年5月 图像处理中消除噪声的方法研 ...查看


  • 基于matlab的图像边缘检测算法研究
  • 本科毕业设计(论文) 检测算法研究 学 院:信息工程学院 专 业:自动化 学 号: 学生姓名: 指导教师: 二○一 年 五月 二十三日 题 目:基于matlab 的图像边缘 基于matlab 的图像边缘检测算法研究 摘要 图像的边缘检测技术 ...查看


  • 数字图像与模式识别
  • 实验一 MATLAB图像处理基本操作 一.实验目的 1. 掌握MATLAB 语言中图象数据与信息的读取方法: 2. 掌握图像灰度调整 二.实验要求 1.打开一个BMP 文件 2. 将其局部区域的灰度值进行改变 3. 另存为一个新的BMP 文 ...查看


  • 有效去除图像混合噪声的方法
  • 第29卷第1.3期 V01.29 No.13 计算机工程与设计 ComputerEngineeringandDesign 2008年7月 July2008 有效去除图像混合噪声的方法 李慧娜, 平源 (许昌学院计算机科学与技术学院,河南许昌 ...查看


  • 基于MATLAB的减少图像噪声
  • 目录 第一章 概述„„„„„„„„„„„„„„„„„„„„ 第2页 第二章 典型噪声介绍„„„„„„„„„„„„„„„„ 第3页 第三章 基于MATLAB 的模拟噪声生成 „„„„„„„„„ 第5页 第四章 均值滤波处理方法„„„„„„„„ ...查看


  • 数字图像处理的理论基础_孔大力
  • 第1期 ·12·山东水利职业学院院刊2013年3月 数字图像处理的理论基础 孔大力 徐 斌 (山东水利职业学院,山东日照276826) 摘要:本文简要概述了数字图像处理所研究的内容,对其中的几个重要过程:图像去噪.图像复原.图像增强的理论和 ...查看


  • 205_彪_图像滤波
  • 杭州师范大学 遥感数字图像处理方法 实验报告 实验名称: 图像滤波 姓 名: 文 学 号:班 级: 老 师: 成 绩: 2016年4月30号 实验五 图像滤波 1 实验目的 熟悉图像滤波,特别是图像的平缓和锐化的基本方法,理解典型卷积核的作 ...查看


热门内容