3.8 四叉树数据结构--2019.6.29--zyy

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四叉树数据结构武汉大学遥感信息工程学院余长慧

常规四叉树线性四叉树

四叉树分割的基本思想

1如果某个子区的所有格网都含有相同的值,则子区不再分割;

否则,把子区再分割成四个子区域;把一副图像或一副栅格地图(2k x2k ,k>1)等分成四部分,逐块检查其格网值。

递归分割,直到每个子块都只含有相同的灰度或属性值为止。

1

234

5

671112

1314

1519

161718

8910

常规四叉树

2结点:父结点指针,四个子结点指针,本结点灰度或属性值常规四叉树方法:记录叶结点外,还要记录中间结点;结点之间的联系靠指针表达,也叫指针四叉树。

增加了存储量和操作的复杂性。

3

线性四叉树

线性四叉树方法:只存储叶结点的信息

结点:位置、大小和格网值

叶结点的位置信息:遵照一定的规则对叶结点编号,这种编号称为地址码

四叉树分解过程

3

线性四叉树

线性四叉树的编码

地址码:隐含叶结点的位置信息

四进制Morton码

十进制Morton码

(1)基于四进制的Morton码及四叉树的建立

线性四叉树

3方法1:自上而下分裂建立四叉树,过程中逐步产生Morton 码方法2:首先计算每个格网的Morton 码,然后扫描自下而上合并,建立四叉树

方法1:分解过程(自上而下)第一步

01编码方向

23

方法1:分解过程(自上而下)第二步

01 23

1011

1213 2021

2223

3031

3233

方法1:分解过程(自上而下)第二步

1011

1213

2021 22233031 3233

方法1:分解过程(自上而下)第三步

1011

1213

2021 22233031

3233

3031

33

方法1:分解过程(自上而下)第四步

3031

33

方法2:合并方法(自下向上)

将二维矩阵元素的下标转换成Morton 地址码

四进制Morton 码的计算方法:

当>

时当时2log ()b k 0(,2)10II k

k I MOD I ⎡⎤⎣⎦

==∙∑k I II

=k 1(/2)K I INT I -=0k = 0k (a )将十进制的行列号转换成二进制数

MOD :取余函数,INT :取整函数,II :十进制行号,I b :二进制行号,J b :二进制列号,k :中间循环变量。

方法2:合并方法(自下向上)

将二维矩阵元素的下标转换成Morton 地址码

四进制Morton 码的计算方法:

(b )计算对应的Morton 码MQ

b b

2Q M I J =*+

四进制的Morton码

(c)将元素按码的升序排列成线性表

依次检查每四个相邻MQ码对应的网格值,相同合并;不相

同记盘

•MQ码,深度,格网值

依次检查每四个大块的格网值•不同或某子块已记盘,则记盘•相同,合并

循环

没有能够合并的子块,终止

MQ码格网值

000

001

002

003

自上而下的分裂和自下而上的合并产生一致的四叉树

四进制的Morton码及四叉树

缺点:

(1)码的存储开销大,由于大多数语言不支持四进制变量,需要用十进制长整形表示Morton码,是一种存储浪费;

(2)运算效率不高。

(2)基于十进制的Morton码及四叉树的建立

线性四叉树

3Mark 等人(1989年)建议:

采用十进制的Morton 码作为线性四叉树的地址码,并且使用自下而上的合并方法建立四叉树。

十进制Morton 码计算及四叉树的建立

MOD :取余函数,INT :取整函数,II :十进制行号,I f :伪码行号,J f :伪码列号,k :中间循环变量。

(a )将十进制的行号和列号转换为一种特殊码,称为伪码(I f , J f )

当>

时当时2log ()f 0(,2)4II k

k k I MOD I ⎡⎤⎣⎦

==∙∑k I II

=k 1(/2)K I INT I -=0k = 0k (b )计算对应的Morton 码M D D f f

2M I J =*+

十进制的Morton码

十进制四叉树的建立

线性四叉树的特点

优点:

压缩效率高,压缩和解压缩较方便,阵列各部分的分辨率可不同,既可精确地表示图形结构,又可减少存贮量,易于进行大部分图形操作和运算。

缺点:

具有图形编码的不定性,同一形状和大小的多边形可得出完全不同的四叉树结构。因此,不利于形状分析和模式识别。

相关文档
最新文档