VC GDAl 读取并显示图像

来源:互联网 发布:淘宝李涛是真是假 编辑:程序博客网 时间:2024/05/01 08:27

GDAL是一个操作各种栅格和矢量地理数据格式的开源库。包括读取、写入、转换、处理各种栅格和矢量数据格式。它支持各种图像格式,其详细清单见: http://www.gdal.org/formats_list.htm  。

 完成了图像的读取和显示,但不知这种方法是否为最佳,请各位指正,谢谢!

 

本文就以VC为开发平台介绍GDAL对图像数据的操作方法。

1.首先进行GDAl的配置工作,这在上文中已经提到,不再做陈述。

2.然后,我是在Doc类里面添加OnOpenDocument(LPCTSTR lpszPathName)函数,其具体的操作在其中进行。创建文件对话框:,返回lpszPathName.

 

3.函数中,首先的进行驱动的注册。所使用的函数是GDALAllRegister()函数,然后进行打开文件操作,这里介绍一个DataSet概念,GDAL中可以说数据的核心就是Dataset,简单来说可以将Dataset就理解为图像文件。在数据集下最重要组成部分就是所谓的波段band,文件的打开使用的是:GDALOpen函数。

4.在确认DataSet不是NULL的情况下就可以对图像数据集进行操作了。

 5.接下来,我们就开始进入到波段处理。波段的获取使用GetRasterBand函数,

6,创建一个对话框,其布局如图所示:

对话框的设计此处就不作详述啦,它的作用是返回显示模式以及波段选择。

7,进入我认为最重要的步骤:波段数据的读写核心函数就是RasterIO。这个函数可以将图像的某一个子块读入或写入。当然此处要判断一下要打开的的是灰度图像还是彩色图像。

 8.更新和释放指针

要显示图像,当然得在View类的OnDraw()函数中添加必要的代码:

1.假如要打开的是灰度图像,先对数据头文件操作,包括数据头和颜色表的赋值。然后建立数据区,为各像素赋值,即完成图像的显示:

2,当然打开彩色图像也要如此操作

 

 

原创粉丝点击