阅读:1554回复:2
[转帖]GIS、RS数据格式转换新技术研究
<TABLE width="90%" border=0>
<TR> <TD><FONT size=3> <P align=center></FONT><FONT size=5><b>GIS、RS数据格式转换新技术研究</b></FONT><FONT size=3></P> <P align=center>张占月</P> <P align=left><b>摘 要 </b>矢量格式数据和栅格格式数据的相互转换技术是实现GIS、RS结合的关键。栅格格式数据转换为矢量格式数据时必须提取原图像上包含的拓扑信息。通过对传统区域跟踪技术的改进,本文提出了一种单边界搜索算法,能够快速、准确地实现这一转换。这种算法的关键技术是起始点的确定和区域间相邻关系的建立。 <b>关键词 </b>数据格式转换; 单边界搜索算法; 区域跟踪; 空间拓扑关系<b></P><FONT size=4> <P align=center><FONT face="Times New Roman">The New Research of GIS,RS Data Format Conversion Technique</FONT> </P> <P align=center></FONT></b><FONT face="Times New Roman">Zhang Zhanyue</FONT></P> <P align=center><FONT face="Times New Roman">(Department of Test Engineering,Beijing</FONT> <FONT face="Times New Roman">101416,china)</FONT></P> <P align=left><b><FONT face="Times New Roman">Abstract</FONT></b> <FONT face="Times New Roman">The key to realize the combining process of GIS and RS is the technique of format conversion between vector data and grid data.Is is necessary to abstract the topology information from preprocessed image while converting grid data into vector data.By way of improveing the traditional region tracing algorithm,the paper put forward a kind of algorithm named as Single Boundary Searching Algorithm(SBSA),which can finish such data conversion quickly and exactly.The key techniques of the algorithm is searching starting point and obtaining neighbor relationships between regions. <b>Key Words</b></FONT> <FONT face="Times New Roman">data format conversion; single boundary searching algorithm; region tracing; space topology relationship</FONT></P> <P align=left></FONT><FONT size=4><b><b>1 概 述</b></b></FONT><FONT size=3></P> <P> 地理信息系统(GIS,geographical information system)、遥感(RS,remote sensing)和计算机辅助制图技术一起被称作现代地理学的支撑技术手段。60年代初,随着遥感技术由航空领域进入航天领域,地理信息系统和遥感技术走上了相互结合的道路。随着遥感技术的飞速发展,人们获取的遥感数据量越来越庞大,数据更新频率越来越高。为了有效地利用这些数据,需要有对遥感信息进行有效控制和处理的管理系统。该系统应具备以下功能:降低数据的冗余度和不一致性;为专题应用提供各种数据的综合; 有效地进行数据更新;通过查询数据库获取并直观显示不能由原始数据直接得出的信息。以空间数据为操作对象的地理信息系统成功地提供了上述服务。 实现地理信息系统和遥感技术相结合的主要问题是二者数据获取和存储格式不相同。遥感数据来自遥感器以唯一格网方式收集的地面数据,所有信息都以像元集合的形式来组织,目标对象间的位置拓扑关系隐含于像元行列之中;地理信息系统则主要采用矢量数据结构,精度高,但不直观。为了实现数据的检索、查询和综合处理,矢量数据结构中包含目标对象(区域)间空间拓扑关系的直观表示。二者的真正结合,很大程度上取决于对遥感的栅格格式数据和地理信息系统的矢量格式数据之间的相互转换的理解和概念化能力。为此人们设计了许多算法来支持这2种数据格式之间的相互转换,其中栅格格式数据到矢量格式数据的转换算法尤为困难。这类算法中比较成熟的是由任伏虎等发明的“双边界搜索算法”<SUP>[1]</SUP>。这种算法通过纪录相邻区域公共边界的信息实现了区域的矢量化转换,并同时生成了目标对象间的主要空间拓扑关系。该算法生成的数据结构的基本构成单位是曲线段,因此可以比较方便地实现矢量数据的编辑和更新操作,且数据冗余度低。但另一方面,该算法结构复杂,在拓扑关系尤其是目标对象间的包含关系生成上控制困难,影响了算法的效率。 本文提出了一种单边界搜索算法,可以自动生成区域间的位置包含关系,并可以很简单地生成区域间的相邻关系表,速度快,效率高。但该算法所用数据结构的基本单元是区域,因此存在一定的数据冗余,也给目标对象的编辑操作带来了某种不便。这种不便可以通过对象间拓扑关系的查询来去除。 <b></P> <P align=left></FONT><FONT size=4><b>2 单边界搜索算法</b></FONT></b><FONT size=3></P> <P> 单边界搜索算法是通过对传统的区域跟踪算法进行改进而形成的。在传统的区域跟踪算法中,对区域的描述由2部分组成:区域外轮廓和内部孔洞。因此运用传统的区域跟踪算法完整地跟踪一个区域有如下3个步骤: 1) 确定区域外轮廓跟踪的起始点; 2) 对区域的外轮廓进行跟踪和记录; 3) 对区域内部的所有孔洞进行扫描跟踪和记录。 单边界搜索算法发展了上述思路,它可以搜索并跟踪出一幅图像中的所有区域并生成区域间的主要空间拓扑关系,如包含、相邻等。由于算法执行的结果中包含了区域间的包含关系,因此对一个区域的描述可以进一步简化(2.2节)。 可以将图像中的所有区域按包含关系分为若干层。定义最外层区域为第一层,次外层区域为第二层,依此类推。一幅图像内区域的最高层数由图像内容决定,每一层至少包含有一个区域对象。这样,单边界搜索算法的流程可描述如下: 1) 搜索、跟踪第一层所有的区域并记录外轮廓和内部孔洞信息; 2) 根据跟踪到的孔洞信息找出下一层中未跟踪过的区域的外轮廓跟踪起始点(即找出一个新区域); 3) 跟踪找到的新区域并记录其外轮廓和内部孔洞信息; 4) 重复2)到3)步,直到该层所有区域都已被跟踪完毕; 5) 重复2)到4)步,直到整幅图像内所有区域都已被跟踪完毕。 下面详细讨论该算法的实现和空间拓扑关系的生成。 <b>2.1 目标对象间的拓扑关系 </b>为了实现数据的检索、查询、控制与处理,矢量数据中必须包含目标对象间空间拓扑关系的直接表示。 3种典型的空间拓扑信息如图1所示。</FONT></P></TD></TR></TABLE> <P align=center><IMG src="http://www.sdinfo.net.cn/rsinfo/newarticle/rstogis/104.gif"></P> <TABLE width="90%" border=0> <TR> <TD> <P align=center><FONT size=3>(a) 相邻信息 (b) 包含信息 (c)节点信息</P> <P align=center>图1 3种典型的空间拓扑信息示意图</FONT></P> <P align=left><FONT size=3>节点是2个以上相邻目标对象的交汇处。文献[1]列举了图像上节点对应的8种结构,如图2所示。</FONT></P></TD></TR></TABLE> <P align=center><IMG src="http://www.sdinfo.net.cn/rsinfo/newarticle/rstogis/105.gif"></P> <TABLE width="90%" border=0> <TR> <TD> <P align=center><FONT size=3>图 2 节点对应的8种结构</P> <P> 图中a、b、c、d表示对应像素点的不同颜色(灰度)值。本文利用节点信息检取目标对象间的相邻关系。</P> <P align=left><b>2.2 矢量数据结构编码</b> 矢量数据对象主要包括点、线、区域3种实体。遥感图像的基本构成单位是像元。像元实际上是遥感器对某一地理区域探测结果的综合反映,本身并不能包含矢量数据中的点、线信息。因此,将图像看作仅由区域实体构成是恰当的(尽管有的区域仅包含一个像元)。本文定义了一种简单明了的矢量数据结构,如图3所示。</FONT></P> <P align=center><IMG src="http://www.sdinfo.net.cn/rsinfo/newarticle/rstogis/106.gif"></P> <P align=left><FONT size=3><b>2.3 单个区域跟踪算法 </b>单个区域跟踪由2部分组成:确定外轮廓跟踪起始点并进行外轮廓跟踪、内部孔洞扫描与跟踪,如图5所示。</FONT></P></TD></TR></TABLE> <P align=center><IMG src="http://www.sdinfo.net.cn/rsinfo/newarticle/rstogis/108.gif"></P> <TABLE width="90%" border=0> <TR> <TD> <P align=center><FONT size=3>图 5 单个区域轮廓跟踪</FONT> </P> <P align=left><FONT size=3>2.3.1 确定外轮廓跟踪起始点并进行外轮廓跟踪 外轮廓像素可以用一个通路来遍历,并且总可以为这一遍历选择一条封闭的通路。为讨论问题简便起见,将假定一种特定的遍历形式。该遍历形式可利用一个观察者来说明。观察者沿着属于该集合的像素走,并选择最右边的像素作为所得像素,将所得像素做标记值a1,同时将检测到的点的对应链码值存入矢量文件。该遍历要求起始点在外轮廓的向下弧段上。遍历过程遇到已标记为a1的起始点则意味着跟踪的结束。为了获取目标对象(轮廓)的节点信息,本文在遍历的同时检测外轮廓像素点与相邻像素点之间的结构特性。设当前外轮廓像素点为P,则为提取节点信息需要检测的四个窗口如图4所示:</FONT></P></TD></TR></TABLE> <P align=center><IMG src="http://www.sdinfo.net.cn/rsinfo/newarticle/rstogis/107.gif"></P> <TABLE width="90%" border=0> <TR> <TD> <P align=center><FONT size=3>图 4 节点信息检测窗口</FONT></P> <P><FONT size=3> 一旦发现与节点结构(图2)相同的像素窗口,就意味着发现了新的节点。将节点信息纪录到矢量文件中去,并同时将节点处四个像素做标记,以后不再对其进行节点检测。 2.3.2 内部孔洞扫描与跟踪 内部孔洞跟踪的起始点也要位于孔洞轮廓的向下弧段上。设区域外轮廓跟踪的结果(链码序列)都依次放入一个队列Q中。为找出内部孔洞的位置,需结合使用一个搜索算法。搜索算法首先对Q中的内容进行检测,如果找到一个位于向下弧段上的点,就开始向右搜索,直至搜索到孔洞的起始点或外轮廓的另一边为止<SUP>[2]</SUP>。孔洞跟踪过程除跟踪方向与外轮廓跟踪相反外其余操作相同。本文将孔洞信息放入一个临时存储区S中,以起始下一层的区域外轮廓跟踪过程。当下一层区域的外轮廓跟踪过程结束后,S中的内容将被新一层的区域孔洞信息所取代。 <b>2.4 整幅图像内所有区域的跟踪算法</b> 在前述单个轮廓跟踪算法的基础上,全部区域的跟踪问题也就归结为下一个要跟踪区域外轮廓的起始点确定问题。起始点的确定可分为2种情况。当需要跟踪的区域属于第一层时,则通过对已跟踪过的区域外轮廓链码序列进行检测来寻找该外轮廓的向上弧段。对紧靠该向上弧段右侧的点进行检测,若发现了一个未标记为轮廓点的像素点(其值不等于a1),则该点就是所需要的下一区域外轮廓跟踪的起始点。当需跟踪的区域为第二层或更高层时,可以通过上一层区域的孔洞信息来确定新区域外轮廓跟踪的起始点。检测S中的孔洞链码序列,若发现了向上弧段,就开始检查紧靠该弧段右侧的点,若该点未被标记为轮廓点(其值不等于a1),则该点就起始了一个新的区域外轮廓的跟踪。整幅图像第一个区域外轮廓的跟踪起始点可固定为(0,0)点。当检测不到符合要求的区域外轮廓跟踪起始点时,整幅图像的区域跟踪过程也就结束了。</FONT></P></TD></TR></TABLE> <TABLE width="90%" border=0> <TR> <TD><FONT size=3> <P align=left><b>2.5 区域间拓扑关系的确立</b> 本文只考虑建立区域对象间的相邻和包含2种关系。由于内层区域外轮廓起始点是由外层区域跟踪所得到的孔洞信息所确定的,所以内层区域自动获得了孔洞所在区域也就是父区域的信息,从而实现了区域对象之间包含关系的自动确立。 外轮廓跟踪过程中记录的节点信息中包含了区域的相邻信息。节点是3个或4个区域的交汇处,这种交汇表示了区域间的相邻关系。某一特定区域可以通过一个对节点信息的简单搜索得到所有与之相邻的区域。 <b></P> <P align=left></FONT><FONT size=4><b>3 结 束 语</b></FONT></b><FONT size=3></P> <P> 遥感图像的特点是细节丰富,因此一般的处理方法有很大的局限性。一般地,图像区域之间的相邻部分是两像素宽的双边界,但由于区域形状的复杂性,相邻区域的公共边界像素实际上很难确定。因此,虽然以曲线段为基本构成单位的矢量编码方式易于实现编辑、更新和维护操作,但技术难度大,对处理精度也有一定影响。本文发展的单边界区域跟踪算法克服了这一缺陷,且原理简单,易于实现,但存在一定的数据冗余。这就要求在进行数据的编辑修改操作时需同时对至少2个目标区域做相应变动。因为建立了区域间的相邻关系,使得这种由数据冗余带来的困难也可以克服了。</P> <P> 作者单位:试验工程系 北京 101416 第一作者: 男 1973年生 硕士 </P> <P align=left><b>《参考文献》</P> <P align=left></b>[1] 张超,陈丙咸,邬伦等. 地理信息系统. 北京: 高等教育出版社,1995 [2] Theo Pavlidis. 计算机图像显示和图像处理算法. 吴成柯译. 北京: 科学出版社,1987 </FONT><FONT size=4> </FONT></P></TD></TR></TABLE> |
|
1楼#
发布于:2004-10-19 20:28
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|
|
2楼#
发布于:2004-10-24 20:24
深度不够,太保守!
|
|