双边界直线搜索法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
栅格向矢量转换中最为困难的是边界线搜索、拓扑结构生成和多余点去除。一种栅格数据库数据双边界直接搜索算法(Double Boundary Direct Finding,缩写为DBDF),较好地解决了上述问题。
双边界直接搜索算法的基本思想是通过边界提取,将左右多边形信息保存在边界点上,每条边界弧段由两个并行的边界链组成,分别记录该边界弧段的左右多边形编号。边界线搜索采用2×2栅格窗口,在每个窗口内的四个栅格数据的模式可以唯一地确定下一个窗口的搜索方向和该弧段的拓扑关系,这一方法加快了搜索速度,拓扑关系也很容易建立。具体步骤如下:
(1)边界点和节点提取:采用2×2栅格阵列作为窗口顺序沿行、列方向对栅格图像全图扫描,如果窗口内四个栅格有且仅有两个不同的编号,则该四个栅格标识为边界点并保留各栅格所有多边形原编号;如果窗口内四个栅格有三个以上不同编号,则标识为节点(即不同边界弧段的交汇点),保证各栅格原多边形编号信息。对于对角线上栅格两两相同的情况,由于造成了多边形的不连通,也作为节点处理P72。
(2)边界线搜索与左右多边形信息记录:边界线搜索是逐个弧段进行的,对每个弧段从一组已标识的四个节点开始,选定与之相邻的任意一组四个边界点和节点都必定属于某一窗口的四个标识点之一。首先记录开始边界点组的两个多边形编号作为该弧段的左右多边形,下一点组的搜索方向则由前点组进入的搜索方向和该点的可能走向决定,每个边界点组只能有两个走向,一个是前点组进入的方向,另一个则可确定为将要搜索后续点组的方向。边界点组只可能有两个走向,即下方和右方,如果该边界点组由其下方的一点组被搜索到,则其后续点组一定在其右方;反之,如果该点在其右方的点组之后被搜索到(即该弧段的左右多边形编号分别为b和a),对其后续点组的搜索应确定为下方,其它情况依次类推。可见双边界结构可以唯一地确定搜索方向,从而大大地减少搜索时间,同时形成的矢量结构带有左右多边形编号信息,容易建立拓扑结构和与属性数据的联系,提高转换的效率。
(3)多余点去除:多余点的去除基于如下思想:在一个边界弧段上连续的三个点,如果在一定程度上可以认为在一条直线上(满足直线方程),则三个点中间一点可以被认为是多余的,予以去除。即满足:
由于在算法上的实现,要尽可能避免出现除零情形,可以转化为以下形式:
(x1-x2)(y1-y3)=(x1-x3)(y1-y2)
或
(x1-x3)(y2-y3)=(x2-x3)(y1-y3)
其中(x1,y1),(x2,y2),(x3,y3)为某精度下边界弧段上连续三点的坐标,则(x2,y2)为多余点,可予以去除。
多余点是由于栅格向矢量转换时逐点搜索边界造成的(当边界为或近似为一直线时),这一算法可大量去除多余点,减少数据冗余。