空间数据结构转换.
矢量化
一般转化步骤
1、边界提取—二值化
一般情况下,栅格数据是按0~255的不同灰度值表达的
为了简化追踪算法,需把256个灰阶压缩为2个灰阶,即0和1两级。为
此,假设任一格网的灰度值为G(i,j),阀值为T,那么,根据下式就可 以得到二值图 1 f(i,j)>= T
G(i,j)=
0 f(i,j)<= T
以栅格行列为参考坐标轴,由多边形某点开始顺时针搜索边界线
边界上行时,边界左侧行坐标相同的栅格被减去a,
边界下行时,边界左侧行坐标相同的栅格被加上a
1、栅格化
边界代数填充算法
面的栅格化
1、栅格化
边界点跟踪算法
以多边形为单位 按顺时针方向跟踪单元格:
面的栅格化
N N
L L R N N R
1、栅格化
• ①确定栅格矩阵
Y
(0,0)
J Y max
I=(Ymax-Ymin)/dy J=(Xmax-Xmin)/dx
y
I
x
I,J为整数,尾数入上去
dx=(Xmax-Xmin)/J dy=(Ymax-Ymin)/I
X min O
X max
Y min X
1、栅格化
• ② 点的栅格化
点的变换十分简单,只要这个点落在 那个网格中,就是属于那个网格元素, 根据该点状对象的特性赋予该像元属 性值。
1、栅格化
矢量数据结构想栅格数据结构的转换
确定栅格矩阵(行列数/分辨率) 点的变换、线的变换以及多边形的变换(面的变换)
具体转换步骤:
准备好矢量数据或矢量地图; 构架一个与地图等大小的格网, 选取好适当的格网密度或 分辨率,依据范围则可以算出格网的行列数。 根据地图上的点、线、多边形相对这个格网的配置及其属 性来确定每一个项元的数值。
矢量化
一般转化步骤
3、线的简化及曲线圆滑
目的:由于搜索是逐个栅格进行的,所以弧段或多边形的数据列十分密集。为了减少存储
量,在保证线段精度的情况下可以删除部分数据点
曲线光滑:假象曲线为一组离散点,寻找形式较简单、性能良好的曲线解析式
插值方式
逼近方式
矢量化
一般转化步骤
4、拓扑关系生成
目的:判断弧段与多边形间的空间关系,以形成完整的拓扑结构并建
1、栅格化
• ④ 面的栅格化
b、多边形内部属性填充方法(基于多边形数据的栅格化方法):
内部点扩散法 射线算法
平行线扫描法与铅垂线跌落法
边界代数充填算法
边界点跟踪算法
1、栅格化
面的栅格化
内部点扩散算法—缺点
程序设计复杂,需要在栅格阵列中搜索,占用内存很大,在内存
受限时很难采用
在一定的栅格精度上,如果复杂图形的同一多边形的两条边界落
一般转化步骤
1、边界提取—线的细化
将占有多个栅格宽的图形要素缩减为只有1个像素
剥皮法:每次剥掉等于一个栅格宽的一层,最后只留下彼此连通的由单个栅格组
成的图形 剥皮法保持图像的连接性不变和关键部分
矢量化
一般转化步骤
1、边界提取—线的细化
剥皮法算法原理 剥皮法过程
矢量化
一般转化步骤
特点:计算量较大,算法比较复杂。
1、栅格化
面的栅格化
边界线的转化与线的栅格化方法相同,接下来就是属性的填充
d c
b
0
a f
1
e
填充的方法很多,关键问题是正确判断哪些栅格单元位于多边形之内,
哪些位于多边形之外。为此,多边形必须严格封闭,没有缝隙
1、栅格化Leabharlann 面的栅格化0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
如相交偶数次,则待判点在该多边形的外部 如相交奇数次,则待判点在该多边形的内部
1、栅格化
射线法—基本原理 N=0 N=2
面的栅格化
N=1 N=3
N=4
1、栅格化
射线法—特殊情况:奇异点
面的栅格化
1、栅格化
平行线扫描法与铅垂线跌落法—基本原理
Y M
面的栅格化
a R
N
b e
c d f
射线算法的改进,将射线改为沿
矢量化
一般转化步骤
2、边界追踪
目的:就是将细化处理后的栅格数据,整理为从结点出发的线段或闭
合的线条,并以矢量形式存储(坐标)
基本原理:对每个边界弧段由一个结点向另一个结点搜索,通常对每
个已知边界点需除了进入方向的其他7个方向搜索下一个边界点,直到 连成边界弧段
X ) 2 Y Y Ymax (Y .i ) 2 X X min (X . j
1、栅格化
• ①确定栅格矩阵
矢量数据转换成栅格数据后,图形的几何精度必然要降低,所以选择栅格尺寸的大小 要尽量满足精度要求,使之不过多地损失地理信息。
为了提高精度,栅格需要细化,但栅格细化,数据量将以平方指数递增,因此,精度 和数据量是确定栅格大小的最重要的影响因素。
在转换之前需要确定栅格单元的大小,栅格单元的大小又称为栅格图像的分辨率,直 接决定了栅格数据的精度
在同一个或相邻的两个栅格内,会造成多边形不连通,不能完成 多边形的填充
1、栅格化
面的栅格化
射线法
概念:射线算法,又称为检验交点数,是逐点判别数据栅格点
在某多边形之外或在多边形内来决定是否记录该点
基本原理:具体实现是由待判点向图外某点引射线,判断该射
线与某多边形所有边界相交的总次数,判断的基本原理:
1、边界提取—线的细化
骨架法:确定图形的骨架,而将非骨架上的多余栅格删除
基本原理:扫描全图,凡是像元值为1的栅格都用V值取代。V值是该栅格与北、
东和北东三个相邻栅格像元值之和,即:
保留最大V值的栅格,删去其他栅格,但必须保证连通。因最大V值的栅格只
能分布在图形的中心线、骨架上,因此选取最大值栅格的过程就是细化的过 程
I p 1 INT ymax y / dy x xmin / dx J p 1 INT
1、栅格化
• ③线的栅格化
(X1,Y1)
线是由多个直线段组成的,因此线的 栅格化的核心就是直线段如何由矢量 数据转换为栅格数据。
立与属性数据的关系
方法:参阅上一讲
THANKS
谢 谢 聆 听
主讲人:魏瑶 陕西铁路工程职业技术学院
栅格阵列列方向或行方向扫描线, 判断与射线算法相似。省去了计 算射线与多边形边界交点的大量 运算,大大提高了效率。又称为 扫描算法
g X
1、栅格化
边界代数填充算法
面的栅格化
基本思想:基于积分思想的矢量格式向栅格格式转换算法,它适合于记录
拓扑关系的多边形矢量数据转换为栅格结构
实现过程:
初始化的栅格阵列各栅格值为零
•
Y
假定一线段两端点之间经过若干个网格元 素(至少一个),两端点坐标为(X1,Y1), (X2,Y2)
•
(X2,Y2) X
1、栅格化
• ④ 面的栅格化
a、 基于弧段数据的栅格化方法:
1. 按行或列做中心扫描线
2. 求交点栅格坐标的行列值 3. 判断交点左右多边形数值 4. 交点排序并逐段生成栅格数据
核心技能实训
空间数据结构转换
主讲人:魏瑶 陕西铁路工程职业技术学院
2017.1.16
CONTENTS
目录
01
栅格化
02
矢量化
01
栅格化
1、栅格化
矢量数据结构想栅格数据结构的转换
矢量 栅格化
将数据用矢量数字化的方法输入计算机或以矢量的方式存 在计算机中。如:行政边界、交通干线、土地利用类型等 表现为点、线、多边形数据
矢量化
一般转化步骤
边界提取
边缘锐化(遥感影像或分类栅格,面状地物)
线的细化(扫描矢量图,线状地物) 二值化
边界追踪 拓扑关系生成 线的简化及曲线
矢量化
一般转化步骤
1、边界提取—边缘提取(数字图像处理)
原始图片
Lenna的Prewitt边界
Lenna的Sobel边界
矢量化
L
L L N N N R
R
R
上行L; 横向N; 下行R(如果为岛屿,则相反)
逐行扫描,充填LR间的单元格
02
矢量化
矢量化
定义与要求
定义及要求:从栅格单元转换到几何图形的过程称为矢量化,矢量化过程要保证以下两
点要求:
拓扑转换,即保持栅格表示出的连通性与邻接性 转换物体正确的外形