边缘保持最优化滤波方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1引言
在摄影时,由于分辨率不足、感光度设置偏高等原因,经
常会遇到一些布满椒盐噪声或斑点噪声的照片,这些细小的噪声严重影响了照片效果。
在这种情况下,通常可以使用均值滤波等滤波方法对照片进行平滑处理。
平滑后,一般可以达到去除噪声的效果。
但是一些边缘也随之变得模糊,导致照片丢失很多细节。
有没有一种方法可以达到既去除噪声的目的,又不破坏边缘和细节呢?答案是肯定的。
边缘保持最优化(EPOS )滤波算法就是这样一种在去除噪声的同时可以最佳保持边缘和细节的滤波方法,下面将对这种方法的原理和实现加以详细介绍。
2
EPOS 滤波原理
2.1
算法综述
EPOS 滤波是一种可以智能调整滤波窗口大小和形状的平
滑算法。
它通过首先使用噪声方差的大小对均匀区域和含有边缘或孤立点的区域加以判断区分,然后仅对每个像素邻域中的均匀部分进行均值处理,来达到在滤波的同时保证边缘不变模糊的目的。
在确定滤波窗口的大小和形状时,该算法将窗口的邻域分为8个不相重合的部分(如图1),通过逐步剔除与中心像素不相同的邻域,应用最后剩余区域中的像素灰度统计量估算中心像元最终的灰度值。
2.2算法流程与分析
EPOS 执行滤波的流程如图2。
通过分析其计算过程可知,EPOS 滤波的执行流程可以分为如下几个部分:判断是否符合
均值滤波条件,窗口区域分块并计算各块方差,选出方差最大的一个并进行分块剔除,重新计算剩下分块方差。
若仍不符合条件,进行窗口缩小,并重复上述过程,直至符合条件或窗口缩小为3×3的为止。
由于每个窗口都是三角形,需要分别计算,给程序编码带来一些麻烦。
综合分析,可以设置3个循环,分别为窗口移动循环、窗口缩小循环和区域删减循环,进行EPOS 滤波计算。
边缘保持最优化滤波方法
吴文瑾
黄敬贺
摘
要:在图像处理中,去除噪声的同时常常会给边缘与细节带来不可恢复的损失。
为了解决
这一问题,讲解一种可以在去噪的同时,保留边缘细节的边缘保持最优化滤波方法。
首先对该算法原理与实现方式进行了阐述,之后通过实验对该滤波方法的效果加以分析,最后对该算法的优缺点进行了总结。
关键词:滤波;平滑;边缘保持;
EPOS
图1
EPOS 算法将滤波窗口划分成的8个
不相重合的部分
图2
EPOS
执行滤波的流程图
3程序实现
//////////////////////////灰度值计算
min=65535;
float d0=0.5227,dmax=0.0;
for(i=0;i<height;i++)//窗口移动,i,j为窗口中心
for(j=0;j<width;j++)
{PP[i*width+j]=AA[i*width+j];
if((i>=m0)&&(j>=n0)&&(i<height-m0)&&(j< width-n0))
{int m,n;
int k,l;
int Imax,z=0;
int I[7]={9,9,9,9,9,9,9};
//因窗口只有8个,预先赋值9以在判断时方便区分
for(m=m0;m>1;m--)//窗口缩小循环
{n=m;
float u=uu(AA,i,j,m,n,width);//窗口均值
int d1=0;
for(k=i-m;k<=i+m;k++)
for(l=j-n;l<=j+n;l++)
{d1+=(AA[k*width+l]-u)*(AA[k*width+l] -u);}
d1=d1/(2*m+1)/(2*n+1);//窗口方差
if(d1<d0*u*u)
{PP[i*width+j]=int(u+0.5);
break;}//判断是否符合整个区域均值滤波条件
float u0[8]={0},d[8]={0},d11[8]={0};
//累加数组置零
//计算各区域在未删减之前的均值和方差
for(k=i-m;k<i;k++)
for(l=j+k-i;l<j;l++)
{u0[0]+=AA[k*width+l];}
u0[0]=u0[0]/(2*m+1)/(2*n+1)*8;
for(k=i-m;k<i;k++)
for(l=j+k-i;l<j;l++)
{d11[0]+=(AA[k*width+l]-u0[0])*(AA [k*width+l]-u0[0]);}
d11[0]=d11[0]/(2*m+1)/(2*n+1)*8;
////////////////////////////
for(k=i-m;k<i;k++)
for(l=j-k+i;l<j;l++)
{u0[1]+=AA[k*width+l];}
u0[1]=u0[1]/(2*m+1)/(2*n+1)*8;
for(k=i-m;k<i;k++)
for(l=j-k+i;l<j;l++)
{d11[1]+=(AA[k*width+l]-u0[1])*(AA [k*width+l]-u0[1]);}
d11[1]=d11[1]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
for(k=i-m;k<i;k++)
for(l=j-k+i;l<j+m;l++)
{u0[2]+=AA[k*width+l];}
u0[2]=u0[2]/(2*m+1)/(2*n+1)*8;
for(k=i-m;k<i;k++)
for(l=j-k+i;l<j+m;l++)
{d11[2]+=(AA[k*width+l]-u0[2])*(AA [k*width+l]-u0[2]);}
d11[2]=d11[2]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
for(k=i;k<i+m;k++)
for(l=j+k-i;l<j+m;l++)
{u0[3]+=AA[k*width+l];}
u0[3]=u0[3]/(2*m+1)/(2*n+1)*8;
for(k=i;k<i+m;k++)
for(l=j+k-i;l<j+m;l++)
{d11[3]+=(AA[k*width+l]-u0[3])*(AA [k*width+l]-u0[3]);}
d11[3]=d11[3]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
for(k=i;k<i+m;k++)
for(l=j;l<j+k-i;l++)
{u0[4]+=AA[k*width+l];}
u0[4]=u0[4]/(2*m+1)/(2*n+1)*8;
for(k=i;k<i+m;k++)
for(l=j;l<j+k-i;l++)
{d11[4]+=(AA[k*width+l]-u0[4])*(AA [k*width+l]-u0[4]);}
d11[4]=d11[4]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
for(k=i;k<i+m;k++)
for(l=j-k+i;l<j+m;l++)
{u0[5]+=AA[k*width+l];}
u0[5]=u0[5]/(2*m+1)/(2*n+1)*8;
for(k=i;k<i+m;k++)
for(l=j-k+i;l<j+m;l++)
{d11[5]+=(AA[k*width+l]-u0[5])*(AA [k*width+l]-u0[5]);}
d11[5]=d11[5]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
for(k=i;k<i+m;k++)
for(l=j-m;l<j-k+i;l++)
{u0[6]+=AA[k*width+l];}
u0[6]=u0[6]/(2*m+1)/(2*n+1)*8;
for(k=i;k<i+m;k++)
for(l=j-m;l<j-k+i;l++)
{d11[6]+=(AA[k*width+l]-u0[6])*(AA [k*width+l]-u0[6]);}
d11[6]=d11[6]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
for(k=i-m;k<i;k++)
for(l=j-m;l<j+k+i;l++)
{u0[7]+=AA[k*width+l];}
u0[7]=u0[7]/(2*m+1)/(2*n+1)*8;
for(k=i-m;k<i;k++)
for(l=j-m;l<j+k+i;l++)
{d11[7]+=(AA[k*width+l]-u0[7])*(AA [k*width+l]-u0[7]);}
d11[7]=d11[7]/(2*m+1)/(2*n+1)*8;
while(z<7)//执行区域删减循环
{//计算方差最大最小的区域
for(i1=0;i1<8;i1++)
for(j1=0;j1<z;j1++)
{if((d11[i1]>dmax)&&(i1!=I[j1]))
dmax=d11[i1],Imax=i1;
if(d11[i1]<min)
min=d11[i1];
}
if(min<=d0*u*u)
break;
//符合缩小窗口条件,退出区域删减循环,进入缩小窗口循环
//计算删减后总的保留区域的均值
I[z++]=Imax;
u=0;
int count=0;
for(i1=0;i1<z;i1++)
for(j1=0;j1<8;j1++)
{if(j1!=I[i1])
u+=u0[i1];
count++;
}
u=u/count;
//计算区域删减后总的保留区域的方差
d[0]=0;
for(k=i-m;k<i;k++)
for(l=j+k-i;l<j;l++)
{d[0]+=(AA[k*width+l]-u)*(AA[k*width+l]-u);}
d[0]=d[0]/(2*m+1)/(2*n+1)*8;
////////////////////////////
d[1]=0;
for(k=i-m;k<i;k++)
for(l=j-k+i;l<j;l++)
{d[1]+=(AA[k*width+l]-u)*(AA[k*width+l]-u);}
d[1]=d[1]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
d[2]=0;
for(k=i-m;k<i;k++)
for(l=j-k+i;l<j+m;l++)
{d[2]+=(AA[k*width+l]-u)*(AA[k*width+l]-u);}
d[2]=d[2]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
d[3]=0;
for(k=i;k<i+m;k++)
for(l=j+k-i;l<j+m;l++)
{d[3]+=(AA[k*width+l]-u)*(AA[k*width+l]-u);}
d[3]=d[3]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
d[4]=0;
for(k=i;k<i+m;k++)
for(l=j;l<j+k-i;l++)
{d[4]+=(AA[k*width+l]-u)*(AA[k*width+l]-u);}
d[4]=d[4]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
d[5]=0;
for(k=i;k<i+m;k++)
for(l=j-k+i;l<j;l++)
{d[5]+=(AA[k*width+l]-u)*(AA[k*width+l]-u);}
d[5]=d[5]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
d[6]=0;
for(k=i;k<i+m;k++)
for(l=j-m;l<j-k+i;l++)
{d[6]+=(AA[k*width+l]-u)*(AA[k*width+l]-u);}
d[6]=d[6]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
d[7]=0;
for(k=i-m;k<i;k++)
for(l=j-m;l<j+k-i;l++)
{d[7]+=(AA[k*width+l]-u)*(AA[k*width+l]-u);}
d[7]=d[7]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
d1=0;
for(i1=0;i1<z;i1++)
for(j1=0;j1<8;j1++)
{if(j1!=I[i1])
d1+=d[i1];
}
d1=d1/count;
//将达到要求的保留区域均值作为该像素的灰度值
if(d1<d0)
{PP[i*width+j]=int(u+0.5);
break;}
}//while区域删减循环
if(d1<d0)
break;//同时退出缩小窗口循环
}//缩小窗口循环
}//if
}//窗口移动
4滤波实验与效果分析
对一幅实验图像(如图3)使用9×9窗口进行了EPOS滤波处理,结果图如图4所示,并采用同样大小的窗口做均值平滑滤波(如图5)进行效果比对。
从滤波后的结果可以看出,均值滤波对原图整体进行了平滑,平滑后噪声消除效果很好,但边缘丢失情况严重,一些较小的孤立点在平滑处理后消失掉
飞天诚信开通农行新K 宝网银安全绿色通道
日前,飞天诚信科技有限公司在总结了自身服务于五十余家金融机构的经验基础上,凭借十余年在智能身份认证领域的技术积累,倾力推出了中国农业银行新K 宝技术支持中心,此平台将致力于为广大飞天新K 宝的用户提供全新的服务体验和完善的技术支持。
据了解,飞天诚信公司是中国农业银行网上银行推出的新K 宝的供应商之一。
其为农业银行提供的"五彩K 宝"被誉为新颖时尚的、功能更强的USB Key 产品。
此次推出的新K 宝技术支持中心本着以客户为中心的原则,在内容上包含了飞天诚信中国农业银行新K 宝在程序安装、证书下载、用户应用以及工具使用方面的问题。
此外为了更方便客户的使用,客户还可以通过"飞天新K 宝中国农业银行网银助手"快速的对K 宝环境做一个全面检测,如有问题该助手还具有一键恢复的功能。
丰富的内容,全面的支持,确保每一位客户在使用飞天诚信农行新K 宝时高枕无忧。
作为网银市场上极具综合竞争力的厂商,飞天诚信始终力求理性服务,真诚服务每位客户,其优质的产品和完善的服务获得了广大机构和客户的一致好评。
本次推出的农行K 宝技术支持中心标志着飞天诚信公司"打造网银绿色安全平台"计划的正式启动,以后,我们将开启更多银行的网银安全绿色通道,为中国的网银用户打造一个安全便捷的技术服务平台。
了。
而在EPOS 滤波结果中,图像的大部分区域进行了平滑处理,边缘却被很好地保持了下来,孤立点在平滑后没有消失的现象,但部分较大的噪声在处理后非但没有被消除,反而得到了放大。
通过对EPOS 滤波算法的原理进行分析,可以知道,造成这种效果的原因是:EPOS 滤波通过将平滑窗口分成8个区域,逐个剔除选择参与平滑的像元来进行边缘保持,8个区域的划分几乎可以包含了所有边缘方向,若边缘方向与8个区域中任一区域都无法匹配,该算法还设置通过缩小窗口来减小这种方向偏差为平滑带来的影响,因此具有边缘保持最优化的效果;与此同时,该算法设置当窗口缩小为3×3时,像元中心像素不进行平滑处理而是保持原来灰度,已达到保持孤立点的作用,同理,很细很尖锐的边缘也会被很好地保持下来,但这一原理也保存了一些噪声点,导致部分噪声被锐化。
5结语
EPOS 滤波在去噪时具有很好的边缘和细节保持效果,是
较为理想的椒盐或斑点噪声去除方法。
但在应用这一滤波方法时,一些较大的噪声会被当做孤立点反而得到放大。
因此,这
一方法主要适用于均匀细小的椒盐噪声和斑点噪声的去除,对于较大的噪声,将达不到理想的效果。
(收稿日期:
2009-10-12)
图3
原始实验图像
图4EPOS 滤波(9×9窗口)
结果
图5均值滤波(9×9)窗口结果
!!!!!!!!!!!!!!!!!!!!!"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
!!!!!!!!!!!!!!!!!!!!!"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"。