文档视界 最新最全的文档下载
当前位置:文档视界 › 中值滤波

中值滤波

中值滤波
中值滤波

机械与电子工程学院信号分析与处理

课程设计报告

题目:图像信号的中值滤波

题号:1-14

小组成员:赵鑫、陈超、尹庆宇

班级:15电科1班

字数:4040

完成日期:2018年6月29日

目录

1引言 (1)

1.1设计目的 (1)

1.2章节组织 (1)

2设计原理 (1)

2.1中值滤波的基本原理 (1)

2.2中值滤波的特点 (2)

2.2.1对某些输入信号中值滤波的不变性 (2)

2.2.2中值滤波去噪声性能 (2)

2.2.3中值滤波的频谱特性 (2)

3设计内容 (2)

3.1中值滤波算法分析 (2)

3.2中值滤波在图像处理中的MATLAB实现 (3)

4设计结果分析 (5)

4.1中值滤波与均值滤波的比较 (5)

4.2中值滤波与均值滤波的进一步讨论 (6)

4.2.1中值滤波输出方差 (6)

4.2.2均值滤波输出方差 (8)

4.3结果分析 (8)

5总结 (8)

6参考文献 (9)

1引言

1.1设计目的

1.熟悉MA TLAB的使用方法包括函数、原理和方法的应用。

2.增强在通信系统设计方面的动手能力与自学能力。

3.进一步熟悉图像中值滤波的原理和方法。

4.比较中值滤波同其它滤波的实现效果

1.2章节组织

报告共分六章。第一章为引言,主要介绍本课程的设计目的;第二章为设计原理,给出了图像的中值滤波的基本原理;第三章为设计内容,给出了中值滤波的算法实现;第四章为设计结果分析,比较中值滤波同其它滤波的实现效果;第五章为总结,对报告的要点进行了总结;第六章为参考文献,给出了报告的主要参考资料。

2设计原理

2.1中值滤波的基本原理

中值滤波是一种比较常见的非线性信号处理技术,它以排序理论为基础,能够有效地抑制噪声。这种领域运算和卷积类似,它主要是排序领域中的像素,接下来再选择排序后的数据组中的中间值作为最终输出的像素值。其基本原理为:首先针对以一个像素为中心点的具体领域进行研究,领域也被称为窗口,可以是方形,十字形,圆形或其他类似的形状,然后对领域中的每个像素值按照灰度值的大小进行排序,最后再将这组数的中值作为中心点像素灰度的真值进行输出。序列中值的具体定义如下:

若x1,x2,…,xn为一组序列,先把这组序列按大小排序为xi1≤xi2≤xi3…≤xin,则该序

列的中值y为

实现时一般取一长度为L=2n+1的滤波窗口,n为正整数。将窗口在数据上滑动,中值滤波输出就是窗口正中所对的像素值用窗口内各像素的中值代替,

即:

}

x

x

med{x

=

y n+i

i

n

-i

Λ从上述定义中可以看出,由于叠加原理已不再成立,故中值滤

波器是一种非线性滤波器,且中值滤波可以保持信号边缘,使其不被模糊,当窗口的宽度为2n+1时,信号序列中宽度不大于n的脉冲便会被中值滤波清除。

2.2中值滤波的特点

2.2.1对某些输入信号中值滤波的不变性

对某些特定的输入信号,如在窗口2n + 1 内单调增加或单调减少的序列,中值滤波输出信号仍保持输入信号不变,利用这个特点,可以使中值滤波既能去除图像中的噪声,又能保持图像中一些物体的边缘。

2.2.2中值滤波去噪声性能

中值滤波是非线性运算,因此对于随机性质的噪声输入,数学分析是相当复杂的。由大量实验可得,对于零均值正态分布的噪声输入,中值滤波输出与输入噪声的密度分布有关,输出噪声方差与输入噪声密度函数的平方成反比。

对随机噪声的抑制能力,中值滤波性能要比平均值滤波差些。但对于脉冲干扰来讲,特别是脉冲宽度小于m/2,相距较远的窄脉冲,中值滤波是很有效的。

2.2.3中值滤波的频谱特性

由于中值滤波是非线性运算,输入和输出之间在频率上不存在一一对应关系。故不能用一般线性滤波器频率特性的研究方法。为了能够直观地定性地看出中值滤波输入和输出频谱变化情况,我们采用总体试验观察方法。设G 为输入信号频谱,F 为输出信号频谱,定义:H = |G/F|实验表明,H 是与G 有关的,呈不规则波动不大的曲线。

因此,中值滤波频谱特性H 起伏不大,其均值比较平坦,可以认为信号经中值滤波后,频谱基本不变,这点认识对从事设计和使用中植滤波器的工作是很有意义的。

3设计内容

3.1中值滤波算法分析

中值滤波算法的核心是排序,排序算法的优劣直接决定求中值的效率,从而决定中值滤波器的整体性能。若中值滤波算法中排序模块使用软件思想中的冒泡排序算法,对滤波窗口中

的相邻像素作二值比较排序,则n×n滤波窗口的算法复杂度为n2×(n2-1)/2,算法复杂度为O(n4),常用的3×3滤波窗口需要排序次数36次,一张分辨率为256×256的图片,需要处理65536个像素,每个像素经过3×3滤波窗口都要进行36次排序,总共需要的排序次数为2359296次。针对冒泡排序算法排序数量大的缺点,文献[2]中在冒泡排序的基础上提出了一种改进的中值滤波算法,能大幅降低滤波窗口求中值的排序次数。以滤波窗口为例,分析说明这种改进的中值滤波算法求取中值的过程。对于3×3滤波窗口,假设滤波前的窗口数据为W,每列升序排序后的窗口为W',每行升序排序后的窗口为W''。滤波前的窗口W,对每列按升序排序,第一列的最大值w'11=Max1=Max{w11,w21,w31},第一列的中值为w'21=Med1=Med{w11,w21,w31},第一列的最小值为w'31=Min1=Min{w11,w21,w31};依此类推第二列的最大值为w'12=Max2=Max{w12,w22,w32};第二列中值为w'22=Med2=Med{w12,w22,w32};第二列最小值为w'32=Min2=Min{w12,w22,w32};第三列的最大值为w'13=Max3=Max{w13,w23,w33};第三列中值为w'23=Med3=Med{w13,w23,w33};第三列最小值为w'33=Min3=Min{w13,w23,w33}。同理,对W'的窗口元素每行按升序排序后得到W'',则最后的滤波结果result=Med{w''13,w''23,w''33}。每列排序需要3次,每行排序需要3次,3行3列排序次数为3×3×2=18次,最后求窗口对角线元素中值也需要3次排序,所以总共需要的排序次数为21次,与采用冒泡排序的中值滤波算法相比,改进的中值滤波算法排序次数降低了42%。

3.2中值滤波在图像处理中的MATLAB实现

源程序如下:

I=imread('D:\myimages\chost.jpg');%从D 盘名为myimages 的文件夹中读取。格式为jpg 的图像文件

chost

J=imnoise(I,'salt & pepper',0.02);%给图像加入均值为0,方差为0.02 的淑盐噪声

subplot(2,4,1);

imshow(I);

title('原始图像');

subplot(2,4,2);

imshow(J);

title('加入椒盐噪声之后的图像');

%h=ones(3,3)/9; %产生3 × 3 的全1 数组

%B=conv2(J,h); %卷积运算

%采用MATLAB 中的函数对噪声干扰的图像进行滤波

Q=wiener2(J,[3 3]); %对加噪图像进行二维自适应维纳滤波P=filter2(fspecial('average',3),J)/255; %均值滤波模板尺寸为3 K1=medfilt2(J,[3 3]); %进行3 × 3 模板的中值滤波

K2= medfilt2(J,[5 5]); %进行5 × 5 模板的中值滤波

K3= medfilt2(J,[7 7]); %进行7 × 7 模板的中值滤波

K4= medfilt2(J,[9 9]); %进行9 × 9 模板的中值滤波

%显示滤波后的图像及标题

subplot(2,4,3);

imshow(Q);

title('3 × 3 模板维纳滤波后的图像');

subplot(2,4,4);

imshow(P);

title('3 × 3 模板均值滤波后的图像');

subplot(2,4,5);

imshow(K1);

title('3 × 3 模板的中值滤波的图像');

subplot(2,4,6);

imshow(K2);

title('5 × 5 模板的中值滤波的图像');

subplot(2,4, 7);

imshow(K3);

title('7 × 7 模板的中值滤波的图像');

subplot(2,4,8);

imshow(K4);

title('9 × 9 模板的中值滤波的图像');

得到图像结果如图1 所示

图 1. 滤波效果对比图

4设计结果分析

4.1中值滤波与均值滤波的比较

均值滤波可归结为矩形窗加权的有限冲激响应线性滤波器, 它的幅度特性的“主瓣”对应频率范围为(-2π, 2π)的区域(其中N 为矩形窗的窗口长度, 也即滤波窗口内的象素数目),第一个“旁瓣”比主峰低13 分贝.因此, 均值滤波相当于低通滤波器, 截止频率与N 成反比〔4〕.但不管N 怎么选取, 均值滤波的这种低通性能在平滑噪声的同时, 必定也会模糊信号的细节和边缘.中值滤波正是在这方面有着优越性能.中值滤波的定义在很多文献里都可找到〔1 , 2〕.这里不加证明给出中值滤波的主要性能.

1)非线性滤波.由于叠加原理此时不再成立, 因此中值滤波是一种非线性滤波.

2)保边缘性.设输入信号的某个区域可分为两个连续的小区域, 每个小区域的灰度值各为一常数.两个小区域的分界点称为边缘.即边缘是那么一些点的集合, 它的任何邻域包含这两个小区域的象素.中值滤波在边缘点上的输出不变.

3)消除脉冲噪声.设在一常数邻域里有脉冲噪声, 脉冲噪声的面积定义为滤滤窗口内被噪声污染的象素的个数, 则当脉冲噪声的面积小于N/2 时, 中值滤波将消除这种脉冲型干

扰,输出值为窗口内原图像邻域的常数值.

4)当窗口内各象素值经过排序后成为一单调递增序列时, 中值滤波的输出值不会是这个序列的最小值和最大值.

5)均值滤波平滑高斯白噪声的能力优于中值滤波

6)根据次序统计量有关分布函数和分布密度的结论 , 设母体 X 的密度函数为fX(x),分布函数为 FX (x), 窗口内各象素的值从小到大排序为(X(1), X (2)… X(N))=Y 1 , Y 2 , …Y N), 则中值 Y 的密度函数为

[][])()(1)()!21(!

)(21

21

2y f y F y F N N y f X N X N X Y ---??

?

???-=

(4) 4.2中值滤波与均值滤波的进一步讨论

4.2.1中值滤波输出方差

根据式(3), 对于上述的噪声模型, 样本母体 X 的概率密度函数为

)(π22

2x exp 2)()1()(σσδ-+-=Pe x Pe x f X

(5) 则由式(4), N 点中值输出Y 的概率密度函数为

[])(y 1)()!21

(!

)(21

2y f F y F N N y f X N X X Y --??

????-=)((

(6) 其中 ?∞y

-X )(=(y)F dx x f X

输出方差 ?∞

∞-=dy y f y Y )(2med 2σ

(7) 4.2.2 均值滤波输出方差

由于窗口内样本独立, 则噪声的 N 维概率密度函数为

∏=??

?

???-+

-=???N

i i e i e N N x P x P x x x f 122

2exp 2)()1(),2,1()(πσσδ

(8)

令?????????==+???+=N

N N x y x y N x x x y 22211 即

???????==-???--=N

N N y x y x y y Ny x 22211 则随机变量 Y 1 , Y 2 , …Y N 的联合分布密度变函数为 ),,,(),,,(2121N N N N x x x f J y y y f =

其中 |J| 为雅可比行列式, N y y y x x x J N =??=

)

,,,(,,,(21N 21 ) 所以

∏=??????-+-=???N i i e i e N N x P x P N y y y f 1222exp 2)()1(),2,1()(πσσδ =????????+--------2

21221e e 21σσδ)(π)()(N y y Ny e N P y y Ny P N [])(π)()(22

i

2

i e i e 2y exp 21σσδ-+-∏=N P y P Y 1 的概率密度函数 ??∞∞-∞

∞-=),,,()(21211N N N Y y y y f dy dy y f 并由此可推导出

∑=---+-=N k k y N k

N e k e k N N e Y e k N P P C y P y f 1

2112222)1()()1()(σσδπ (9) ?∞∞-==N

P dy y f y e Y )(1mean 22σ\ (10) 取б=1 , N =5 , 当输入噪声为前述的噪声模型时, 根据式(7),(8), (9), 利用数值积分, 得到输出方差与Pe 的关系曲线如图1.可以看出, 均值滤波输出方差随着 Pe 的增大而线性增长.当 Pe =1 即输入为高斯分布的白噪声时, 均值滤波输出方差为0 .2(即1/ N).中值滤波输出方差在 Pe 较小时增长很慢, 去噪声能力优于均值滤波.当 Pe >0 .5 以后, 方差增长速度加快.至Pe =0 .79 时, 两条曲线相交, 两者的去噪能力相当.当 Pe >0 .79 以后, 中值滤波输出方差大于均值滤波输出方差, 即均值滤波去噪能力优于中值滤波.

4.3结果分析

以LENNA 图像为例, 噪声 n 为均值为0 方差为672 的高斯分布的白噪声.当 Pe =0 .1 , 0 .2 , 0 .4 , 0 .6 , 0 .8 , 1 .0 时中值滤波与均值滤波的输出图像信噪比示于附表(斜线后的值为信噪比改善).部分输入和输出图像见图

2.

(a) LEN NA 原图像 (b) 噪声图像Pe =0.2 (c) 噪声图像Pe =0.8 (c) 噪声图像Pe =1.0 (e) (b)的中值滤波输出

(f) (b)的均值滤波输出 (g) (c)的中值滤波输出 (h)(c)均值滤波输出 (i)(d)中值滤波输出 (j) (d)的均值滤波输出

图 2 部分实验图像

从表中可以看出, 当 Pe 值较小时, 中值滤波输出信噪比明显高于均值滤波输出;当 Pe 逐渐增大时, 噪声图像信噪比下降, 两者输出图像信噪比的改善值也逐渐增大, 但均值滤波输出信噪比的改善值增长幅度大.当 Pe =0 .8 时, 均值滤波输出信噪比略大于中值滤波输出信噪比, 平滑噪声的能力接近.而当 Pe =1 即噪声污染是高斯分布的白噪声时, 均值滤波输出信噪比明显高于中值滤波输出信噪比.实验结果与前面的理论分析结果是吻合的 5总结

本文在对经典中值滤波原理研究的基础上,利用MATLAB 软件进行仿真实践,并将中值滤波与均值滤波进行实验对比,更确切的了解到了中值滤波在图像降噪应用上的优缺点。

6参考文献

[1]章毓晋图像处理和分析技术(第3版)[M]高等教育出版社,2014.

[2]高浩军.杜宇人中值虎,皮在图像处理中的应用Ul电子工程师,2004,30(8):35.18-28

[3]孙宏琦,施维颖,巨永锋利用中值滤波进行图像处理[J], 长安大学学报(自然科学版),2003, 3 (3) : 104-106.

[4]朱虹.数字图像处理基础[M], 北京:科学出版社,2006, 68-75

[5]马学磊,商泽利.基于噪声检测的中值滤波方法[J], 现代电子技术. 2008, 1 : 11-13.

中值滤波原理及MATLAB实现.

中值滤波原理及MATLAB实现 摘要:图像是一种重要的信息源,通过图像处理可以帮助人们了解信息的内涵。本文将纯净的图像加入椒盐噪声,然后采用中值滤波的方法对其进行去噪。中值滤波是一种常用的非线性信号处理技术,在图像处理中,它对滤除脉冲干扰噪声最为有效。文章阐述了中值滤波的原理、算法以及在图像处理中的应用。MATLAB是一种高效的工程计算语言,在数据处理、图像处理、神经网络、小波分析等方面都有广泛的应用。 关键词:图像,中值滤波,去噪,MATLAB 1. 引言 20世纪20年代,图像处理首次得到应用。上个世纪60年代中期,随着计算机科学的发展和计算机的普及,图像处理得到广泛的应用。60年代末期,图像处理技术不断完善,逐渐成为一个新兴的学科。图像处理中输入的是质量低的图像,输出的是改善质量后的图像。 为了改善图像质量,从图像中提取有效信息,必须对图像进行去噪预处理。根据噪声频谱分布的规律和统计特征以及图像的特点,出现了多种多样的去噪方法。经典的去噪方法有:空域合成法,频域合成法和最优合成法等,与之适应的出现了许多应用方法,如均值滤波器,中值滤波器,低通滤波器,维纳滤波器,最小失真法等。这些方法的广泛应用,促进数字信号处理的极大发展,显著提高了图像质量。 2. 中值滤波 在图像滤波中,常用的方法是线性滤波技术和非线性滤波技术,线性滤波以其完美的理论基础,数学处理简单、易于采用和硬件实现等优点,一直在图像滤波领域中占有重要的地位。线性滤波对加性高斯噪声有较好的平滑作用,但对脉冲信号和其它形式的高频分量抑制效果较差,且模糊信号边缘。非线性滤波是基于对输入信号序列的一种非线性投影关系,常把某一特定的噪声近似为零而保留信号的重要特征,一定程度上克服线性滤波器的不足,非线性滤波早期运用较多的是中值滤波器,其应用于多维信号处理时,对窄脉冲信号具有良好的抑制能力,但

快速中值滤波算法

南昌大学实验报告 学生姓名:洪僡婕学号:6100411159 专业班级:数媒111班 实验类型:■验证□综合□设计□创新实验日期: 4.29 实验成绩:一、实验项目名称 数字图像处理 二、实验目的 实现快速中值滤波算法 三、实验内容 用VC++实现中值滤波的快速算法 四、主要仪器设备及耗材 PC机一台 五、实验步骤 // ImageProcessingDoc.cpp : implementation of the CImageProcessingDoc class// #include "stdafx.h" #include "ImageProcessing.h" #include "ImageProcessingDoc.h" #include "GreyRatio.h" #include #define PI (acos(0.0) * 2) #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CImageProcessingDoc IMPLEMENT_DYNCREATE(CImageProcessingDoc, CDocument) BEGIN_MESSAGE_MAP(CImageProcessingDoc, CDocument) //{{AFX_MSG_MAP(CImageProcessingDoc) ON_COMMAND(ID_HISTOGRAM_ADJUSTIFCATION, OnHistogramAdjustifcation) ON_COMMAND(ID_FFT, OnFft) ON_COMMAND(ID_SALT_PEPPER_NOICE, OnSaltPepperNoice) ON_COMMAND(ID_RANDOM_NOISE, OnRandomNoise) ON_COMMAND(ID_MEDIAN_FILTERING, OnMedianFiltering) ON_COMMAND(ID_DCT, OnDct) ON_COMMAND(ID_FWT, OnFwt)

中值滤波与均值滤波

四川大学电气信息学院微机原理与接口技术 实验报告 实验名称:中值滤波与均值滤波 实验地点:二基楼A514 年级:2014级 姓名:宋雅婕 学号:2014141443030 实验时间:2016年5月27日

一、 实验内容 1. 在数据段设变量数组TADA1和TADA2,并存入假设的两组采样值作为某 一采样周期的采样值。 ⒉ 设计中值滤波程序求出测量值。 ⒊ 设计均值滤波程序求出测量值。 ⒋ 每个程序应能将结果显示在屏幕上。 ⒌ 在计算机上调试程序,并获得正确结果。 二、 程序框图 1. 均值滤波: 开始

结束2.中值滤波: 开始 结束

三、程序清单 1、中值滤波: DATAS SEGMENT TADA1 DB 65,72,33,84,43 N EQU $-TADA1 DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX ;给DS段赋值 MOV CX,N-1 ;设置N-1轮比较次数 MOV DX,1 ;设置比较的轮次AG: CALL MP ;调用子程序 INC DX LOOP AG MOV SI,0 XOR AX,AX ;将AX清零

MOV AL,TADA1[SI+(N-1)/2] ;取出中值 MOV BL,10 DIV BL PUSH AX ADD AL,30H MOV DL,AL MOV AH,2 INT 21H ;输出十进制数的高位 POP AX ADD AH,30H MOV DL,AH MOV AH,2 INT 21H ;输出十进制数的低位 MOV AH,4CH INT 21H MP PROC ;冒泡法(从小到大排列)PUSH CX MOV CX,N SUB CX,DX MOV SI,0 RECMP: MOV AL,TADA1[SI]

中值滤波算法

中值滤波算法 本文提出一种中值滤波算法,该算法充分地利用相邻两次中值滤波窗口内数据的相关性。中值滤波算法在运算过程中通过对有序序列快速的对半查找和内插操作,重构有序序列,占L面得到各中值算法很大地提高了运算效率-计算机模拟寝明该方法是有效的。 在数字信号处理中,经常会遇到对信号数据作平滑处理。局部平均滤波是常用的一种算法,若是对具有随机脉冲噪声的信号进行处理,虽然脉冲噪声有所衰减,但它对滤波结果仍有显著的影响。中值滤波却是对窗内数据进行大小的排序,取结果的中间项对应的值,这样脉冲噪声就不起作用,不影响中值结果 所以,中值滤波在有随机脉冲噪声的情况下,能较好地保护原始信号。 中值滤波的主要运算就是对窗口内的信号数据序列进行排序。文[4]提出的二维中值滤波快速算法,只适用于幅度量化级为极其有限的数据(如:数字图象处理中的象素幅度,若是用单字节(8位二进制存贮单元)存放,共有28=256个灰度级),原因是要给每个量化级设置一个作为计数器的存贮单元。文[5—8]的方法也是针对于幅度量化级为有限的数据。若是数据为任意大小或精度的浮点数,则以上的方法不适用,通常采用每次对窗内数据排序并 输出相应的中值。假设原始信号数据序列的长度为 ,表示为{ (O),x(1),?,x(M-1)},窗口长度为2^r+1,表示为{ (O), (1),?, (2Ⅳ)},共需要 一2N次对长度为2N+l的窗内数据序列分别进行排序。要进行排序,就必须对序列中数据元索做比较和交换.数据元素问的比较次数是影响排序速度的一个重要因素。一般认为,对 个元素进行排序时,所需的比较次数在理论上的最小值为 0(n|og。n) 当原始信号数据序列较长或窗口较大时,用 这种传统中值滤波方法是十分费时的。文[9]提出把相邻两次的中值滤波合并为一次进行,只做一次排序。从而,总的排序次数减少一半,运算时间节省约一半本文提出一种中值滤波的快速算法,避免了反复对无序序列排序,而只对有序序列进行数据元素的快速查找和内插,实现中值滤波. 中值滤波的快速算法 本文提出的中值滤波的快速算法的基本思想是:原始数据序列上中值滤波的滑窗在移动过程中,当前窗只要删除其最早的元素,加入窗后的新元素,即成为下一窗的内容。下一窗的中值滤波实现可利用上次中值滤波的排序结果,新元素的插人位置用有序序列快速查找算法求得,新元素插人与最早的元素删除的实现采用独特的数据结构,将是新元素覆盖最早的元素,即是插人兼并了删除。 设置(2N+1)个连续存贮单元(存放浮点数){ (。)t (1),?, (2Ⅳ)}组成的循环序列用来存放窗内的数据元素 按照先进先出的原则,后来的数据元素总是替换当前最早存放的数据元素。设置(2/'/+1)个连续存贮单元(存放整数){ (。), (1),? ,s(2N)}顺序存放的是,若上述窗内元素从小至大排序后,顺序的元素在Ⅳ 序列中的下标值,即满足 ( (。))≤w(s(1))≤ ?≤ w( (2Ⅳ))。设置(2Ⅳ+1)个连续存贮单元(存放整数){a(0),n(1),?,a(ZN)}分别存放s序列中存有其下标的存贮单元的下标值,即满足 (。(f)), =O,1,?2N。可以这样认为,把Ⅳ 序列和n序列中具有同一下标的两个存贮单元当作独立结构单元,s序列中一存贮单元指向上述某一结构单元,这个结构单元中的。存贮单元值表示了这个结构单元指向该s存贮单元。下面实现中值滤波的快速算法。首先,令Ⅳ 序列中的存贮单元值全为零,s序列和n序列中的存贮单元分别存放各自的下标值,即 (f)=0, (f)=f,n(f)=f,f=O,1 。,2N。另外,设置下标 =0. 第一步,求当前准备进入窗的数据元素x(ra)在s序列中的内插位置,用对半查找算法实现脚,如图1所示。在图1中,有序序列对半查找的区问下界为工,上界为h,中部为 ,通过比较 (s(1))与待查量 (m),若不相等,则调整L或h,使下次查找的区问比前次的减少一半。输出的 反映

中值滤波器

帽泡排序法的汇编实现。。 mov cx,count ;CX←数组元素个数 dec cx ;元素个数减1为外循环次数 outlp: mov dx,cx ;DX←内循环次数 mov bx,offset array inlp: mov al,[bx] ; 取前一个元素 cmp al,[bx+1] ;与后一个元素比较 jna next xchg al,[bx+1] ;否则,进行交换 mov [bx],al next: inc bx ;下一对元素 dec dx jnz inlp ;内循环尾 loop outlp ;外循环尾 2、中值滤波 中值滤汉是对某一参数连续输入N次(一般N取奇数),从中选择一个中间值作为本次采样值,若变量变化比较缓慢,采用此方法效果比较好,但对快速变化过程的参数,如流量、自然伽玛等,则不宜采用。 中值滤波的C程序函数如下: float middle_filter(float middle_value [] , intcount) { float sample_value, data; int i, j; for (i=1; i for(j=count-1; j>=i,--j){ if(middle_value[j-1]=middle_value[j]{ data=middle_value[j-1]; middle_value[j-1]=middle_value[j] middle_value[j]=data; } } sample_value=middle_value(count-1)/2]; return(sample_value); } 函数假设对某一参数连续采样3次,若多次采样,可对该函数稍作修改即可。3次采样值存储在数组middle_value[3],其中Sample-value表示有效采样值,count表示连续采样次数。

快速中值滤波及c语言实现

快速中值滤波及c语言实现 学生姓名:刘勇学号:6100410218 专业班级:数媒101 【摘要】本文讨论了用c语言在微机上实现中值滤波及快速算法,在程序设计的过程中充分考虑到程序运行的时间复杂度和空间复杂度的问题.解决了由于图像太大而内存不够的问题,运用对程序运行时的方法,得出在PENTIUM-S100MHz 上中值滤渡的一般算法运行4.23秒.而快速算法运行2 58秒。 【关键词】c语言;中值滤波;快速算法 1 引言 中值滤波是涂基发明的一种非线性信号处理技术,对抑制图像的噪声非常有效,在二维形式下,中值滤渡器是一个古有奇数个像素的滑动窗口,窗口正中的象素的灰度值用窗口内各个象素的中值代替窗口的中值为窗口中象素按大小顺序排列后处于中间位置的象素;本文讨论中值滤的一般算法并比较其运算速度。 2 用C语言实现算法的若干问题 在设计算法编制程序的时候,我们充分考虑到程序运行的时间复杂度和空间复杂度问题,在解决问 题的前提下,使算法尽量简单,使程序运行占有的空间尽量的小,这样来减少不必要的时问浪费和空间浪费,从而太大的提高程序执行的效率。 首先考虑到的内存问题。由于在本文算法中用的图像是512+512 8bit,这就存在一个内存不够大一整幅图像不能一次性调入的问题。为了解受此问题,可以只开辟一个3"512的缓冲区n,将原图像采用分批调入缓冲区,使内存不够的问题得到了圆满的解决。 另外为了对中值滤波的快速算法和普通算法进行精确的比较,采用对程序运行计时的方法,并精确计算每个算法运行的时间,使得出的结论更可靠。 3 中值滤波算法的C语言程序实现 本算法采用对开辟的3*512的缓冲区从左到右依次形成一个3*3的窗口.然后将此3*3的窗口放 人一个一维数组中,调用求中值子函数.通过排序得出中值,当此中值不等于窗口中间位置的象素时.用此中值来代替窗VI中间位置的象素灰度值.若此缓冲区处理完毕后,将缓冲区的第一行存入新建的文件中,将第二、第三行分别向上移动一行,若存人新建的文件中的行数小于或等于511(即这样处理的行 数小于或等于511),则从原文件中调入一行作为缓冲区第三行,按上述方法进行直到处理的总行数等于511为止,最后,将缓冲区的第二、三行存人新建的文件,程序流程框图如图1 4 中值滤波快速算法的C语言程序实现 本算法充分利用了上一次处理的结果.采用迭代,逐次逼近的方法得到本次的中值,在一行处理完毕后转人下一行也采用走S型的方法.这样除第一个窗口采用了一伏排序得到中值外,其它的窗口都利 用上伏的窗口的象素删除无用的3个象素后再加人新的3个象素,利用迭代的方

数据处理中的几种常用数字滤波算法

数据处理中的几种常用数字滤波算法 王庆河王庆山 (济钢集团计量管理处,济南250101) (济钢集团中厚板厂,济南250101) 摘要随着数字化技术的发展,数字滤波技术成为数字化仪表和计算机在数据采集中的关键性技术,本文对常用的几种数字滤波算法的原理进行描述,并给出必要的数学模型。 关键词:数据采样噪声滤波移动滤波 一、引言 在仪表自动化工作中,经常需要对大量的数据进行处理,这些数据往往是一个时间序列或空间序列,这时常会用到数字滤波技术对数据进行预处理。数字滤波是指利用数学的方法对原始数据进行处理,去掉原始数据中掺杂的噪声数据,获得最具有代表性的数据集合。 数据采样是一种通过间接方法取得事物状态的技术如将事物的温度、压力、流量等属性通过一定的转换技术将其转换为电信号,然后再将电信号转换为数字化的数据。在多次转换中由于转换技术客观原因或主观原因造成采样数据中掺杂少量的噪声数据,影响了最终数据的准确性。 为了防止噪声对数据结果的影响,除了采用更加科学的采样技术外,我们还要采用一些必要的技术手段对原始数据进行整理、统计,数字滤波技术是最基本的处理方法,它可以剔除数据中的噪声,提高数据的代表性。 二、几种常用的数据处理方法 在实际应用中我们所用的数据滤波方法很多,在计算机应用高度普及的今天更有许多新的方法出现,如逻辑判断滤波、中值滤波、均值滤波、加权平均 2中值滤波 中值滤波是对采样序列按大小排滤波、众数滤波、一阶滞后滤波、移动滤波、复合滤波 等。 假设我们采用前端仪表采集了一组采样周期为1s的温度数据的时间序列 T0为第0s 采集的温度值,Ti为第is采集的温度值。下面介绍如何应用几种不同滤波算法来计算结果温度T。 1.程序判断滤波 当采样信号由于随机干扰、误检测或变送器不稳定引起严重失真时,可采用程序判断滤波算法,该算法的基本原理是根据生产经验,确定出相邻采样输入信号可能的最大偏差△T,若超过此偏差值,则表明该输入信号是干扰信号,应该去掉,若小于偏差值则作为此次采样值。 (1)限幅滤波 限幅滤波是把两次相邻的采集值进行相减,取其差值的绝对值△T作为比较依据,如果小于或等于△T,则取此次采样值,如果大于△T,则取前次采样值,如式(1)所示:

快速中值滤波算法

快速中值滤波算法

————————————————————————————————作者: ————————————————————————————————日期:

南昌大学实验报告 学生姓名:洪僡婕学号: 6100411159专业班级: 数媒111班 实验类型:■验证□综合□设计□创新实验日期:4.29 实验成绩:一、实验项目名称 数字图像处理 二、实验目的 实现快速中值滤波算法 三、实验内容 用VC++实现中值滤波的快速算法 四、主要仪器设备及耗材 PC机一台 五、实验步骤 // ImageProcessingDoc.cpp: implementation of the CImageProcessingDoc class// #include "stdafx.h" #include "ImageProcessing.h" #include "ImageProcessingDoc.h" #include "GreyRatio.h" #include #define PI (acos(0.0)* 2) #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_ char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CImageProcessingDoc IMPLEMENT_DYNCREATE(CImageProcessingDoc, CDocument) BEGIN_MESSAGE_MAP(CImageProcessingDoc, CDocument) ?//{{AFX_MSG_MAP(CImageProcessingDoc) ?ON_COMMAND(ID_HISTOGRAM_ADJUSTIFCATION, OnHistogramAdjustifcation) ?ON_COMMAND(ID_FFT, OnFft) ON_COMMAND(ID_SALT_PEPPER_NOICE,OnSaltPepperNoice) ON_COMMAND(ID_RANDOM_NOISE,OnRandomNoise)

改进的自适应中值滤波

2010,46(3) 1引言 图像在生成、传输过程中,容易产生脉冲噪声[1]。产生脉冲 噪声的原因多种多样,其中包括传感器的局限性以及通信系统 的故障和缺陷,噪声也可能在通信系统的电气开关和继电器改 变状态时产生。脉冲噪声对模拟数据仅是小麻烦,但在数字式 数据通信中,脉冲噪声是出错的主要原因。脉冲噪声又称为“椒 盐”噪声,消除的方法分为线性滤波和非线性滤波。线性滤波[2] 由于具有低通特性,不容易保存图像的细节和边缘,故非线性 滤波[3]在消除脉冲噪声方面具有更广泛的应用。非线性滤波的 典型代表是中值滤波。自Tukey在20世纪70年代提出中值滤 波[4]以来,中值滤波技术被广泛应用于消除图像中的脉冲噪声。 在中值滤波中又以自适应中值滤波[5-7]在去除噪声和保存 细节两方面效果最好,但随着脉冲噪声密度的增大,上述滤波 器的性能随之下降。文章结合均值滤波和自适应中值滤波两者 的优点,提出了结合均值滤波的自适应中值滤波算法。 2自适应中值滤波 脉冲噪声的概率密度函数可由下式给出[1]: p(z)= P a,z=a P b,z=b 0,其 他 (1) 通常假设a和b是饱和值,即对于一个8位图像,a=0(黑),b=255(白)。若P a或P b为0,则脉冲噪声称为单极脉冲。如果P a和P b均不为0,尤其是他们近似相等时,则脉冲噪声类似于随机分布在图像上的胡椒和盐粉微粒,“椒盐”噪声因此得名。 对于中值滤波器,只要脉冲噪声的空间密度不大,性能就会很好(根据经验,P a、P b小于0.2)。自适应中值滤波器可以处理具有更大概率的脉冲噪声。自适应中值滤波器在进行滤波处理时依赖一定条件而改变S xy的大小[1]。滤波器的输出是一个单值,该值用于代替点(x,y)处的像素值,点(x,y)是在给定时间窗口S xy被中心化后的一个特殊点。 采用如下符号:z min为S xy中灰度级的最小值;z max为S xy中灰度级的最大值;z med为S xy中灰度级的中值;z xy为在坐标(x,y)上的灰度级;S max为S xy允许的最大尺寸。 自适应中值滤波器算法工作在两个层次,定义为A层和B层。 A层:A1=z med-z min,A2=z med-z max 如果A1>0且A2<0,则转到B层,否则增大窗口尺寸≤S max。如果窗口尺寸,则重复A层,否则输出z med。 B层:B1=z xy-z min,B2=z xy-z max 如果B1>0且B2<0,则输出z xy,否则输出z med。 这个算法主要有三个目的:去除脉冲噪声;平滑其他非脉冲噪声;减少诸如物体边界细化或粗化等失真。 改进的自适应中值滤波 王晓凯,李锋 WANG Xiao-kai,LI Feng 复旦大学电子工程系,上海200433 Department of Electronic Engineering,Fudan University,Shanghai200433,China E-mail:072021031@https://www.docsj.com/doc/0111098596.html, WANG Xiao-kai,LI Feng.Improved adaptive median https://www.docsj.com/doc/0111098596.html,puter Engineering and Applications,2010,46(3):175-176. Abstract:Mean filters can smooth the image noise while adaptive median filters can preserve the details and edge information of the original image.In order to restore the image with high-density impulse noise,this paper combines the merits of mean filters and adaptive median filters,and proposes a new algorithm for the improved adaptive median filters.The experimental results show that the algorithm can eliminate high-density impulse noise in the image and preserve the details and edge information of the original image effectively. Key words:impulse noise;mean filtering;median filtering;adaptive windows 摘要:均值滤波能较好的平滑图像的噪声,自适应中值滤波能较好的保存原始图像的细节和边缘。为了恢复被高密度脉冲噪声污染的图像,提出了改进的自适应中值滤波算法,新算法结合了均值滤波和自适应中值滤波两者的优点。实验结果表明,该算法能够有效地消除被污染图像中的高密度脉冲噪声,并较好地保留原始图像细节和边缘。 关键词:脉冲噪声;均值滤波;中值滤波;自适应窗口 DOI:10.3778/j.issn.1002-8331.2010.03.053文章编号:1002-8331(2010)03-0175-02文献标识码:A中图分类号:TN911 作者简介:王晓凯(1984-),男,硕士,主要研究方向为电路理论、信号处理、滤波器设计等;李锋(1946-),通讯作者,男,教授,博士生导师,主要研究方向为电路理论、信号处理、故障诊断等。 收稿日期:2008-08-10修回日期:2008-11-03 Computer Engineering and Applications计算机工程与应用175

相关文档