缓冲区生成与叠加算法研究文献综述

 2022-10-08 11:10

文献综述(或调研报告):

1 线缓冲区生成方法

目前线缓冲区生成方法主要可分为矢量和栅格类型两种,同时还有矢栅混合算法。

矢量方法具有精度高、占用内存少的特点,但通常包含线求交、弧段切割重组、包含关系判定等计算过程,计算过程复杂。而栅格算法求解, 原理较为简单且易于实现, 但存在精度低、 处理大数据量时易受内存限制等缺点[1]。

矢量算法包括角平分线法、凸角圆弧法、基元叠置法。角平分线法是在线状目标的各转折点上,用与该点所关联的前后两邻边距轴线的偏移量两平行线的交点,来生成两平行线的对应顶点,逐个画出线段的简单平行线,从而得到缓冲区边界[2]。此法的缺点是难以保证双线的等宽性,线目标的凸侧越尖锐,平行线的交点越远离轴线顶点(图1)。

图1. 角平分线法生成缓冲区的双线不等宽

为了解决角平分线法的缺点,王船海与陈泰生提出了凸角圆弧法[3],其基本思想是:在轴线的各转折点,首先判断该点的凸凹性,在凸侧用半径为缓冲距的圆弧拟合,在凹侧用与该点关联的前后两相邻线段的偏移量为缓冲区距离的两平行线的交点作为对应顶点,将这些圆弧点和平行线交点按照顺序连接起来,得到闭合的缓冲区边界。基元叠置法,主要思想是:将缓冲区的建立看作是基本图形要素(点、线)缓冲区的并集[4]。通过分别对各个基本图新要素绘制缓冲区,然后对若干个多边形求交,难点在于求解两个缓冲区的并集。实现这一方法可以采取由部分到整体逐步修正的方法,将最后得到的缓冲区看做若干个线缓冲区的集合,以单线段缓冲区为基础进行多边形叠置以获得缓冲区边界,建立一种直接追踪出完整边界曲线的算法[5]。该算法可回避弧段求交、切割重组、边界闭合等复杂的矢量计算过程, 直接得到完整的、闭合的边界曲线, 算法较为简洁且易于实现。

栅格方法主要有数学形态学扩张法、填充算法和栅格欧氏距离法。数学形态学扩张法思想是将线目标栅格化,向目标栅格周围扩张,最后对得到的栅格数据进行边界提取, 生成矢量结果。填充算法思想是:在内存中申请一个存放栅格矩阵的二维数组,将其所有元素的值初始化为0。针对构建缓冲区的基本元素(线),在计算出每个缓冲区元素(圆和矩形)后, 对它们进行栅格数据转换, 采用改进的 Bresenham算法和中的算法和中点圆算法分别填充实心矩形和实心圆, 把栅格矩阵中相应元素设为1。当所有圆和矩形区域都生成后, 栅格矩阵中所有值为1的元素就是所求的整个缓冲区的栅格数据。这两种方法以二值化栅格为基础,对内存的依赖较欧氏距离法小,但存在如下缺点:对二值栅格图像进行矢量化时不能得到光滑边界;扩张/填充运算中存在大量重叠区域,严重影响计算效率。第三种方法,栅格距离法是较早提出的建立缓冲区的经典方法之一,其原理是,利用基于栅格的欧氏距离变换法,先计算出图幅范围内任一栅格到栅格化线目标的距离,并存储于栅格矩阵中,通过比较目标缓冲区的缓冲距离与各栅格上所计算出的距离值的大小关系,最终得到落在缓冲区范围内的栅格。该算法优点在于计算出图幅内距离矩阵后,可随意调整缓冲距离并取得结果,适用于动态缓冲区法分析,不过代价是占用的内存空间较大[6]。

此外,蓝秋萍等人结合栅格与矢量的优势,提出了一种矢量栅格混合算法[7]。该算法首先创建垂直平分于线状目标的扫描线集合,然后对此矢量扫描线集合进行栅格化,从而获取栅格目标矩阵图(图2)。在提取栅格目标边界后采用均值滤波、化简以及光滑技术最终生成缓冲区矢量边界线,从而避免矢量数据复杂求交以及栅格数据边界失真问题。算法主要有重采样、矢量数据栅格化、基于栅格技术生成缓冲区、边界提取并矢量化等步骤。混合算法的优势在于兼顾了精度与运算速度速度,计算结果的精度高于栅格算法,运算速度高于矢量算法。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。