基于QTM双向扫描的球面Voronoi图生成算法

文档序号:9632076阅读:650来源:国知局
基于QTM双向扫描的球面Voronoi图生成算法
【技术领域】
[0001]本发明涉及基于QTM双向扫描的球面Voronoi图生成方法,属于球面Voronoi图生成技术领域。
【背景技术】
[0002]随着数字地球的提出与发展,球面Voronoi图作为一种重要的数据模型,成为GIS领域的研究热点之一,并被应用到全球空间索引、球面插值、球面动态操作等重要领域。然而,球面Voronoi生成算法在精度和效率方面存在的问题,限制了球面Voronoi图的应用。
[0003]双向扫描算法,作为一种距离变换算法,被应用于平面及球面Voronoi图的生成。它通过一个3X3的邻域模板将一个像素的信息传递给它的邻近格网,如图1所示。
[0004]扫描开始之前像素P被赋予一个空值,当进行正向扫描,即从上到下,从左到右扫描,像素P的最近种子点通过距离的计算与比较从Ql、Q2、Q3和Q4四个邻近像素的最近种子点中获得,正向扫描完成后,像素P中已保存了一个临时最近种子点;此时,再按相反的方向(从下到上,从右到左)进行扫描,反向扫描时,通过距离的计算与比较从P的临时最近种子点及Q5、Q6、Q7和Q8的最近种子点中获取P的最终最近种子点。
[0005]当双向扫描完成后,平面上每个像素都保存了一个最近种子点,此时具有相同最近种子点的像素构成了该最近种子点的Voronoi区域。
[0006]在大多数情况下,通过正向扫描和反向扫描之后,所有的像素都能够获取到正确的最近种子点;但在有些情况下部分像素可能会获取到错误的“最近”种子点,而这些错误的“最近”种子点将导致较大的Voronoi图误差,如图2所示。图2a为双向扫描后得到的Voronoi图,图2b为通过距离的计算和比较得到的正确的Voronoi图,两者对比可以看出,双向扫描后部分像素的归属是错误的,如图2c中的黑色像素。这种错误的出现,主要有以下两个方面的原因所致。
[0007](I)扫描过程中,像素没有被其最近种子点扫描到
[0008]如图3所示,像素M、N、P和Q的正确最近种子点均为种子点b,如图3a ;由于像素M、N、P和Q均位于种子点a的下方、种子点b的上方,正向扫描在到达种子点b之前就已经扫过像素M、N、P和Q,因此,正向扫描完成后这四个像素的最近种子点均为上方的种子点a,如图3b ;当反向扫描到像素M时,它的5-8四个邻近像素已经获得了正确的最近种子点C,此时像素M只能从种子点a和c的较近者中获取到其最近种子点,而获取不到正确的最近种子点(种子点b),如图3c。在正向扫描和反向扫描的整个过程中,对于像素M的距离计算与比较并没有包含其正确的最近种子点(种子点b),因此会造成错误的出现。同样,双向扫描完成后,像素N、P和Q也都没有获取到正确的最近种子点,如图3d。
[0009](2)栅格空间中Voronoi区域的不连续性
[0010]在矢量空间中,空间实体的Voronoi区域为连续的区域,但在栅格空间中可能会出现Voronoi区域不连续的情况。如图4所示,格网Q的最近种子点为b,而格网M和N的最近种子点分别为a和C,种子点b的Voronoi区域被格网M和N分割为不连续的区域。因此,格网Q无法从其邻近格网中获取到最近种子点。
[0011]除此以外,由于平面上像素的大小都是一致的,因此利用平面双向扫描算法得到的平面Voronoi图在各处精度都是均匀的;但将平面格网反投影到球面上后,从赤道到两极格网具有较大的变形,易造成Voronoi图精度的不均匀。

【发明内容】

[0012]针对上述技术问题,为解决Voronoi图精度不均勾的问题,本发明选用格网相对较为均匀的球面QTM格网作为球面Voronoi图生成的基础格网,
[0013]具体的技术方案为:
[0014]基于QTM双向扫描的球面Voronoi图生成算法,以球面QTM格网作为基础格网,对每个格网进行双周期扫描,并在扫描过程中同时考虑最近和次近种子点,具体过程为:
[0015]将球面按照QTM的方式剖分,沿0度经线剖开,按从左到右、从上到下的顺序对三角形进行编码;初始化时,将所有种子点格网的最近种子点编号赋值为自身编码,到最近种子点的距离赋值为〇;将非种子点格网的临时最近和次近种子点编号赋值为-1,到临时最近和次近种子点的距离赋值为无穷大;利用邻近搜索算法搜索并保存所有格网的邻近格网的编码,包含边邻近格网和角邻近格网的编码;
[0016]按照编码顺序,依次对球面上所有格网进行两个周期的扫描,一次正向扫描和一次反向扫描为一个周期扫描,针对每个格网进行的扫描步骤如下:
[〇〇17](1)正向扫描
[0018]按从左到右、从上到下的顺序即按照格网编码顺序对球面所有QTM格网进行扫描,对每个QTM格网扫描具体步骤如下:
[0019](a)根据当前格网即格网i的邻近格网的编码,获取邻近格网的临时最近和次近种子点,连同格网i的临时最近和次近种子点一起,组成初始种子点集合,并将该集合中的不重复且值不为-1的元素组成集合N1;邻近格网的编码在数据初始化时利用邻近搜索算法计算得到;
[0020](b)若队不为空,依次计算格网i到集合N冲所有种子点的距离;
[0021](c)通过比较从集合队中得到当前格网的临时最近和次近种子点,并保存其到最近和次近种子点的距离;
[0022](2)反向扫描
[0023]以正向扫描的结果为基础数据,按从右到左、从下到上的顺序即格网编码逆序对球面所有QTM格网进行反向扫描,除扫描顺序不同外,反向扫描与正向扫描的步骤基本相同;
[0024]依次对球面上所有格网进行两个周期的扫描,扫描完成后具有相同最近种子点的QTM格网构成该最近种子点的Voronoi区域。
[0025]本发明提供的基于QTM双向扫描的球面Voronoi图生成算法,利用QTM作为基础格网,解决了平面格网投影到球面后生成的球面Voronoi图精度不均匀的问题,该方法对格网进行两个周期的扫描,并在扫描过程中同时考虑最近和次近种子点,解决了原双向扫描算法扫描不完备的问题。
【附图说明】
[0026]图1为双向扫描算法的扫描模板。
[0027]图2为双向扫描算法出现的错误。其中图2a为双向
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1