万事开头难 中国俗语 第六章空间数据获取 导读:空间数据获取是地理信息系统建设首先要进行的任务,它可以有多种实现方 式包括数据转换、遥感数据处理以及数字测量等等,其中已有地图的数字化录入, 是目前被广泛采用的手段,也是最耗费人力资源的工作。在GS中,录入的内容包 括空间信息和非空间信息,前者是录入的主体。目前,空间信息的录入主要有两种 方式,即手扶跟踪数字化和扫描矢量化,本章具体介绍了两种方式,以及相关的算 法,如曲线近似拟合,栅格图形细化跟踪等。 在图形数据录入完毕后,需要进行各种处理,包括坐标变换、拼接等等,其中最重 要的是建立拓扑关系。在拓扑建立过程中,需要先对各种错误修改,本章描述了各 种具体的错误情形,最后则介绍了多边形自动拓扑生成算法。 1.地图数字化 1.1概述 无论古代、现代还是将来,地图总是重要的信息形式。在计算机图形图像技术应用于地 图制作之前,各部门一般都使用纸质地图或工程图纸,纸图在查阅、计算距离和标注地名符 号等方面都是人工操作;另外不能对一幅纸地图进行修改、缩小比例和分层读图,至于地图 局部放大只能借助于放大镜,被放大的区域很小且操作不方便。 随着技术的发展,人们对地图的要求进一步提高。由于传统纸地图效率、速度和精度很 低,因此难以适应现代和未来科技发展。而通过GIS工具,可以把纸地图经过一系列处理而 转换成可以在屏幕上显示的电子化地图,可以满足人们使用地图的新的要求。为了讨论问题 方便,将矢量电子地图定义如下 当纸地图经过计算机图形图像系统光一一电转换量化为点阵数字图像,经图像处理和曲 线矢量化,或者直接进行手扶跟踪数字化后,生成可以为地理信息系统显示、修改、标注 漫游、计算、管理和打印的矢量地图数据文件,这种与纸地图相对应的计算机数据文件称为 矢量化电子地图。这种地图工作时需要有应用软件和硬件系统的支撑。对矢量化地图的操作 是以人机交互方式,通过GIS应用软件对硬件设备的控制来实现的。 在硬件系统及相应的地理信息系统软件支持下,矢量电子地图与纸地图相比有如下优 计算距离和标注地名符号快速准确; 可对地图局部放大、全图缩小和移动显示、漫游功能很强; 分层显示地图(当对地图上各种信息分不同层归类存放后,则可以显示某些层,关闭 不显示的层); 可以以图元为单位进行信息编缉修改,人机交互画线标注符号文字,删除地图上多余 的信息
万事开头难。 中国俗语 第六章 空间数据获取 导读:空间数据获取是地理信息系统建设首先要进行的任务,它可以有多种实现方 式包括数据转换、遥感数据处理以及数字测量等等,其中已有地图的数字化录入, 是目前被广泛采用的手段,也是最耗费人力资源的工作。在 GIS 中,录入的内容包 括空间信息和非空间信息,前者是录入的主体。目前,空间信息的录入主要有两种 方式,即手扶跟踪数字化和扫描矢量化,本章具体介绍了两种方式,以及相关的算 法,如曲线近似拟合,栅格图形细化跟踪等。 在图形数据录入完毕后,需要进行各种处理,包括坐标变换、拼接等等,其中最重 要的是建立拓扑关系。在拓扑建立过程中,需要先对各种错误修改,本章描述了各 种具体的错误情形,最后则介绍了多边形自动拓扑生成算法。 1.地图数字化 1.1 概述 无论古代、现代还是将来,地图总是重要的信息形式。在计算机图形图像技术应用于地 图制作之前,各部门一般都使用纸质地图或工程图纸,纸图在查阅、计算距离和标注地名符 号等方面都是人工操作;另外不能对一幅纸地图进行修改、缩小比例和分层读图,至于地图 局部放大只能借助于放大镜,被放大的区域很小且操作不方便。 随着技术的发展,人们对地图的要求进一步提高。由于传统纸地图效率、速度和精度很 低,因此难以适应现代和未来科技发展。而通过 GIS 工具,可以把纸地图经过一系列处理而 转换成可以在屏幕上显示的电子化地图,可以满足人们使用地图的新的要求。为了讨论问题 方便,将矢量电子地图定义如下: 当纸地图经过计算机图形图像系统光——电转换量化为点阵数字图像,经图像处理和曲 线矢量化,或者直接进行手扶跟踪数字化后,生成可以为地理信息系统显示、修改、标注、 漫游、计算、管理和打印的矢量地图数据文件,这种与纸地图相对应的计算机数据文件称为 矢量化电子地图。这种地图工作时需要有应用软件和硬件系统的支撑。对矢量化地图的操作 是以人机交互方式,通过 GIS 应用软件对硬件设备的控制来实现的。 在硬件系统及相应的地理信息系统软件支持下,矢量电子地图与纸地图相比有如下优 点: .计算距离和标注地名符号快速准确; .可对地图局部放大、全图缩小和移动显示、漫游功能很强; .分层显示地图(当对地图上各种信息分不同层归类存放后,则可以显示某些层,关闭 不显示的层); .可以以图元为单位进行信息编缉修改,人机交互画线标注符号文字,删除地图上多余 的信息;
可以通过计算机网络进行电子地图传递,提供信息共享,传递的速度快,保密性强 如果能有效解决地图符号自动分割和识别问题,则能实现地图的智能矢量化。这里智 能化是指自动矢量化和自动标注符号,最佳路径优化选择和自动跟踪目标等 矢量电子地图与点阵地图图像相比有如下优点: 相同信息量下前者的文件相对要小得多,图越复杂表现越明显; 前者可以以图元为单位进行信息编缉修改删除,人机交互画线标注符号文字:后者只 能以像素为基本单位(如矩形图像块)进行拷贝,移动和删除,即它的编辑功能很差 前者可对所有图元分层显示,后者只能做到对整图某区域(矩形区)的开窗显示控制 1.2地图数据类型 为地图自动制图目的所搜集的上述资料,要适应计算机处理的需要,必须同时考虑通过 这些资料,最后能获取各种不同性质的地图数据。 为此,可以定义地图数据是载荷地理信息的数字集合。它们应指被输入到某种计算机系 统中进行处理,必要时可重新生成人的视觉可以感受的地理信息。在这一层意义上,地图数 据可以分为: 1)空间数据(或图形数据) 空间数据是构成地图内容要素的几何图形,例如地图上的井、山峰、灯塔、河流、道路、 等值线、湖泊、森林界线和土壤类型界线等。为表示这些要素在二维平面上空间图形的定位 特征,常用一对平面直角坐标(x,)来表示,这种地图数据称为矢量数据:或用其通过栅 格单元的左下角坐标(行和列)来表示,称此为栅格数据。 地图要素图形大致可以分为点、线、面三种基本类型。 面—一可由环绕它们的线表示;也可以由其区域内的点表示 线一一可离散化成为点的集合 而点则能用一对平面坐标系中的坐标来确定 在实际应用中,仅有坐标数据是不够的,必须依照不同地图要素的意义,通过特别的编 码加以区别。 2)语义数据(属性数据) 语义数据又称为非几何数据,包括定性数据和定量数据。定性数据用来描述要素的分类 或对要素进行标名。定量数据是说明要素的性质、特征或强度的,例如距离、面积、人口、 产量、收人、流速,以及温度和高程等 对于语义数据,基本上是一个地理编码问题。以科学的分类分级系统为基础,对地理环 境中各基本实体及其联系进行编码,以便唯一地对某一系统中所有地图要素进行认别和处 理,这种功能不仅在用户环境中而且在计算机系统内也是十分重要的。 当前,要为满足各方面全部需求而建立一种通用的编码是不可能的。因此,最现实的是 硏制多样性编码满足各部门的不冋需要,同时兼顾符合建立数据库的规定。一般来说编码的 一些基本要求包括: (2.1)要素类别一一如地名,实体类型及等级等 (2.2)要素特征(属性)一一每一要素可具有与它有联系的大量的属性值,它承载关 于要素特征的信息 (2.3)作用范围的描述一一例如,一个区域的土壤类型; (2.4)地理定义一一在某些情况下编码可以是一个实体集合的间接参考,而集合中的 每一个实体也会被它自身的地理代码所说明,如水系、地质层的编码 在GIS数据录入过程中,空间数据的录入更为重要,因为处理空间数据和空间信息正是 GIS的核心功能。与属性数据录入相比,空间数据录入的工作量更大,并且需要GIS软件工
.可以通过计算机网络进行电子地图传递,提供信息共享,传递的速度快,保密性强; .如果能有效解决地图符号自动分割和识别问题,则能实现地图的智能矢量化。这里智 能化是指自动矢量化和自动标注符号,最佳路径优化选择和自动跟踪目标等。 矢量电子地图与点阵地图图像相比有如下优点: .相同信息量下前者的文件相对要小得多,图越复杂表现越明显; .前者可以以图元为单位进行信息编缉修改删除,人机交互画线标注符号文字;后者只 能以像素为基本单位(如矩形图像块)进行拷贝,移动和删除,即它的编辑功能很差; .前者可对所有图元分层显示,后者只能做到对整图某区域(矩形区)的开窗显示控制。 1.2 地图数据类型 为地图自动制图目的所搜集的上述资料,要适应计算机处理的需要,必须同时考虑通过 这些资料,最后能获取各种不同性质的地图数据。 为此,可以定义地图数据是载荷地理信息的数字集合。它们应指被输入到某种计算机系 统中进行处理,必要时可重新生成人的视觉可以感受的地理信息。在这一层意义上,地图数 据可以分为: 1)空间数据(或图形数据) 空间数据是构成地图内容要素的几何图形,例如地图上的井、山峰、灯塔、河流、道路、 等值线、湖泊、森林界线和土壤类型界线等。为表示这些要素在二维平面上空间图形的定位 特征,常用一对平面直角坐标(X,Y)来表示,这种地图数据称为矢量数据;或用其通过栅 格单元的左下角坐标(行和列)来表示,称此为栅格数据。 地图要素图形大致可以分为点、线、面三种基本类型。 面——可由环绕它们的线表示;也可以由其区域内的点表示; 线——可离散化成为点的集合; 而点则能用一对平面坐标系中的坐标来确定。 在实际应用中,仅有坐标数据是不够的,必须依照不同地图要素的意义,通过特别的编 码加以区别。 2)语义数据(属性数据) 语义数据又称为非几何数据,包括定性数据和定量数据。定性数据用来描述要素的分类 或对要素进行标名。定量数据是说明要素的性质、特征或强度的,例如距离、面积、人口、 产量、收人、流速,以及温度和高程等. 对于语义数据,基本上是一个地理编码问题。以科学的分类分级系统为基础,对地理环 境中各基本实体及其联系进行编码,以便唯一地对某一系统中所有地图要素进行认别和处 理,这种功能不仅在用户环境中而且在计算机系统内也是十分重要的。 当前,要为满足各方面全部需求而建立一种通用的编码是不可能的。因此,最现实的是 研制多样性编码满足各部门的不同需要,同时兼顾符合建立数据库的规定。一般来说编码的 一些基本要求包括: (2.1)要素类别——如地名,实体类型及等级等; (2.2)要素特征(属性)——每一要素可具有与它有联系的大量的属性值,它承载关 于要素特征的信息; (2.3)作用范围的描述——例如,一个区域的土壤类型; (2.4)地理定义——在某些情况下编码可以是一个实体集合的间接参考,而集合中的 每一个实体也会被它自身的地理代码所说明,如水系、地质层的编码。 在 GIS 数据录入过程中,空间数据的录入更为重要,因为处理空间数据和空间信息正是 GIS 的核心功能。与属性数据录入相比,空间数据录入的工作量更大,并且需要 GIS 软件工
具的支持(利用通用的数据库软件即可以进行属性数据录入)。 1.3数字化仪数字化 1.3.1手扶跟踪数字化 尽管手扶跟踪数字化( Manual Digitising)工作量非常繁重,但是它仍然是目前最为广 泛采用的将已有地图数字化的手段 利用手扶跟踪数字化仪可以输入点地物、线地物以及多边形边界的坐标。其具体的输入 方式与地理信息系统软件的实现有关,另外一些GIS系统也支持用数字化仪输入非空间信 息,如等高线的高度,地物的编码数值等等。 手扶跟踪数字化仪的通讯和参数 手扶跟踪数字化仪是通过RS-232(串口)接口与计算机进行连接的,为了能够进行正 确的数据发送和接收,需要进行通讯参数的设置,包括波特率、数据位、校验位、停止位等 等。此外,数字化仪还包括坐标原点、分辨率、采点方式、数据格式等参数。数字化仪的参 数通常可以利用数字化板上的开关和菜单确定。为了保证数据录入的正确,必须设置数字化 软件的参数与数字化仪的一致 在进行数字化之前,首先要确定需要数字化哪些信息,在目前由于大多数GS软件对 空间数据采用分层管理,所以要确定输入哪些图层,以及每个图层包含的具体内容。另外, 由于数字化过程不可能一次完成,在两次输入之间地图的位置可能相对于数字化板发生错 动,这样前后两次录入的坐标就会偏移或旋转。解决该问题的办法就是,在每次录入之前 先输入至少三个定位点( Tick marks),或称为注册点( Register points),这些点相对于地图 的位置是固定的,这样两次输入的内容就可以根据定位点坐标之间的关系进行匹配 通常,数字化仪采用两种数字化方式,即点方式( Point mode)和流方式( Stream Mode), 点方式是当录入人员按下游标(Puck)的按键时,向计算机发送一个点的坐标。输入点状地物 要素时必须使用点输入方式;而线和多边形地物的录入可以使用点方式,在输入时,输入者 可以有选择地输入曲线上的采样点,而采样点必须能够反映曲线的特征。 流方式录入能够加快线或多边形地物的录入速度,在录入过程中,当录入人员沿着曲线 移动游标时,能够自动记录经过点的坐标。采用流方式录入曲线时,往往采集点的数目要多 于点方式,造成数据量过大,一个解决的方案是对记录的点进行实时采样,即尽管系统接收 到了点的坐标,但是可以根据采样原则确定是否记录该点。 目前大多数系统采取两种采样原则,即距离流方式( Distance stream)和时间流方式 ( Time stream)(图6-1)。 (a) 也可以在整个曲线录入完毕后,使用下面描述曲线离散化算法去掉一些非特征点
具的支持(利用通用的数据库软件即可以进行属性数据录入)。 1.3 数字化仪数字化 1.3.1 手扶跟踪数字化 尽管手扶跟踪数字化(Manual Digitising)工作量非常繁重,但是它仍然是目前最为广 泛采用的将已有地图数字化的手段。 利用手扶跟踪数字化仪可以输入点地物、线地物以及多边形边界的坐标。其具体的输入 方式与地理信息系统软件的实现有关,另外一些 GIS 系统也支持用数字化仪输入非空间信 息,如等高线的高度,地物的编码数值等等。 手扶跟踪数字化仪的通讯和参数: 手扶跟踪数字化仪是通过 RS-232(串口)接口与计算机进行连接的,为了能够进行正 确的数据发送和接收,需要进行通讯参数的设置,包括波特率、数据位、校验位、停止位等 等。此外,数字化仪还包括坐标原点、分辨率、采点方式、数据格式等参数。数字化仪的参 数通常可以利用数字化板上的开关和菜单确定。为了保证数据录入的正确,必须设置数字化 软件的参数与数字化仪的一致。 在进行数字化之前,首先要确定需要数字化哪些信息,在目前由于大多数 GIS 软件对 空间数据采用分层管理,所以要确定输入哪些图层,以及每个图层包含的具体内容。另外, 由于数字化过程不可能一次完成,在两次输入之间地图的位置可能相对于数字化板发生错 动,这样前后两次录入的坐标就会偏移或旋转。解决该问题的办法就是,在每次录入之前, 先输入至少三个定位点(Tick Marks),或称为注册点(Register Points),这些点相对于地图 的位置是固定的,这样两次输入的内容就可以根据定位点坐标之间的关系进行匹配。 通常,数字化仪采用两种数字化方式,即点方式(Point Mode)和流方式(Stream Mode), 点方式是当录入人员按下游标(Puck)的按键时,向计算机发送一个点的坐标。输入点状地物 要素时必须使用点输入方式;而线和多边形地物的录入可以使用点方式,在输入时,输入者 可以有选择地输入曲线上的采样点,而采样点必须能够反映曲线的特征。 流方式录入能够加快线或多边形地物的录入速度,在录入过程中,当录入人员沿着曲线 移动游标时,能够自动记录经过点的坐标。采用流方式录入曲线时,往往采集点的数目要多 于点方式,造成数据量过大,一个解决的方案是对记录的点进行实时采样,即尽管系统接收 到了点的坐标,但是可以根据采样原则确定是否记录该点*。 目前大多数系统采取两种采样原则,即距离流方式(Distance Stream)和时间流方式 (Time Stream)(图 6-1)。 (a) (b) * 也可以在整个曲线录入完毕后,使用下面描述曲线离散化算法去掉一些非特征点
图6-1:距离流方式和时间流方式 (a)距离流方式是当前接收的点与上一点距离超过一定阈值,才记录该点 b)采用时间流方式时,按照一定时间间隔对接收的点进行采样 采用时间流方式录入时,一个优点是当录入曲线比较平滑时,录入人员往往移动游标比 较快,这样记录点的数目少;而曲线比较弯曲时,游标移动较慢,记录点的数目就多。而采 用距离流方式时,容易遗漏曲线拐点,从而使曲线形状失真。所以在保证曲线的形状方面, 时间流方式要优于距离流方式 在实际的录入过程中,可以根据不同的录入对象选择不同的录入方式。例如,当录入地 块图时,由于其边界多为直线,并且点的数据较少,可以采用点方式录入:录入交通线时 因为要保证某些特征点位置的准确性,也可以使用点方式;而等高线的录入由于数据量大, 使用流方式可以加快录入速度 其它的矢量数据录入方式 尽管手扶跟踪数字化是目前最主要的矢量格式地理数据的录入手段,但是在某些场合 下,也可以采用其它的数据输入方式 1)其它数据转换 其它格式数据的转换包括三种情形: (1.1)其它矢量格式数据(往往是由其它GIS软件制订)的转换 (2.2)坐标数据,往往表现为关系数据库表的形式(表6-1) (2.3)位置描述信息,以关系数据表形式存取,同样可以转换为不太精确的坐标数据 (表6-2)。 表6-1:测站信息表(部分) 测站编 经度 纬度 68013344 1072 29.8 68026785 115.5 表6-2:企业员工信息表(部分) 姓名 住址 F四 河北省石家庄市 2)键盘录入: 对于数据量较小、并且已知地物精确坐标的情况下,可以采用键盘录入。此外键盘录入 也是录入属性数据的主要手段 3)鼠标录入 如果不愿意手扶跟踪数字化,而扫描矢量化又难以识别地物时,可以使用鼠标录入,通 常是将地图扫描后,作为底图显示在屏幕上,用鼠标参照底图进行采点。由于鼠标定位不如 数字化仪精确,所以一般用于输入一些示意图。 4)其它定点测量设备: 目前GPS已经成为流行的定位导航设备,它同样可以为GIS提供矢量格式的坐标数据 其它的定点测量设备包括平板测图仪等,使用这些设备,最重要的是要考虑精度问题。 1.3.2曲线离散化算法 在数字化过程中,需要对曲线进行采样简化,即在曲线上取有限个点,将其变为折线, 并且能够在一定程度上保持原有的形状。下面介绍 Douglas- Peucker算法(图6-2) 1)在曲线首尾两点A、B之间连接一条直线段AB,该直线称为曲线的弦: 2)得到曲线上离该直线段距离最大的点C,并计算其与AB的距离d 3)比较该距离与预先给定阈值ε的大小,如果小于ε,则将该直线段作为曲线的近似, 该段曲线处理完毕 )如果距离大于阈值,则用C将曲线分为两段AC和BC,并分别对两段曲线进行1-3 步的处理。 5)当所有曲线都处理完毕后,依次连接各个分割点形成的折线,即可以作为曲线的近
图 6-1:距离流方式和时间流方式 (a)距离流方式是当前接收的点与上一点距离超过一定阈值,才记录该点; (b)采用时间流方式时,按照一定时间间隔对接收的点进行采样。 采用时间流方式录入时,一个优点是当录入曲线比较平滑时,录入人员往往移动游标比 较快,这样记录点的数目少;而曲线比较弯曲时,游标移动较慢,记录点的数目就多。而采 用距离流方式时,容易遗漏曲线拐点,从而使曲线形状失真。所以在保证曲线的形状方面, 时间流方式要优于距离流方式。 在实际的录入过程中,可以根据不同的录入对象选择不同的录入方式。例如,当录入地 块图时,由于其边界多为直线,并且点的数据较少,可以采用点方式录入;录入交通线时, 因为要保证某些特征点位置的准确性,也可以使用点方式;而等高线的录入由于数据量大, 使用流方式可以加快录入速度。 其它的矢量数据录入方式: 尽管手扶跟踪数字化是目前最主要的矢量格式地理数据的录入手段,但是在某些场合 下,也可以采用其它的数据输入方式: 1)其它数据转换: 其它格式数据的转换包括三种情形: (1.1)其它矢量格式数据(往往是由其它 GIS 软件制订)的转换; (2.2)坐标数据,往往表现为关系数据库表的形式(表 6-1); (2.3)位置描述信息,以关系数据表形式存取,同样可以转换为不太精确的坐标数据 (表 6-2)。 表 6-1:测站信息表(部分) 测站编码 经度 纬度 68013344 107.2 29.8 68026785 115.5 30.2 表 6-2:企业员工信息表(部分) 姓名 住址 张三 北京市海淀区 李四 河北省石家庄市 2)键盘录入: 对于数据量较小、并且已知地物精确坐标的情况下,可以采用键盘录入。此外键盘录入 也是录入属性数据的主要手段。 3)鼠标录入: 如果不愿意手扶跟踪数字化,而扫描矢量化又难以识别地物时,可以使用鼠标录入,通 常是将地图扫描后,作为底图显示在屏幕上,用鼠标参照底图进行采点。由于鼠标定位不如 数字化仪精确,所以一般用于输入一些示意图。 4)其它定点测量设备: 目前 GPS 已经成为流行的定位导航设备,它同样可以为 GIS 提供矢量格式的坐标数据。 其它的定点测量设备包括平板测图仪等,使用这些设备,最重要的是要考虑精度问题。 1.3.2 曲线离散化算法 在数字化过程中,需要对曲线进行采样简化,即在曲线上取有限个点,将其变为折线, 并且能够在一定程度上保持原有的形状。下面介绍 Douglas-Peucker 算法(图 6-2)。 1)在曲线首尾两点 A、B 之间连接一条直线段 AB,该直线称为曲线的弦; 2)得到曲线上离该直线段距离最大的点 C,并计算其与 AB 的距离 d; 3)比较该距离与预先给定阈值ε的大小,如果小于ε,则将该直线段作为曲线的近似, 该段曲线处理完毕; 4)如果距离大于阈值,则用 C 将曲线分为两段 AC 和 BC,并分别对两段曲线进行 1-3 步的处理。 5)当所有曲线都处理完毕后,依次连接各个分割点形成的折线,即可以作为曲线的近
很明显,该算法是一个递归算法 (a) d (d) (f) 图6-2:曲线的离散算法 1.4扫描矢量化及常用算法 1.4.1扫描矢量化以及处理流程 随着计算机软件和硬件更加便宜,并且提供了更多的功能,空间数据获取成本成为GIS 项目中最主要的成分。由于手扶跟踪数字化需要大量的人工操作,使得它成为以数字为主体 的应用项目瓶颈。扫描技术的出现无疑为空间数据录入提供了有力的工具 常见的地图扫描处理的过程如图6-3所示。由于扫描仪扫描幅面一般小于地图幅面,因 此大的纸地图需先分块扫描,然后进行相邻图对接;当显示终端分辨率及内存有限时,拼接 后的数字地图还要裁剪成若干个归一化矩形块,对每个矩形块进行矢量化( vectorization) 处理后生成便于编辑处理的矢量地图,最后把这些矢量化的矩形图块合成为一个完整的矢量 电子地图,并进行修改、标注、计算和漫游等编辑处理
似。 很明显,该算法是一个递归算法。 (a) (b) (c) (d) (e) (f) A B C d 图 6-2:曲线的离散算法 1.4 扫描矢量化及常用算法 1.4.1 扫描矢量化以及处理流程 随着计算机软件和硬件更加便宜,并且提供了更多的功能,空间数据获取成本成为 GIS 项目中最主要的成分。由于手扶跟踪数字化需要大量的人工操作,使得它成为以数字为主体 的应用项目瓶颈。扫描技术的出现无疑为空间数据录入提供了有力的工具。 常见的地图扫描处理的过程如图 6-3 所示。由于扫描仪扫描幅面一般小于地图幅面,因 此大的纸地图需先分块扫描,然后进行相邻图对接;当显示终端分辨率及内存有限时,拼接 后的数字地图还要裁剪成若干个归一化矩形块,对每个矩形块进行矢量化(Vectorization) 处理后生成便于编辑处理的矢量地图,最后把这些矢量化的矩形图块合成为一个完整的矢量 电子地图,并进行修改、标注、计算和漫游等编辑处理
纸地图 扫描转换 拼接子图块 裁剪地图 矢量图编辑 矢量图合成 图像处理矢量化 图6-3:地图信息处理流程图 在扫描后处理中,需要进行栅格转矢量的运算,一般称为扫描矢量化过程。扫描矢量化 可以自动进行,但是扫描地图中包含多种信息,系统难以自动识别分辨(例如,在一幅地形 图中,有等高线、道路、河流等多种线地物,尽管不同地物有不同的线型、颜色,但是对于 计算机系统而言,仍然难以对它们进行自动区分),这使得完全自动矢量化的结果不那么“可 靠”,所以在实际应用中,常常采用交互跟踪矢量化,或者称为半自动矢量化 将栅格图像转换为矢量地图一般需要以下一系列步骤[ Musavi1988] 1)图像二值化( Threshold) 图像二值化用于从原始扫描图像计算得到黑白二值图像( Binary Image),通常将图像上 的白色区域的栅格点赋值为0:而黑色区域为1,黑色区域对应了要矢量化提取的地物,又 称为前景 2)平滑( Smooth) 图像平滑用于去除图像中的随机噪声,通常表现为斑点。 3)细化 细化将一条线细化为只有一个像素宽,细化是矢量化过程中的重要步骤,也是矢量化的 基础。 4)链式编码 链式编码将细化后的图像转换成为点链的集合,其中每个点链对应于一条弧段。 5)矢量线提取 将每个点链转化成为一条矢量线。每条线由一系列点组成,点的数目取决于线的弯曲程 度和要求的精度 除了上述五个步骤以外,还需要一些处理以方便图像矢量化过程,如图像拼接和剪裁等 等,下面对这些操作以及相关算法进行描述 1.4.2图像拼接職剪 1)图像拼接 以两相邻地图图像的部分重叠区为基础,把它们合成为一幅整图的过程叫做图像拼接 分上下拼接和左右拼接。以左右拼接为例,取左图右边缘一个矩形区域A,取右图左边缘一 个矩形区域B,如果A和B有一定的重叠区,可以利用计算机实现自动的匹配,其拼接算法 如下 (1.1)由A中右侧边缘从右至左依次取若干个列L1(0),L1(1),…,L1(n),以 各列内像素灰度的长度序列为特征向量,分别求出以上各列的特征向量V(0),V(1) 1(n) (2.2)自动拼接即由B中左侧从左至右依次取若干列L2(n),L2(n-1),…,L2(0), 以各列内像素灰度的长度序列为特征向量,分别求出以上各列的特征向量V2(n)V (n-1,…,V2(0)若向量序列(0;Ⅵ(1),…,Ⅵ(m)和2(0),2(1),… V2(n)7匹配,则转向步骤4。 2.3)人工拼接即固定A,通过人机交互控制B以一定步长上下左右移动,直到A 和B重叠区对齐为止
纸地图 扫描转换 拼接子图块 裁剪地图 矢量图编辑 矢量图合成 图像处理矢量化 图 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中的模板(包括其三次90旋 转所形成的模板)匹配,则判定为毛刺,对应于模板中心的像素数值变为O。根据需要可进 行多次这种匹配运算 00X 图6-5:去毛刺模板,X为任意数值 为了去除孔洞及凹陷噪声,我们采用如图6-6所示的模板进行处理,只要图像对应区域 与该模板(包括其三次90旋转)匹配 或中心点数值变为1。 图6-6:去孔洞凹陷模板 总之,通过以上两种平滑处理,基本上消除了毛刺和孔洞凹陷噪声的影响,为进一步进 行细化处理打下了基础 1.4.4图像细化( Thinning) 细化算法对二值图像进行处理,得到细化后的图像。线细化是处理包含线状地物二值图
(2.4)根据步骤 2 匹配情况或步骤 3 的偏移情况对两相邻地图图像进行修正和合成。 2)图像裁剪 把一幅图像裁成两两相邻的规则图块的过程称为地图裁剪。图像裁剪非常简单,实际应 用中,可以根据不同的硬件配置确定采用和不采用图像裁剪技术。 1.4.3 图像细化预处理二值图像平滑 在将地图扫描或摄像输入时,由于线不光滑以及扫描、摄像系统分辨率的限制,使得一 些曲线目标带来多余的小分支(即毛刺噪声);此外,还有孔洞和凹陷噪声,如图 6-4 所示。 如果不在细化前去除这几种噪声,就会造成细化误差和失真,这样会最终影响地图跟踪和矢 量化。曲线目标越宽,提取骨架和去除轮廓所需的次数也越多,因此噪声影响也越大。 图 6-4:扫描图像的“毛刺”和“凹陷孔洞” 为了去除毛刺噪声的影响,可以采用如图 5 所示的 3×3 模板进行处理。处理的过程是: 按点阵格式扫描图像上每一像素,只要图像相应区域与图 6-5 中的模板(包括其三次 900 旋 转所形成的模板)匹配,则判定为毛刺,对应于模板中心的像素数值变为 O。根据需要可进 行多次这种匹配运算。 0 0 0 0 1 0 Ⅹ Ⅹ Ⅹ 图 6-5:去毛刺模板,X 为任意数值 为了去除孔洞及凹陷噪声,我们采用如图 6-6 所示的模板进行处理,只要图像对应区域 与该模板(包括其三次 90O 旋转)匹配,则区域中心点数值变为 1。 X 1 X 1 0 1 Ⅹ Ⅹ Ⅹ 图 6-6:去孔洞凹陷模板 总之,通过以上两种平滑处理,基本上消除了毛刺和孔洞凹陷噪声的影响,为进一步进 行细化处理打下了基础。 1.4.4 图像细化(Thinning) 细化算法对二值图像进行处理,得到细化后的图像。线细化是处理包含线状地物二值图
像的一种重要技术,在地图扫描处理中,由于地图上主要信息是不同粗细和不同形状的线 必须首先进行线细化,以准确、有效地提取这些线信息,并进一步完成跟踪矢量化。 线细化,就是不断去除曲线上不影响连通性的轮廓像素的过程,对细化的一般要求是 保证细化后曲线的连通性 细化结果是原曲线的中心线 保留细线端点 根据各种不同的应用,目前已经提出了许多线细化算法,如内接圆法、经典算法、异步算法、 快速并行算法及并行八边算法等,不同的算法在处理速度和效果上各有其特点 下面介绍一个常用的细化算法,其它算法基本是此算法的改进。 首先介绍几个相关的概念和符号。对于二值栅格图像中每个像素点p,以及该像素直接 相邻的8个像素点(图6-7),令: 图6-7:像素周围的8个直接相邻像素 1)M()为p的邻点的数值的和 2)图像像素联接数T⑦),如果旋转着看像素周围的点,T()就是p周围8个点从0变 成1的次数,它反映了像素邻点的联接的块数(图6-8) 3)pm,pE,ps,p分别指像素左侧、右侧、下边、上边邻点的数值 (a)T=0 (b)T=0 (c)T=1 (d)T=1 (e)T=2 (f)T=2 (g)T=2 (h)T=3 图6-8:像素联结数 算法步骤如下[ Zhang-Suen,1984] l:对于栅格图像中的每个点p,进行如下操作 如果2sNs6并且Tm)=1并且 pNPSpE=0并且 pupEP=0 则标志p点
像的一种重要技术,在地图扫描处理中,由于地图上主要信息是不同粗细和不同形状的线, 必须首先进行线细化,以准确、有效地提取这些线信息,并进一步完成跟踪矢量化。 线细化,就是不断去除曲线上不影响连通性的轮廓像素的过程,对细化的一般要求是: ⚫ 保证细化后曲线的连通性 ⚫ 细化结果是原曲线的中心线 ⚫ 保留细线端点 根据各种不同的应用,目前已经提出了许多线细化算法,如内接圆法、经典算法、异步算法、 快速并行算法及并行八边算法等,不同的算法在处理速度和效果上各有其特点。 下面介绍一个常用的细化算法,其它算法基本是此算法的改进。 首先介绍几个相关的概念和符号。对于二值栅格图像中每个像素点 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (a)T=0 (b)T=0 (c)T=1 (d)T=1 (e)T=2 (f)T=2 (g)T=2 (h)T=3 (i)T=4 图 6-8:像素联结数 算法步骤如下[Zhang-Suen,1984]: 1:对于栅格图像中的每个点 p,进行如下操作: 如果 2N(p)6 并且 T(p)=1 并且 pNpSpE=0 并且 pWpEpS=0 则标志 p 点;
2:将所有被标志的栅格点赋值为0,如果没有被标志的点,则算法结束 3:对于栅格图像中的每个点p,进行如下操作 如果2sNs6并且Tm)=1并且 pNPSpH=0并且pppN=0 则标志p点 4:将所有被标志的栅格点赋值为0,如果没有被标志的点,则算法结束 5:转到第一步。 图6-9显示了采用该算法细化的过程和结果。 ■■■■□■ 图6-9:线状地物的细化 1.4.5链码(弗里曼码) 链码是由弗里曼( Freeman)提出的用曲线出发点坐标和线的斜率来描述二值线图形的 种方法。图6-10(a)所示是链码的八个方向及它们的序号。图6-10(b)的细线的链码 为(3,0)2110006567,其中(3,0)为起始点坐标,之后的数值序列描述了方向 任意一条细线都可用链码序列表示为下式: 0≤a;≤7 如果始点a1和终点an重合,则说明曲线是闭合的。 0 p 5 6 7 2345 图6-10:链码及其对细线的表示 (a):链码的8个方向:(b)细线 1.4.5矢量线生成 扫描矢量化的最后一步是生成矢量线,可以很方便地将链式编码的每一条链转换成为 条矢量线。自然地,弯曲的矢量线比直线需要更多的点,这还取决于要求的精度。在矢量线 生成过程中,可以使用 Douglas-Peucher算法。 目前,自动扫描矢量化还不是完全可靠的,为了提高其可靠性,需要在模式识别方面做 出更多的研究
2:将所有被标志的栅格点赋值为 0,如果没有被标志的点,则算法结束; 3:对于栅格图像中的每个点 p,进行如下操作: 如果 2N(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 重合,则说明曲线是闭合的。 3 5 6 7 4 p 0 2 1 (a) (b) 0 1 2 3 4 5 图 6-10:链码及其对细线的表示 (a):链码的 8 个方向;(b)细线 1.4.5 矢量线生成 扫描矢量化的最后一步是生成矢量线,可以很方便地将链式编码的每一条链转换成为一 条矢量线。自然地,弯曲的矢量线比直线需要更多的点,这还取决于要求的精度。在矢量线 生成过程中,可以使用 Douglas-Peucher 算法。 目前,自动扫描矢量化还不是完全可靠的,为了提高其可靠性,需要在模式识别方面做 出更多的研究
2.空间数据录入后的处理 2.1图形坐标变换 在地图录入完毕后,经常需要进行投影变换,得到经纬度参照系下的地图。对各种投影 进行坐标变换的原因主要是输入时地图是一种投影,而输出的地图产物是另外一种投影。进 行投影变换有两种方式,一种是利用多项式拟合,类似于图像几何纠正:另一种是直接应用 投影变换公式进行变换 2基本坐标变换 在投影变换过程中,有以下三种基本的操作:平移、旋转和缩放。 1)平移 平移是将图形的一部分或者整体移动到笛卡尔坐标系中另外的位置(图6-11-a),其变 换公式如下 r=X+T =}+7 2)缩放 缩放操作可以用于输出大小不同的图形(图6-11-b),其公式为: r=ks y=s 3)旋转 在地图投影变换中,经常要应用旋转操作(图6-11-c),实现旋转操作要用到三角函数, 假定顺时针旋转角度为θ,其公式为: r=kcos 8+sin B y=-Xsin b+lcos e 方向 泌化 Y方向 (a)平移 公式同“空间参照系统和地图投影”一章的坐标旋转公式,顺时针旋转图形相当于逆时针旋转坐标系
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)平移 * 公式同“空间参照系统和地图投影”一章的坐标旋转公式,顺时针旋转图形相当于逆时针旋转坐标系