2.栅格与矢量数据的转换
1)矢量向栅格转换
从点、线、面实体转化为规则单元,这个过程叫栅格化。首先要选择好单元的大小和外形,然后检测实体是否落在这些单元上,记录存在或空缺,以及其它属性。一般根据行或列方向上的扫描来完成,生成一个二维阵列。栅格化过程通常包括以下三个基本步骤:
(1)将点和线实体的角点的笛卡儿坐标转换到预定分辨率和已知位置值的矩阵中;
(2)利用单根扫描线(沿行或沿列)或一组相连接的扫描线去测试线性要素与单元边界的交叉点,并记录有多少个栅格单元穿过交叉点;
(3)对多边形而言,测试过角点后,剩下线段处理,这时只要利用二次扫描就可以知道何时到达多边形的边界,并记录其位置与属性值。
2)栅格向矢量转换
从栅格单元转换到几何图形的过程,通常称为矢量化。矢量化过程要保证以下两点:①拓扑转换,即保持栅格表示出的连通性与邻接性;②转换物体正确的外形。矢量化过程中,遇到某个单元的值与周围均不同,则该单元代表一个点;如果具有某一属性值的单元是连续的,可以将它们搜索出来,并细化处理,取中间的单元连成的位置作为一条线。对面状图形的处理则有些复杂,先要将所有单元编码,然后将具有同一属性值的单元归为一类,这时检测两类不同属性值的边界作为多边形的一条边,沿左方向或右方向,用八邻域算子顺序搜索出一条完整边界,然后标注内点。通过以上处理,即可完成点、线、面的矢量化。
栅格格式向矢量格式转换通常包括以下四个基本步骤:
(1)多边形边界提取:采用高通滤波将栅格图像二值化或以特殊值标识边界点;
(2)边界线追踪:对每个边界弧段由一个结点向另一个结点搜索,通常对每个已知边界点需沿途进入方向的其他7个方向搜索下一个边界点,直到连成边界弧段;
(3)去除多余点及曲线圆滑:由于搜索是逐个栅格进行的,必须去除由此造成的多余点记录,以减少数据冗余;搜索结果,曲线由于栅格精度的限制可能不够圆滑,需采用一定的插补算法进行光滑处理,常用的算法有:①线性迭代法;②分段三次多项式插值法;③样条函数插值法等;
(4)拓扑关系生成:对于矢量表示的边界弧段数据,判断其与原图上各多边形的空间关系,以形成完整的拓扑结构并建立与属性数据的联系。