欧氏距离变换光栅扫描算法的改进及扩展

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

欧氏距离变换光栅扫描算法的改进及扩展
张晓贺;翟亮;张志华
【摘要】A new Euclidean Distance Transform (EDT) algorithm is proposed It is an improvement to raster-scanning algorithms of EDT. The same as raster-scanning algorithms, it realizes EDT by scanning forward and backward with 8-neighborhood masks. However, the propagated information is the absolute value of the coordinates of the nearest feature pixel, instead of the relative coordinates. Given these coordinates, the Euclidean distances are easily computed. Further, this algorithm has been implemented for generating weighted EDT and weighted Voronoi diagram of points,curves,and polygons. Experiments prove that it is
simple,rapid,easily to achieve,and its accuracy can be controlled by the size of masks and the size of raster cell.%提出了一种新的欧氏距离变换算法,该算法是对原有的欧氏距离变换算法中光栅扫描算法的一种改进.和光栅扫描算法一样,该算法以8邻城为模板,通过顺序和逆序两次扫描实现欧氏距离变换,不同的是该算法在信息传递的时候用了最近目标点的行列号,而不是与最近目标点行列号的差异,通过这些行列号不仅可以轻松实现欧氏距离变换,而且扩展后还可以用于加权欧氏距离变换、全形态图形加权Voronoi图的生成.通过实验证明该算法简单、快速、易于实现,且其精度可以通过邻域模板和栅格单元大小加以控制.
【期刊名称】《兰州交通大学学报》
【年(卷),期】2012(031)001
【总页数】4页(P102-105)
【关键词】欧氏距离变换;算法;加权欧氏距离变换;加权Voronoi图
【作者】张晓贺;翟亮;张志华
【作者单位】兰州交通大学数理与软件工程学院,甘肃兰州730070;中国测绘科学
研究院,北京100830;中国测绘科学研究院,北京100830;兰州交通大学数理与软件
工程学院,甘肃兰州730070
【正文语种】中文
【中图分类】TP301.6
0 引言
距离变换是计算并标识空间点(对目标点)距离的过程,它最终把二值图像变换为灰度图像[1](其中每个栅格的灰度值等于它到最近目标点的距离).目前距离变换
被广泛应用于计算机图形学、GIS空间分析和模式识别等领域.
按距离类型划分,距离变换可分为:非欧氏距离变换和欧氏距离变换(EDT).其
中EDT精度高,与实际距离相符,应用更广泛.目前随着应用的需要,已经有多种EDT算法[2-6].按变换方式分,这些算法可以分为:基于目标点变换算法[2-3]
和基于背景点变换算法[4-6],其中基于目标点变换算法又可分为:传播算法[4]、光栅扫描算法[5]和独立扫描算法[6].上述算法大多致力于算法效率和完全性上的研究,其算法扩展性十分有限.
为此,本文提出了一种新的EDT算法,该算法在原有光栅扫描算法基础上,进行
了改进,算法在信息传递的时候,用最近目标点的行列号代替与最近目标点行列号的差异,这样通过这些行列号可以轻松实现欧氏距离变换.和原有算法相比,该算
法扩展后可以用于加权欧氏距离变换、全形态图形[7]加权Voronoi图的生成.
1 欧氏距离变换
1.1 欧氏距离变换的定义
在二维平面上定义两点p 1(x 1,y 1),p 2(x 2,y 2)那么它们之间的欧氏距离为
在二值图像中,1代表目标点,0代表背景;在灰度图像中,栅格的灰度值表示该栅格点到最近目标点的距离值.这样一张M×N的图像可以表示为一个二维数组
A[M][N],其中A[i][j]=1对应的栅格表示目标点,A[i][j]=0对应的栅格表示背景点.设B={(x,y)|A[i][j]=1}为目标点集合,则欧氏距离变换就是对A中所有的栅格点(i,j)求
从而得到二值图像A的欧氏距离变换图D[M][N].
1.2 标签
本文为栅格图像定义了一个如下所示的结构体标签数组,用来实现对所传递信息的统一存储.
每个标签T[i][j]对应图像中栅格点(i,j).其中:(x ij,yij)对应到栅格点(i,j)距离最近的目标点,由此可知栅格点(i,j)到最近目标点(x ij,y ij)的欧氏距
离为
1.3 光栅扫描算法的改进
改进后的算法继承了光栅扫描EDT算法的思想,在光栅扫描的时候使用了8邻域
模板(如图1所示),并按图2进行编号,通过顺序和逆序两次扫描实现EDT,
其中在顺序扫描时使用了模板逆序时使用了模板.但该算法在距离变换的时候,所
传递的信息为最近目标点的行列号而不是行列号差异,并通过公式(1)计算栅格点到最近目标点的距离值.
图1 八邻域示意图Fig.1 8-neighborhood
图2 八邻域编号图Fig.2 8-neighborhood with numbers
在扩展性上,原有的光栅扫描算法只能用于普通Voronoi图的构建,且需要在生成欧氏距离变换图的基础上,再进行山脊线的提取才能生成Voronoi图[8],这样不仅效率低,而且在山脊线的提取中会产生一定的误差.
而在本算法中,每个栅格都记录了到其最近目标点的行列号,这等于在距离变换的同时,对每个栅格点进行了简单的Voronoi划分,所以用其标签中最近目标点的行列号组合改写栅格点的颜色值,可以直接生成Voronoi图;如果被变换图像为灰度图像,且栅格点的灰度值表示其所代表目标的权重,修改算法可以生成加权EDT图;如果事先对被处理图像进行目标提取,即将连通在一起的栅格点设统一编号,利用编号改写图像颜色值,还可以轻松生成全形态图形的Voronoi图和加权Voronoi图.
2 光栅扫描改进算法描述
2.1 数据结构的定义
2.2 步骤
1)预处理:光栅扫描二值图像,若栅格的值为1,则T[i][j].x=i,T[i][j].y=j;若栅格的值为0,则T[i][j].x=V,T[i][j].y=V.V 为足够大的正整数,不小于max (M,N).
2)根据图2建立数组d[k]{k=0,1,2,…,8},用来存储根据各邻域传递过来的最近目标点计算出来的距离值.
其中:x k,y k表示k邻域传递过来的最近目标点的行列号.
3)顺序访问,即j=0,1,2,…,N;i=0,1,2,…,M,按照公式(5)计算d[k]{k=0,1,2,3,4},并按下式改写各点标签T[i][j]
式中:d_min表示取d[k]值最小时所对应邻域的标签.
4)逆序访问,即j=N,N-1,N-2,…0;i=M,M-1,M-2,…0,按照公式(5)计算d[k]{k=0,5,6,7,8},并按下式改写各点标签T[i][j]
5)按公式(4)计算距离值 D[i][j],并用int(D[i][j]+0.5)改写栅格(i,j)的灰度值,生成距离变换图.
3 改进算法的扩展
3.1 加权欧氏距离变换
将被变换图像由二值图像换为灰度图像,用相应栅格的灰度值来表示目标点的权重,在标签数据结构添加权重w(0<w≤1).修改公式(4)为
在上述改进算法步骤(1)中添加:预处理时,若栅格(i,j)的值为0,则
T[i][j].w=1;若栅格(i,j)的值为W(0<W ≤100),则T[i][j].w=W/100.在
步骤(2)中修改公式(5)为
其它步骤不变.
3.2 全形态图形加权Voronoi图的生成
1)在标签数据结构中添加权重w和最近目标点编号n,类似3.1中,修改公式(4)和公式(5).
2)预处理:光栅扫描灰度图像,若栅格(i,j)的值为W(0<W ≤100),则
T[i][j].x=i,T[i][j].y=j,T[i][j].w = W/100,T[i][j].n=0;若栅格(i,j)的值为0,T[i][j].x=V,T[i][j].y=V,T[i][j].w =1,T[i][j].n=V.V 为足够大的正整数,不小于 max(M,N).
3)目标提取:光栅扫描灰度图像,若T[i][j].n==0.则T[i][j].n=k(k∈1,2,3,…),然后对栅格点的8邻域采用递归的方式进行同样的处理,直至把所有与栅格点联通的目标点做以相同的编号,完成一个目标的提取,然后k++,继续扫描.
4)~6)同2.2步骤2)~4).
7)光栅扫描图像,用栅格(i,j)标签中的编号T[i][j].n改写栅格(i,j)的颜色值.
8)对图像分别进行先行后列和先列后行扫描,提取颜色边界,生成加权Voronoi 图1.
4 实验分析
本论文所有的实验均在VC6.0下进行,图像大小统一为800×480.
图3 欧氏距离变换Fig.3 EDT
图4 加权欧氏距离变换Fig.4 Weighted EDT
图5 加权Voronoi图Fig.5 Weighted Voronoi
误差分析:在EDT中,由于该算法采用了8邻域传递的思想,所以与其它非完全EDT一样,对某些特殊点(断点)的距离值计算是错误的[1].但这种误差会随着邻域的扩大和栅格单元的缩小而减小.此外,在Voronoi图的生成过程中,误差主要产生在边界提取中,由于算法采用了单栅格宽度的边界,其精度会受制于栅格单元的大小,其误差不大于0.5个像元[7],所以可以通过减小栅格单元大小来提高边界精度.
5 结论
本文通过对多种EDT算法的研究,在原有光栅扫描算法的基础上通过改进,提出了一种新的EDT算法,且该算法具有很强的扩展性.和原有的光栅扫描算法相比,该算法不仅可以用于普通Voronoi图的生成,而且实现了加权EDT和全形态图形加权Voronoi图的生成,尤其是扩展后的加权Voronoi图的生成算法不仅克服了以往矢量生成算法过于复杂的缺点,而且可以处理全形态图形.通过实验证明,本文给出的EDT算法及其扩展算法简单、快速、易于实现,且其精度可以通过修改邻域模板和栅格单元大小加以控制.
【相关文献】
[1] Fabbri R,Costa L da F,Torelli J C,et al.2D euclidean distance transform algorithms:
a comparative survey[J].ACM Computing Surveys(CSUR),2008,40(1):2-44.
[2] 陈淩.完全欧几里德距离变换的最优算法[J].计算机学报,1995,18(8):611-616.
[3] 鲁继文,张二虎.基于围线扫描的快速完全欧氏距离变换算法[J].中国图象图形学报,2006,6(11):872-876.
[4] Ragnemalm I.Neighborhoods for distance transformations using ordered propagation[J].CVGIP-Image Understanding,1992,56(3):399-409.
[5] Danielsson P.Euclidean distance mapping[J].Computer Graphics and Image Process-ing,1980,14:227-248.
[6] Leymarie F,Levine M.D.Fast raster scan distance propagation on the discrete rectangular lattice[J].Computer Vision and Image Understanding,1992,55(1):84-94.
[7] 李圣权,胡鹏,杨传勇.图形部件Voronoi图生成算法与应用研究[J].计算机工程,2005,31(10):42-44.
[8] 胡鹏,游连,胡海.地图代数[M].武汉:武汉大学出版社,2008:52-74.
[9] 李成名,陈军.Voronoi图生成的栅格算法[J].武汉测绘科技大学学报,1998,23(3):208-210.。

相关文档
最新文档