基于GDAL大于2G遥感图像的快速浏览(3)

2021-01-20 23:28

基于GDAL大于2G遥感图像的快速浏览

张宏伟,童恒建,左博新,等:基于GDAL大于2G遥感图像的快速浏览2012,48(13)

161

传统的金字塔结构如图1所示;本文采用的内存图像金字塔的逻辑结构如图2所示。

图1

传统金字塔结构图

tileWidth

tilelod=6CountX=4

He

lod=5CountY=4ighlod=4maxLod=7

t

maxTile=16lod=3

lod=2lod=1

lod=0

图2

新型金字塔结构图

这里假定原图像被分成了16块,编号0~15。动态金字塔一共有7层,第0层为原图像,每个图像块的大小为tileWidth×tileHeight(tileWidth和tileHeight一般取256或512个像素),tileWidth和tileHeight随着lod的增加以2的倍数递减,从而形成不同分辨率下的图像块数据。不同于传统的金字塔结构,本文的金字塔结构每一层的块数都一样,只是大小不一样,有利于放大和缩小操作,并有利于实现渐变显示的效果,给用户快速和平滑的感觉。

4快速浏览算法

图像浏览的操作主要包括漫游、放大和缩小三

种操作。动态调度的过程请参考图3进行理解。

4.1图像漫游

漫游操作是在显示窗口内按住鼠标左键上、下、

左、右等各个方向移动图像,是在某一分辨率下的操作。假定金字塔的总层数为N,图像在第n层上进行漫游操作,数据读取的算法过程如下:

(1)该块是否在内存金字塔中?如果在内存金字塔中,则读取该块数据,显示该块图像,该块读取结束;如果不在内存金字塔中,进行第(2)步。

n+p层

n层

0123内

4567

8

91011

GDAL12

13

14

15读取后

n-q层

图3动态调度的示意图

(2)该块在内存金字塔的下面的[n-1,0]层是否

有对应块?如果有对应块,找到其中最接近图层n的图层中的块,在内存中缩小,得到该块数据,显示该块图像,将该块加入到内存金字塔中,如果超过设定的内存上限,执行LRU替换算法移除一些图像块,直到有足够的空间容纳新加入的图像块数据,该块读取结束;如果没有对应块,则进行第(3)步。

(3)该块在内存金字塔的[n+1,N-1]层是否有对应块?如果有对应块,找到其中最接近图层n的图层中的块,在内存中放大,得到该块数据(实现渐变的效果,放大的块数据不加入到内存金字塔中,而是将从文件中读取后,再加入内存金字塔中),显示该块图像后进行第(4)步;如果没有对应块,直接进行第(4)步。

(4)利用GDAL类库中的函数RasterIO()从文件中读取块数据,将该块加入到内存金字塔中,如果超过内存上限,执行LRU替换算法移除一些图像块,直到有足够的空间容纳新加入的图像块数据,然后显示该块图像,该块读取过程结束。

4.2图像放大操作

假定金字塔的总层数为N,图像在第n层上第i

块进行放大操作,放大后图层为n-q(图3所示),数据读取的算法过程如下:

(1)如果金字塔图层n-q上有对应块的数据,则直接读取并显示。

(2)如果金字塔图层n-q上没有对应块的数据,则首先用第n层上第i块进行放大操作,实现渐变显示效果;然后,查找该块在内存金字塔的下面的[n-q-1,0]层是否有对应块:①如果有对应块,找到其中最接近图层n-q的图层中的块,在内存中缩小到n-q层,得到n-q层对应块数据,显示该块图像,并将该块加入到内存金字塔中n-q层,如果超过设定的内存上限,执行LRU替换算法移除一些图像块,直到有足够的空间容纳新加入的图像块数据,

该块读


基于GDAL大于2G遥感图像的快速浏览(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一年级新生入学家家长会班主任发言稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: