一种快速中值滤波变换在视频图像分析中的应用__墨水学术,论文发(2)
分类:推荐论文 时间:关注:(1)
; 5维模版
如表1数据所示,5维模版在时间复杂度中明显优于9维模版,可节省3倍以上运算时间,更符合实际项目对实时性的需要。
1.2.2模版结构
在确定5维模版的情况下,本算法比较了图1,图2两种模版结构,考虑到实际项目中主要的干扰来自于垂线方向,而图2所示的模版结构能够更好的消除此类干扰,所以选用图2所示的模版结构。
1.2.3算法设计
在模版维数和模版结构确定后,唯一要解决的就是模版滤波窗口的中值,这也正是中值滤波算法的关键所在,传统中值滤波算法之所以时间复杂度高,很大程度上是因为对模版滤波窗口的像素点的灰度值进行了排序操作,通过冒泡算法得到中间值。本算法就是在不使用排序算法的前提下,快速的找到模版滤波窗口的中间值。算法思路如下:
1) 定义4个数组,分别为er[2],sn[3],si[4],
wu[5];数组wu[5]用来存放模版滤波窗口的5个像素点的灰度值;er[2],sn[3],
si[4],作为中间过渡数组。
2) 比较wu[0],wu[1]大小,并将比较结构存放到er[2]数组中,即较小的灰度值放入er[0]中,较大的灰度值放入er[0]中。
3) 将wu[5]数组中第3个元素,即wu[2]分别与er[0] ,er[1]进行比较,并将比较结果从小到大分别存入sn[3]中。
4) 将wu[5]数组中第4个元素,即wu[3]与sn[1]进行比较,若wu[3]小于sn[1],再将wu[3] 与sn[0]进行比较,并将比较结果从小到大分别存入si[4]中。若wu[3]大于sn[1],则将wu[3] 与sn[2]进行比较,并将比较结果从小到大分别存入si[4]中。
5) 将wu[5]数组中第5个元素,即wu[4]与si[1]进行比较,若wu[4]小于si[1],则si[1]即为所求的中值,若wu[4]大于si[1],继续用wu[4]与si[2]比较,若wu[4]大于si[2],则si[2]即为所求的中值,若wu[4]小于si[2],则wu[4]即为所求的中值。
6) 返回所求的中值。
2实验结果
在Visual C++开发平台下,分别对传统中值滤波算法与快速的中值滤波算法进行了运行时间测试,随机设定10组5维有限序列,进行中值滤波计算,数据如表2所示。
表2原始测试数据
第一组 69 25 31 46 6
第二组 12 18 56 37 65
第三组 22 35 54 27 8
第四组 5 56 72 75 6
第五组 33 35 39 51 75
第六组 65 87 5 42 69
第七组 24 52 62 71 99
第八组 10 25 36 42 24
第九组