一种新的加权中值滤波的快速算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 1 1 1 1
0 0 1 0 0
0 1 0 1 1 1 0 1 0 1
0 0 1 0 0
0 0 1 0 0
1 1 1 1 1
1 1 1 1 1
1 1 5 1 1
1 1 1 1 1
1 1 1 1 1
int GetMedianLocalSort(BYTE *array,int length,int index,int type) { int Median=0; if(type==1) { for(int i=0;i<index;i++){ for(int j=i+1;j<length;j++){ if(array[i]>array[j]) { Median=array[i]; array[i]=array[j]; array[j]=Median; } } } return array[index-1]; } 表1 实 验 结 果 1
开始 Y Left=Right Left=Right=Center=0; 定义 LEFT[] ,RIGHT[] 和 Xc N Y |Left-Right|<Center 取 Xi N N Xi<Xc Y Left=Left+Wi 赋值 LEFT[] Xi>Xc N Left<Right? Y 中值为 Xc
∑
i=1百度文库
Wi
—89—
窗为Wi={W1,W2,□Wn}。对中心像素Xc进行比较,将窗 口内的像素分为小于、等于和大于Xc3类[3],并加上相应权 值来统计每一类的个数分别记为Left 、Center和Right。把小 于和大于Xc的像素分别放入数组LEFT[]和RIGHT[] 。例如X3 <Xc则Left=Left+W3,并加入W3个X3到数组LEFT[m]、LEFT [m+1] 直到LEFT[m+ W3-1],令m=Left ,取下一个像素重复以 上步骤,取完为止。
20 5157 1492 30 5237 1522 噪声强度p(%) 传统滤波(ms) 快速滤滤(ms) 10 5078 1402 40 5348 1566 50 5458 1552 60 5494 1532
第 29卷 第 3期 Vol.29 №3
计 算 机 工 程 Computer Engineering
文章编号: 1000— 3428(2003)03 — 0089— 02 文献标识码: A
2003年 3月 March 2003
中图分类号: TP 301.6
・软件技术与数据库・
一种新的加权中值滤波的快速算法
中值为 Xc
Y
Right=Right+Wi 赋值 RIGHT[]
N
diff=Left-Right-Center index=(diff+1)/2 diff= Right - Left -Center index=(diff+1)/2
参数 array 是待排序数组 LEFT[] 或 RIGHT[], length是数组的长度即为 Left 或Right ,index为排 序终止的位置,type表示排序的方向。
1 传统的中值滤波
长为n的一维信号i的中值用下式表示: Med{X1,X2……Xn}。 对二维图像信号{xij:i,j ∈ N},二维中值滤波器定义为:
Yij=MedXij=Med{Xi+r,j+s:r,s ∈ A}
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
3 实验结果
我们用Visual C++ 6.0实现了快速算法,在 主频566MHz,内存256MB 的计算机上对传统的 取 LEFT[]中第 index 大值 取 RIGHT[] 中第 index 小值 Center=Center+Wi 标准中值滤波法和本文介绍的快速算法进行了比 较,测试图像为Lena(256 × 256 × 24)图,实验用 取完 的加权窗为图1(a) 。实验结果如表1、表2所示。 Y 结 束 表1中我们对Lena图像以窗口大小为 5 × 5, 在 不同的椒盐噪声密度下进行滤波 ,结果表明: 图 2 算法流程图 (1) 噪声密度的大小对两种算法的速度影响较 (2)比较Left和Right,如两者相等则中值为中心像素Xc。 小。 (2) 在不同的噪声密度下,快速算法比传统的算法的速 (3) 若|Left-Right|<Center,则中值为中心像素Xc。 度都提高了 70%-73% 。表 2 中我们在不同大小的窗口下对 Lena图像( 噪声密度为30%) 取中值的执行速度进行了比较, (4) 若|Left-Right|>Center,则分为 Left>Right和 Right>Left 结果显示在 3 × 3 窗口大小时速度只提高了39.86%,而在窗口 两种情况。以Left>Right 为例 , 说明中值在小于 Xc 的这一类 5 × 5和 7 × 7中速度分别提高了 70.94%和 75.61% 。表明快 中 , 即 在 数 组 LEFT[Left] 中 。 计 算 差 值 △ =Left-Right速算法在大窗口或加权后窗口元素的个数N越大时更显示出 Center 。表示中值就是数组LEFT[Left]中最大的△个数的中 其快速性。 值。计算 index=(△ +1)/2. 表示中值就是 LEFT[Left]中第 index 大这个数(Right>Left情况下分析类似) 。 (5) 最后对LEFT[Left]或RIGHT[Right]进行局部排序,排 序到第index个大小时结束。 局部排序的函数如下所示:
a)本文用的方窗
(b)十字窗 (c)中心加权窗 图1 加 权 窗
(d) 菱形窗
具体步骤如下: (1)考虑待处理的窗口内像素为Xi={X1,□,Xc,□,Xn},加权
基 金 项 目 : 浙江省自然科学基金项目(299011) 作 者 简 介 : 陈 勇(1977~),男,硕士生,研究方向:图像处理、 人脸识别、小波应用;沈永增,副教授;计建炳,教授;李国 军 ,硕士生 收 稿 日 期 : 2002-03-14
A New Fast Weighted Median Filtering Algorithm
CHEN Yong1 , SHEN Yongzeng1 , JI Jianbing 2 , LI Guojun1
(1. College of Information Engineeing, Zhejiang University of Technology, Hangzhou 310032; 2. College of Chemical Engineering,Zhejiang University of Technology, Hangzhou 310032) 【 Abstract 】 In order to solve the problem that the speed of median filtering is slow because of a lot of sorting, a new fast weighted median filtering algorithm is presented. All elements in the moving window are classified as three kinds by comparing with center element,and compute the number of each class respectively, and construct two new arrays that store those elements value that is smaller or bigger than center element. By several simple comparison, people can know the position of new median in new array. SO the number of sorting is decreased largely and the speed of filtering is improved.At last,two groups of test data are given by the comparison between the fast algorithm and the traditional algorithm. The result proves the fast algorithms to be efficient. Selecting appropriate weight, weighted median filtering is equal to standard median filterings or some other median filterings,so the fast algorithms adaptability is large. 【 Key words】 Weighted median filtering; Fast algorithm; Sorting
数字图像的采样或传输在经过传感器或传输通道时经常 受到噪声的干扰。为了便利进一步的图像操作,如:边缘检 测、图像分割和模式识别等,有必要甚至是必须对受噪图像 进行滤波。中值滤波是由Tukey发明的一种非线性信号处理 技术,由于其在滤除噪声的同时,能够很好地保护图像的边 缘,因此得到了广泛的应用。但通常的中值滤波中的数据排 序费时较多,特别在大窗口下,需要进行大量的数据比较工 作,不利于图像快速实时的处理。因而有必要研究中值滤波 的快速算法。
2 快速算法
[1 ,2] ,其共同特 很多人提出了各种中值滤波的快速算法 点是只考虑滑动窗口中移入和移出的数据,避免了传统算法 中因排序所需的大量数据比较,从而较大地提高了速度。本 文从另一个角度提出了一种快速算法,考虑的对象是单个滑 动窗内的像素,标准中值滤波以及各种形状的窗口如图1 , 可看作加权中值滤波的一个特例。因此本文提出的加权中值 滤波的快速算法具有通用性。快速算法的流程如图2。
0 0 1 0 0
0 1 1 1 0
1 1 3 1 1
0 1 1 1 0
0 0 1 0 0
其中, Med表示取中值运算,N表示自然数集;A为截 取图像数据的窗口。窗A可以采用不同的形式,通常采用的 有方形窗、圆形窗、十字窗等。中值滤波就是选择一定形式 的窗口,使它在图像的各点上移动,用窗内像素灰度值的中 值代替中心点处的像素灰度值。 加权中值滤波定义为: Yc(i,j)=Med{W1□X1, W2□X2,□,Wn□Xn 其中□表示加权。加权后{W1□X1, W2□X2,□, Wn □Xn的元素共有N= n 个。
陈
摘
勇 1 , 沈 永 增 1 , 计 建 炳 2 , 李 国 军1
(1.浙江工业大学信息学院, 杭 州 310032;2. 浙江工业大学化工学院,杭州 310032) 要 : 针对中值滤波排序工作量多、速度慢等缺点,提出了一种新的加权中值滤波快速算法。把窗口内元素分为小于、等于和大于中心元 素的3类并分别统计这3类的个数,同时构造两个数组分别放入小于和大于中心元素的元素值,对每个类元素进行比较后可确定输出中值的确 切位置,因此可根据局部排序找出输出中值,这样可大大减少排序的次数,加快了处理速度。最后,对快算算法和标准中值滤波的传统算法 进行了比较,给出了二组实验数据。实验结果表明,与传统算法相比,该算法的执行速度大大加快。通过选择适当的权值,加权中值滤波可 代表标准中值滤波和其它一些中值滤波,因此该快速算法有较强适应性。 关 键 词 : 加权中值滤波; 快速算法; 排序
if(type==2) { for(int i=0;i<index;i++){ for(int j=i+1;j<length;j++){ if(array[i]<array[j])/// 如 { Median=array[i]; array[i]=array[j]; array[j]=Median; } } } return array[index-1]; } return -1; }