【摘 要 】传统中值滤波算法时间复杂度比较高,实际使用中运算时间比较长,在实时数据处理时很难满足要求,这里提出了一种快速中值滤波算法,该算法有效地提高了中值滤波的执行效率,很大程度上降低了传统中值滤波算法的时间复杂程度,可以满足大图像、大数据实时处理的需求,具有很强的实际应用价值.
【关 键 词 】中值滤波,快速算法,实时处理
在现代工业生产中,为了保证产品质量,都会在生产加工的不同环节进行实时监控,以消除或降低产品的次品率.在监控过程中,对产品的图像信息进行分析处理是其中的重要环节和手段,因此,采用合适的算法,对图像信息快速处理和分析,就成为能够完成实时监控的重要难题.中值滤波算法是一种经常使用的图像滤波算法.
一、传统中值滤波算法
中值滤波是一种较为常用的滤波方法,它属于低通滤波,目的是保护图像边缘的同时去除噪声.所谓中值滤波,是指把以某点[i,j]为中心的小窗口内的所有象素的灰度按从大到小的顺序排列,将中间值作为[i,j]处的灰度值(若窗口中有偶数个象素,则取两个中间值的平均).其基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值.中值滤波器是基于排序统计理论的一种能有效抑止噪声的非线性信号处理技术.
中值滤波器在处理连续图像窗函数时与线性滤波器的工作方式类似,但滤波过程却不再是加权运算.例如,取3×3函数窗,计算以点[i,j]为中心的函数窗像素中值步骤如下:
(1)将模板在图像中漫游,并将模板中心与图像中某个像素的位置重合,
(2)读取模板下各对应像素的灰度值,
(3)将这些灰度值从小到大排列成一列,
(4)找出排在中间的一个值,
(5)将这个中间值赋给对应模板中心位置的像素.
需要说明的是中值滤波一般采用奇数点的邻域来计算中值,但如果像素点数为偶数时,中值就取排序像素中间两点的平均值.
中值滤波的原理:中值滤波的基本原理就利用某个像素点周围相邻的几个像素点的灰度值中的中间值来替换此点的灰度值.检测设窗口有五点,其值150、130、120、110和100,那么这个窗口内的中间值即为120.我们将相邻像素点构成的这个邻域叫做窗口,中值滤波器就是一个含有奇数个像素值的二维滑动窗口,其形状可以取十字形或圆形.
检测设有一图像中心值组成的排列g1,g2,等, gn,取k为的框形(k为奇数)的长度,用它给图像做中值滤波,然后从图像序列中抽取出K个数gi-m,等gi-1,gi,等,gi+m(gi为框形中心值,m等于(k-1)/2),然后对k个数值进行顺序排列,获取的中心的数值.
数学表达式为:
yi等于Ged{gi-m,等,gi,等,gi+m}
此公式也称标准一维滤波器的定义公式,式中Med 表示取中值.由这些可看出所谓的中值滤波就是通过对滑动滤波窗口内的像素值进行排序,然后将序列的中间值取出作为滤波的输出值.例如滑动窗口取5*5时,窗口内第13个最大的像素值即为此窗口的中值,二维中值滤波器的表达式为:
式中:A为窗口,{gij}为二维数据序列.对二维滤波器来说,选取的窗口的尺寸和形状不同,则滤波效果也会有很大的区别,通常会根据实际需求来进行选择.经常用的形状有方形、十字形、圆形、线形和圆环形等.选取窗口尺寸大小时一般遵循由小到大,逐步逼近,先选3×3尺寸,再取5×5尺寸,直到选取的尺寸可使得滤波效果满意为止.按一般经验来说,常采用圆形或方形来对具有变化缓慢的较长轮廓线物体的图像进行滤波.通常用十字形窗口对包含有尖顶物体的图像进行滤波,且一般以不超过图像中的最小有效物体的尺寸为窗口的大小.
有关论文范文主题研究: | 中值相关论文范文 | 大学生适用: | 专科毕业论文、高校大学论文 |
---|---|---|---|
相关参考文献下载数量: | 64 | 写作解决问题: | 写作参考 |
毕业论文开题报告: | 论文提纲、论文设计 | 职称论文适用: | 技师论文、职称评中级 |
所属大学生专业类别: | 写作参考 | 论文题目推荐度: | 优质选题 |
二、快速并行中值滤波算法
传统的中值滤波的排序方法是基于冒泡法的排序法,设一个窗口内有M个像素,则需要做M*(M-2)/2排序,时间复杂度为O(M2).此外,窗口每移动一次就要重新排一次序,包含了大量的重复比较的计算.检测如图像大小为N*N,那么就需要O(M2N2)的时间来完成操作,当窗口越大时耗时就越多.为提高中值滤波速度,针对3*3中值滤波窗口,这里介绍一种快速中值滤波的方法,大量减少了重复比较的运算,每一窗口仅需要O(M)的排序时间,整个计算需要O(MN2)时间,其大大缩短了滤波时间,更适用于实时处理中.
快速并行运算的过程:将选取的3*3窗口内的各个像素分别使用A1,A2,A3,A4,A5,A6,A7,A8表示,应先对窗口按列进行排序,并经过比较挑出每列中的最大、中间和最小值,由于是3*3窗口,那么就一共得到3组数据.我们将其归结为最大值组、中间值组、及最小值组.表示如下:
最小值组:
中间值组:
最大值组:
我们用Max、Med、Min分别表示最大值组、中值组和最小值组,由以上可得出:最小值组Min中的最小值就是9个像素的最小值,最大值组Max中的最大值就是为9个像素的最大值.此外,中值组Med中的最大值至少大于Med中的最小值、Min中的中值和Max中的最小值这5个像素的值,中值组Med中的最小值至少小于Med中的最大值Max中的中值和Min中的最大值共5个像素值,同理,最大值组Max中的中值最少大于5个像素值,最小值组Min中的中值最少小于5个像素值,设Max中的最小值为Maxmin,Med中的中值为Medmed,Min中的最大值为Min max,那么经过去波后的输出像素值Winmed就是Maxmin、Medmed、Min max中的中值.整个方法的计算步骤是:
1.
2.
3.
4.
如此我们一共进行了17次对比运算,比较次数比传统算法减少了将近两倍,该算法十分适用于在实时处理器,其实现的速度相对较快.可见并行中值滤波算法具有更低的时间复杂度和更高的执行效率,对于大型图像、医学3维数据场以及图像序列的快速中值滤波具有显著的实际应用价值.