06 空间数据获取与处理(2)

2019-07-30 13:43

纸地图扫描转换拼接子图块裁剪地图矢量图编辑矢量图合成图像处理矢量化

图6-3:地图信息处理流程图

在扫描后处理中,需要进行栅格转矢量的运算,一般称为扫描矢量化过程。扫描矢量化可以自动进行,但是扫描地图中包含多种信息,系统难以自动识别分辨(例如,在一幅地形图中,有等高线、道路、河流等多种线地物,尽管不同地物有不同的线型、颜色,但是对于计算机系统而言,仍然难以对它们进行自动区分),这使得完全自动矢量化的结果不那么“可靠”,所以在实际应用中,常常采用交互跟踪矢量化,或者称为半自动矢量化。

将栅格图像转换为矢量地图一般需要以下一系列步骤[Musavi 1988]: 1)图像二值化(Threshold)

图像二值化用于从原始扫描图像计算得到黑白二值图像(Binary Image),通常将图像上的白色区域的栅格点赋值为0;而黑色区域为1,黑色区域对应了要矢量化提取的地物,又称为前景。

2)平滑(Smooth)

图像平滑用于去除图像中的随机噪声,通常表现为斑点。 3)细化

细化将一条线细化为只有一个像素宽,细化是矢量化过程中的重要步骤,也是矢量化的基础。

4)链式编码

链式编码将细化后的图像转换成为点链的集合,其中每个点链对应于一条弧段。 5)矢量线提取

将每个点链转化成为一条矢量线。每条线由一系列点组成,点的数目取决于线的弯曲程度和要求的精度。

除了上述五个步骤以外,还需要一些处理以方便图像矢量化过程,如图像拼接和剪裁等等,下面对这些操作以及相关算法进行描述。

1.4.2图像拼接/裁剪

1)图像拼接

以两相邻地图图像的部分重叠区为基础,把它们合成为一幅整图的过程叫做图像拼接,分上下拼接和左右拼接。以左右拼接为例,取左图右边缘一个矩形区域A,取右图左边缘一个矩形区域B,如果A和B有一定的重叠区,可以利用计算机实现自动的匹配,其拼接算法如下:

(1.1)由A中右侧边缘从右至左依次取若干个列L1(O),L1(1),?,L1(n),以各列内像素灰度的长度序列为特征向量,分别求出以上各列的特征向量V1(O),V1(1),…,V1(n)。

(2.2)自动拼接 即由B中左侧从左至右依次取若干列L2(n),L2(n-1),?,L2(O),以各列内像素灰度的长度序列为特征向量,分别求出以上各列的特征向量V2(n):V2(n-1),…,V2(O)。若向量序列[V1(O);V1(1),?,V1(n)]和[V2(O),V2(1),?,V2(n)]匹配,则转向步骤4。

(2.3)人工拼接 即固定A,通过人机交互控制B以一定步长上下左右移动,直到A和B重叠区对齐为止。

(2.4)根据步骤2匹配情况或步骤3的偏移情况对两相邻地图图像进行修正和合成。 2)图像裁剪

把一幅图像裁成两两相邻的规则图块的过程称为地图裁剪。图像裁剪非常简单,实际应用中,可以根据不同的硬件配置确定采用和不采用图像裁剪技术。

1.4.3 图像细化预处理二值图像平滑

在将地图扫描或摄像输入时,由于线不光滑以及扫描、摄像系统分辨率的限制,使得一些曲线目标带来多余的小分支(即毛刺噪声);此外,还有孔洞和凹陷噪声,如图6-4所示。如果不在细化前去除这几种噪声,就会造成细化误差和失真,这样会最终影响地图跟踪和矢量化。曲线目标越宽,提取骨架和去除轮廓所需的次数也越多,因此噪声影响也越大。

图6-4:扫描图像的“毛刺”和“凹陷孔洞”

为了去除毛刺噪声的影响,可以采用如图5所示的3×3模板进行处理。处理的过程是:按点阵格式扫描图像上每一像素,只要图像相应区域与图6-5中的模板(包括其三次900旋转所形成的模板)匹配,则判定为毛刺,对应于模板中心的像素数值变为O。根据需要可进行多次这种匹配运算。

0 0 0 1 0 0 Ⅹ Ⅹ Ⅹ 图6-5:去毛刺模板,X为任意数值

为了去除孔洞及凹陷噪声,我们采用如图6-6所示的模板进行处理,只要图像对应区域与该模板(包括其三次90O旋转)匹配,则区域中心点数值变为1。

X 1 1 0 X 1 Ⅹ Ⅹ Ⅹ 图6-6:去孔洞凹陷模板

总之,通过以上两种平滑处理,基本上消除了毛刺和孔洞凹陷噪声的影响,为进一步进行细化处理打下了基础。

1.4.4图像细化(Thinning)

细化算法对二值图像进行处理,得到细化后的图像。线细化是处理包含线状地物二值图

像的一种重要技术,在地图扫描处理中,由于地图上主要信息是不同粗细和不同形状的线,必须首先进行线细化,以准确、有效地提取这些线信息,并进一步完成跟踪矢量化。

线细化,就是不断去除曲线上不影响连通性的轮廓像素的过程,对细化的一般要求是: ? 保证细化后曲线的连通性 ? 细化结果是原曲线的中心线 ? 保留细线端点 根据各种不同的应用,目前已经提出了许多线细化算法,如内接圆法、经典算法、异步算法、快速并行算法及并行八边算法等,不同的算法在处理速度和效果上各有其特点。

下面介绍一个常用的细化算法,其它算法基本是此算法的改进。

首先介绍几个相关的概念和符号。对于二值栅格图像中每个像素点p,以及该像素直接相邻的8个像素点(图6-7),令: p

图6-7:像素周围的8个直接相邻像素

1)N(p)为p的邻点的数值的和;

2)图像像素联接数T(p),如果旋转着看像素周围的点,T(p)就是p周围8个点从0变成1的次数,它反映了像素邻点的联接的块数(图6-8)。

3)pW,pE,pS,pN分别指像素左侧、右侧、下边、上边邻点的数值。

1 (a)T=0 1 1 1 1 1 (d)T=1 1 1 1 1 1 (g)T=2 1 1 1 1 1 1 1 1 1 1 1 (b)T=0 1 1 1 (e)T=2 1 1 (h)T=3 1 1 1 1 1 1 1 1 (c)T=1 1 (f)T=2 1 (i)T=4 1 1 1 1

图6-8:像素联结数

算法步骤如下[Zhang-Suen,1984]:

1:对于栅格图像中的每个点p,进行如下操作:

如果2?N(p)?6并且T(p)=1并且pNpSpE=0并且pWpEpS=0 则标志p点;

2:将所有被标志的栅格点赋值为0,如果没有被标志的点,则算法结束; 3:对于栅格图像中的每个点p,进行如下操作:

如果2?N(p)?6并且T(p)=1并且pNpSpW=0并且pWpEpN=0 则标志p点;

4:将所有被标志的栅格点赋值为0,如果没有被标志的点,则算法结束; 5:转到第一步。

图6-9显示了采用该算法细化的过程和结果。

图6-9:线状地物的细化

1.4.5链码(弗里曼码)

链码是由弗里曼(Freeman)提出的用曲线出发点坐标和线的斜率来描述二值线图形的一种方法。图6-10(a)所示是链码的八个方向及它们的序号。图6-10(b)的细线的链码为(3,0)21100066567,其中(3,0)为起始点坐标,之后的数值序列描述了方向。

任意一条细线都可用链码序列表示为下式:

C=a1a2...an,0≤ai≤7 如果始点a1和终点an重合,则说明曲线是闭合的。 3452p6107012345(a)(b)

图6-10:链码及其对细线的表示 (a):链码的8个方向;(b)细线

1.4.5矢量线生成

扫描矢量化的最后一步是生成矢量线,可以很方便地将链式编码的每一条链转换成为一条矢量线。自然地,弯曲的矢量线比直线需要更多的点,这还取决于要求的精度。在矢量线生成过程中,可以使用Douglas-Peucher算法。

目前,自动扫描矢量化还不是完全可靠的,为了提高其可靠性,需要在模式识别方面做出更多的研究。

2.空间数据录入后的处理

2.1图形坐标变换

在地图录入完毕后,经常需要进行投影变换,得到经纬度参照系下的地图。对各种投影进行坐标变换的原因主要是输入时地图是一种投影,而输出的地图产物是另外一种投影。进行投影变换有两种方式,一种是利用多项式拟合,类似于图像几何纠正;另一种是直接应用投影变换公式进行变换。

2.1.2基本坐标变换

在投影变换过程中,有以下三种基本的操作:平移、旋转和缩放。 1)平移

平移是将图形的一部分或者整体移动到笛卡尔坐标系中另外的位置(图6-11-a),其变换公式如下:

X’=X+Tx Y’=Y+Ty 2)缩放

缩放操作可以用于输出大小不同的图形(图6-11-b),其公式为: X’=XSx Y’=YSy 3)旋转

在地图投影变换中,经常要应用旋转操作(图6-11-c),实现旋转操作要用到三角函数,

*

假定顺时针旋转角度为θ,其公式为:

X’=Xcosθ+Ysinθ Y’=-Xsinθ+Ycosθ X方向Y方向(a)平移

*

公式同“空间参照系统和地图投影”一章的坐标旋转公式,顺时针旋转图形相当于逆时针旋转坐标系。


06 空间数据获取与处理(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:用计算器探索规律

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: