APP下载

地形图扫描图像中快速矢量化方法研究

2020-08-26曹新虎

经纬天地 2020年3期
关键词:矢量化线宽像素点

曹新虎

(山西省第五地质工程勘察院,山西 临汾041000)

0.引言

对于工程类的项目而言,在进行招标以及进行研究的过程中,需要使用到传统地形图,将地形图运用相关的技术扫描之后,插入到相应的CAD之中,再对其进行修改与编辑,可达到工程项目所需要的标准精度[1]。。如何对所需要的传统的地形图进行扫描,使得图上信息能够完整准确展现出来,以及运用哪种CAD格式进行数据的转换更加便捷,对于工程顺利实施具有重要意义,这也成为目前亟待解决的一个问题。

运用矢量化的形式,将相关的、传统的地形图中的相关信息转化为直线、圆弧、文字等相关图形进行储存的过程称为矢量化[2,3]。近些年以来随着CAD,GNSS的广泛普及,地形图矢量化这一研究方法也得到了快速发展。矢量化研究方法已经形成了基于细化原理、轮廓跟踪、稀疏像素等集众多方法于一体的算法,也相继推出了一系列与图纸识别相关的系统[4,5]。但在这过程中,仍然存在许多的问题。比如,工程项目的应用背景都是复杂的,需求也是相对多样化的,针对目前的研究成果而言,普遍都会存在反应速度慢、智能化程度较低、环境适应力较差等问题,同时在运用矢量化的方法时,不能很好地自动识别以及不能满足不同项目的需求,这些造成了矢量法应用推广普及的困难。为了保证项目顺利进行,本文针对地形图扫描过程中存在的问题进行相应探讨,并且开发出相关模型能够准确描述传统地形图的矢量法。

1.地形图的矢量化算法

1.1 相关数据的分析以及提取

在工程的进行中,所采用的地形图一般都是单色的图像。对这些单色的图片进行扫描之后,可以直接得到相应的二值化图像,对于二值化图像中的扫描线,在实际中都是根据可以全部进行连通的小黑像素所构成的,有些是根据一系列的距离间隔较近或是可以相互之间连通的黑像素所构成的,在不同的比例之下可以得到不同的状态图,下列分别为25%、100%与400%的矢量图(如图1所示):

图1不同比例之下的矢量图

在图像的数据中,对于黑像素的值定为1,对于白像素的值定为0,在对其像素进行设置之后,可以采用一个二维的模型对矢量图中的所有的像素进行相应记录,同时将采用二维的布尔模型所记录下来的像素命名为像素数的组合。与平面直角坐标轴相同,图像左下角作为坐标原点,水平方向为x轴,竖直方向为y轴。像素数组中的数点根据相应的x、y值放入到相应的模型之中,像素数组的数据也就代表了像素的不同的类型,这样的情况之下,也就完成了对于地形图的数据的提取。

1.2 黑像素变带宽存储

对黑像素点进行储存的过程之中,需要对其进行相应数据元素的排列,将元素按照从下到上、从左到右进行元素的排列,从而方便进行黑像素点元素的检索。将有效数组中的黑像素点分别进行编号,有效数组中的黑像素点值为1的时候,则为有效数组的序号,如果其黑像素点值为2的时候,则说明这类黑像素点可以取得两个有效的值。由于地形图中的黑像素是比较稀疏的,采用别的方法而言是相对比较复杂的,也不能很好对其进行存储,通过对黑像素的有效处理之后,进一步提高矢量化进行的过程(如图2所示):

图2黑像素变宽存储处理图

1.3 原始点的选择

当相关的像素点的距离与起始点的数值之间的差距小于3个黑色像素的时候,就需要对这些像素点的有效值进行编码。编码的顺序需要按照被搜索的先后的顺序依次加入相关的链条中,按照这个顺序,在编码过程中表示出起始点的位置,在找到有效点在链条中进行编号之后,其对应位置像素数值就会变为0,那么变为0的这个像素点就成了无效点。将像素点进行编码并找到链条中像素位置的过程称为吸附计算。吸附计算关键的步骤就是寻找关键点,图元的起始位置就是所需要的第一个关键点,采用吸附计算所得到的有效点则被称为节点(如表1所示):

表1节点搜索次序

1.4 智能跟踪算法

对像素点进行智能跟踪的时候,其进行搜索的距离也就是按照跟踪的长短来进行定义的,并根据其对于像素点的依附性以及距离的大小,进行间断点距离的变化,从而可以实现间断点跟踪的连续性与完整性,但是这样的过程容易造成图元之间相互跳跃的现象,从而导致智能跟踪的过程中产生较大的误差,这种情况需要按照实际的地形图进行确定,通过跟踪方向来确定最终的像素点区域的划分,具体的划分(如图3所示):

图3跟踪方向划分图

在跟踪方向区域的划分当中,其每一个都是代表了一个像素点,最中间的像素点则为有效像素中的关键点,对于关键点周围的像素都会被跟踪进行编码,从而减少进行搜索的工作量,在搜索的过程中第一个有效点则是其有效点。保留这一有效点对下面的像素点进行搜索,不断地进行吸附计算,直到将所有的像素点都搜索完,从而完成对一个图元的像素搜索。

2.输出文件进行优化

在对地形图进行扫描之后,需要进行数据分析,获得数据之后矢量的文件也就可以获得,在对文件进行输出的过程中,需要保证输出文件的最优化,在输出数据传输之前,需要对输出的文件进行不断地优化之后,再进行传输语句。输出文件的优化过程主要有三个部分,分别是地形图线宽的相关计算、去除地形图的杂点以及对数据进行平滑的计算。这三部分中的每一部分对于文件传输的优化都是至关重要的。

2.1 地形图线宽的计算

对于地形图中的每一条线宽都需要进行准确地把握,从而可以对地形线中的图元进行更好地确定与计算。就一般情况而言,地形图的线宽一般是一个常数,在进行线宽的计算的时候可以运用下列的公式进行计算,如式(1)所示:

在式(1)中,w为线宽;ne与nb则为关键点与节点的数量多少;li表示的是第i与i+1之间的距离的大小。

2.2 去杂点

对于图像中不在链条上点的一些杂点,这部分的杂点的数量通常是比较少的,所以要将这些点设置为一个具有下限的数组,进行杂点的剔除,实现对于文件的杂点的剔除。在去杂点的链条之中,内部的有效图元必须要满足有效的计算,具体的计算公式如式(2)所示:

在上述式子中,ne与nb为关键点与节点的数量,nmin代表的是有效数据组中最少的有效像素点的数量,通过软件的相关计算,用户可自定义具体数值。

3.地形图扫描分析的具体例子分析

基于线条的平滑特点,同时矢量法保留了对于地形图线宽的相关特点,所以能够更加准确具体地将原本的地貌反应出来。但是,由于在地形图进行扫描的过程中,对有关数字以及文字进行了相关处理,造成了部分数字以及文字的失真,这对原本的图像造成了一定的影响,为了扫描后的地图能够最大程度地保留原本图像信息,还需要对数字以及文字失真的问题进行具体详细研究,矢量化的地图(如图4所示):

图4矢量化地图

4.应用实例

由于矢量图像存储空间相对较小、缩放时不会产生变形以及方便进行各种变化等优点,图像矢量化技术在诸多工程领域中都有着广泛应用。在电脑矢量化的过程中,需要对地形图中的线条进行矢量化处理,实现图的缩放,并且需要对这些线条进行走针处理。一般的位图图像是不能够进行这一种操作的,所以需要采用矢量化方法对地形图进行处理,以矢量化之后的图形为依据进行相关计算,可以得到关于地形图的矢量化图形。本文将采用矢量化方法对地形图进行具体介绍。

实现地形图矢量化需要对其走针的路线进行相关计算,也就是计算出链码。实现这一功能需要做到以下几个步骤:

(1)图案的区域标识;

(2)图的边界识别与跟踪;

(3)图案边界的光滑与矢量化;

(4)地形图走针路线的具体设计。

4.1 图案的区域标识

地形图识别处理通常为文字、各种线条,这些图案可以视为一块连通的区域。为了方便后续进行处理的需要,必须要将图案中的相互连通的区域进行详细描述,并要确定出其具体的属性,比如区域的范围以及图形等。如果有的地形图的图像是彩色的图像,需要除去不相互连通的标识区域外,还需要对其颜色的属性进行不同区域的划分与识别。本文所采用的例子当中没有颜色的区分,因此只对其线条进行区分。

4.2 二值图像的区域标识算法

在对二值图像的区域标识进行计算的时候,其主要是运用sign作为当前的一个标识性的记号,通过一个数组flag用来记录原本的标识面积,也就是以i作为标号的区域面积,对于任何一个二值图像而言,它代表的是背景的像素及目标的像素。进行地形图区域算法的主要步骤是以下几部分:

(1)从左向右、从上到下逐个对元素进行扫描;

(2)在扫描的过程中,当目标的像素为P点的时候,如果这一个点的右上、正上、左上、左前四个点都没有形成像素,那么就不是物体,这一个点就是新出现的点。那么就需要将sign增加1,并且让标识面积等于1;

(3)如果P点是在右上角,那么P点则是与右上角相同的点,并且需要将其flag数组的元素都增加1。这种情况之下,P点位可以与其右上角的点进行连通并且合并;

(4)如果正上、左上、左前是目标像素点的时候,那么需要将P点与相同方向的像素标记相同的值,并且将其对应的flag元素进行简单相加。

经过相关计算之后,对不相邻的像素点采用不同的数值进行标记,并且可以运用相关方法计算出相应的区域面积。需要引起注意的是,不同区域虽然用不同的数值进行了标记,但是这些标记的数值之间并不是连续的,区域的标识值有可能是5、20、50等,这些数值之间并不是连续的,为了方便进行处理,那么就将这些数据运用了整数标识。进行标识的过程中,只需要将flag数组中记录不为0的数值,建立新的索引数据,再对这些数据进行重新的整合。

4.3 小区域的合并与删除

对于纸质版的地形图而言,其线条是不太均匀的,不会出现太大的噪音点以及边界失真的情况等。但是经过扫描之后的电脑位图图像常常会出现一些噪音点以及边界失真的情况。这些噪音点和边界颜色失真会使得区域识别的时候,错误识别出许多小的区域,这就会使得我们在进行真正识别的时候,地形图的边界会变得非常粗糙,并且会增加工作量。为了继续后面的操作,就必须要将这些噪音点和边界失真带来的影响进行消除。

根据扫描面积可以设定两个阈值t1与t2,其中t1

(1)如果S≤t2,那么这种情况之下就是小区域,需要对小区域进行合并或者是删除,并且将其进行到步骤2中,否则不利于下一个地区的判断;

(2)所有的小区域都有一个共同的特点,就是有无目标点,如果有目标点,那么这两个点之间存在相似性,如果没有目标点,那么这两个点之间就没有相似的目标点。如果S

(3)然后对地形图中所有的点都重新进行检查,直到需要删除或者是合并的小区域为止。

4.4 地形图的边界识别与跟踪

因为区域之内的所有的数字都是从1连续整数进行识别的,所以需要对定图的边界进行标识与识别,地形图边界进行识别的基本算法有:

(1)获得图像像素的高与宽;

(2)开辟相应的缓冲区,用于记录图像的边界;

(3)读入图像,将领域像素读入数组中,如果像素点均与中心点的标识相同,那么就是内部点。将内部点进行记录,否则其他点为边界点;

(4)重复步骤3,将所有内部点与边界点进行计算与标识。

对于某个连通区域而言,如果它是单连通的,则其边界只会有一条边界线组成,如果是多连通的,则其边界会由多条边界线组成。将需要标识的区域设为i并进行边界跟踪,其算法为:

(1)开辟缓冲区,将边界点i进行拷贝;

(2)从左到右、从上到下,遇到目标点进行跟踪,开辟出新的点;

(3)新的点中需要记录当前的坐标,在缓冲区中需要将其删除。

根据上面的原理及算法,编制开发了相应的软件,并对图5的地形图进行了自动矢量化的计算,从而生成矢量化图(如图6所示):

图5纸质图纸扫描图像局部

图6矢量化的图像

从软件矢量化效果来看,本文方法反映了地形线平滑任意多变的特点,因为保留了线宽信息,图形真实地反映了图纸原貌,但因为数字和文字也当成了地形线图元处理,数字和文字有些失真,这一方面还有待于进一步研究。

5.结束语

本文主要是针对在工程类项目使用地形图中所遇到的问题进行优化处理。针对工程项目所需要的扫描地形图,提出一种能够在地形图扫描图像中地形线快速矢量化的方法。采用使得地形线变宽储存以及在有效的像素点中选择合适的图元,这一种方式可以提高了原本计算的速度。所采用的优先算法也可以将搜索的线路变的最短化。通过对地形线的线路进行线宽的计算以及像素等文件优化方法可以体现出原本的地形图的基本特征,又能在一定的程度上面提高矢量化之后的质量。这一系列的方法对于地形图数据的分析具有较好的效果。

猜你喜欢

矢量化线宽像素点
印制板制造中量化蚀刻研究
生产过程中的PCB线宽分析研究
基于局部相似性的特征匹配筛选算法
挠性印制板高精度阻抗设计影响因素研究
Excel图形转入CorelDRAW技巧
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
农村土地承包经营权确权登记调查底图制作方法的探究
DEM的建立及其在林业上的应用
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割