文献[2]对细化后的图像识别端点和节点信息,并用相同大小的参考图像记录节点信息,利用节点对应位置的像素值来表示节点类型,如值为1则表示端点,值为3则表示3链节点。在设计节点和骨架线的适量数据结构时,考虑到处理骨架线节点畸变和冗余的需要,记录节点坐标的同时还记录了相关的拓扑关系,如是否舍去,是否悬挂节点,节点连接线数,节点相关线的ID等。
上述两种改进方法由于保存了节点的拓扑信息,在用于矢量面状地物的骨架线提取时,能够在一定程度上防止节点畸变并减少骨架线的冗余小分枝。
3.2 基于数学形态学的改进方法
数学形态学是一种新型的图像处理工具,研究人员利用数学形态学的薄化运算作为细化的基本运算模式。这种算法相对与经典的基于细化的方法具有明显的优点:可以实现并行运算,提高算法运算速度;可以较好的保持图像各图元间的拓扑结构特性。缺点是不能保持线段的连续性。这种基于细化的方法是近年来研究的一个热点。
3.3 基于Freeman链码的矢量化方法改进
基于细化的矢量化算法在对栅格图像进行细化提取了骨架线后,多数采用了基于Freeman链码的矢量化方法。文献[3]对基于Freeman链码的变步长矢量化方法进行改进,即要求初始步长(最小取样间隔)是2的N(N是非负整数)次幂,每次步长的改变量是上一步长的一半,直到步长的改变量为1并且链码中两点间任意像素点到这两点间弦线垂距满足大于等于最大允许垂线偏差的条件为止。这种改进算法减少了算法迭代次数,提高运算效率。
4 基于非细化的矢量化算法的改进
由于基于细化的矢量化方法普遍存在丢失线宽信息,在交叉区域处容易产生变形及错误的分支等缺点。部分学者仍在为设计具有良好自适应性的基于非细化的栅格图像矢量化算法而努力。本节将介绍近几年针对这类算法的一些主要改进发法。
4.1 基于游程编码的矢量化方法改进
解决规模大、复杂度高的栅格图像高效矢量化问题的有效途径是找到一种完全基于内存数据处理的弧段提取技术。吴华意等[4]提出了一种无边界游程编码及其矢栅互转换算法,标记矢量化时的追踪,对游程进行了扩充。但是这种算法额外的内存开销降低了游程的压缩效率,限制了处理图像的规模和复杂度。文献[5]在此基础上提出了一种基于游程编码的矢量化改进方法。利用最简的游程编码形式并与区位表和折半查找技术相结合,实现对栅格图斑边界的追踪和矢量化提取,直接由游程编码提取含有拓扑关系的图斑边界弧段,其效率较以往方法有一定幅度的提高。
4.2 基于圆跟踪的矢量化方法
这种方法针对地形等高线的特性提出的。算法的具体方法是:首先查找等高线的起始点A,并记录该点,然后以A点为圆心,以指定的长度为半径画圆,并记录该圆与等高线的交点B,然后以B点为圆心,再以同样的半径画圆,以此类推,每一次画一个圆都记录一个交点(忽略落在前一个圆内部的那个交点),直至所画的圆和等高线没有交点为止,把这个过程叫做跟踪等高线,这一系列的圆叫做跟踪圆。该方法可以从等高线的任意一个端点开始跟踪,在遇到等高线较稠密或者等高线急拐弯的情况下,跟踪圆和等高线按照一定的步长缩小跟踪圆的半径重新跟踪,信捷职称论文写作发表网,直到跟踪圆和等高线重合的像素点在一个指定的阈值范围内为止[6]。该矢量化算法具有一定的自适应性,但是得到的是等高线上一些距离间隔不等的离散的坐标点,为了还原等高线或者作为后续的插值求其它点的高程或者其它属性,必须对这些离散的数据点进行曲线拟合。可以采用三次B-样条进行拟合。