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

2021-01-20 23:28

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

1622012,48(13)ComputerEngineeringandApplications计算机工程与应用

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

4.3图像缩小操作

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

上进行缩小操作,缩小后图层为n+p(如图3所示),缩小操作是三个操作最复杂的操作,缩小后窗口数据的范围比原来的要大。数据读取的算法过程如下:

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

(2)如果金字塔图层n+p上没有对应块的数据,此时有两种情况:一是图层n上有对应块的数据,则直接缩小到n+p层,获得数据块后显示,并加入到内存金字塔中的n+p层上;如果超过设定的内存上限,执行LRU替换算法移除一些图像块,直到有足够的空间容纳新加入的图像块数据,该块读取结束。二是图层n上没有对应块的数据,则查找该块在内存金字塔的下面的[n+p-1,0]层是否有对应块?如果有对应块,找到其中最接近图层n+p的图层中的块,在内存中缩小到n+p层,得到n+p层对应块数据,显示该块图像,并将该块加入到内存金字塔中n+p层,如果超过设定的内存上限,执行LRU替换算法移除一些图像块,直到有足够的空间容纳新加入的图像块数据,该块读取结束;如果没有对应块,则利用GDAL类库中的函数RasterIO()从文件中读取块数据,并将该块加入到内存金字塔中,如果超过内存上限,执行LRU替换算法移除一些图像块,直到有足够的空间容纳新加入的图像块数据,然后显示该块图像,该块读取过程结束。

5运行的结果

本文程序基于gdal17.dll用VisualC++6.0在

WindowsXP2002SP3版本下开发,在Dell台式机IntelCPU2.33GHz,1.95GB的内存)下运行,打开1G以下的图像,无论是第一次,还是以后放大、缩小和漫游都非常快,基本上不需要等待。打开2G以上

的图像(29647×29475的三波段彩色图像,大小为2.44G),如图4所示。由于第一次打开要采样并建立金字塔,所用时间较长,需要53秒左右,以后的放大、缩小和漫游都很快。在同一台机器下用EnviZoom4.5下打开此文件,建立金字塔并显示缩略图用了3分10秒左右,当然EnviZoom软件第一次打开时在硬盘上建立了833M的静态金字塔文件,以后再打开文件时,它自动地从静态金字塔文件读取,则非常快,所以不能简单地比较谁快谁慢。

图4打开2.44G的图像的程序界面

6结论

GDAL开源库支持多种图像文件格式,并提供了

快速读取图像数据和建立金字塔等许多强大的功能。因此,本文基于GDAL对图像进行分层分块处理,并在内存中建立图像金字塔结构作为高速缓存,实现了快速地显示和浏览大的图像。

参考文献:

[1]吕京国,黄国满.用VisualC++实现大数据量的快速存取[J].

测绘科学,2002(9):29-31.

[2]胡伟忠,刘南,刘仁义.基于内存映射文件技术的海量影像

数据快速读取方法[J].计算机应用研究,2005(2):111-112.[3]章孝灿,黄智才,陈刚,等.海量遥感影像快速显示技术[J].

中国图象图形学报,2002,7(10):1021-1026.

[4]RichterJ.Windows高级编程指南[M].王书洪,刘光明,译.3

版.北京:清华大学出版社,1999.

[5]许涌,万国龙.海量图像数据快速显示技术[J].计算机工程

与设计,2003(6):36-38.

[6]宋江洪,赵忠明.图像分块分层结构在海量数据处理中的

应用[J].计算机工程与应用,2004,40(33):

31-33.


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

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

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

马上注册会员

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