GDAL库是一个跨平台的栅格地理数据格式库,包括读取、写入、转换、处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持)。它使用了一个单一的抽象数据模型就支持了大多数的栅格数据。这里有GDAL库支持的格式:http://www.gdal.org/formats_list.html

注:本文在Qt开发环境下使用GDAL库。

在Qt中使用GDAL库时,除了要加gdal_priv.h头文件外,还需要在xxx.pro文件内加上LIBS += -lgdal ,文件用可编辑的文档打开。

使用GDAL时首先对文件格式进行注册,这里我们对所有支持的文件安格式进行注册:GDALAllRegister()

注册后用数据集对象指向打开的数据文件,就实现了数据的读取,如下:

复制代码
GDALAllRegister();
GDALDataset poDataset;
QString filename;
filename=QFileDialog::getOpenFileName(this,
tr(“Choose Images”),
tr("All Fles (
.)"));
//Open the image
QByteArray ba = filename.toLatin1();
poDataset = (GDALDataset
) GDALOpen( ba.data(),GA_ReadOnly );
复制代码
注意上面还需要将QString转化为char*类型,以保证函数参数类型一致。

1.获取图像的基本信息

采用GDAL读取图像成功后,可以获取图像的一些基本信息,如下:

描述信息:const char* GDALDataset::GetDriver()->GetDescription(),通常是图像的格式

图像大小: 图像宽度 int GDALDataset::GetRasterXSize()

               图像高度  int   GDALDataset::GetRasterYSize()

波段数:int GDALDataset::GetRasterCount() 波段数即图像每个像素点所含的颜色种类,物理中的光学中学过颜色就是某频率的光波。波段少则一个,多则很多个,在遥感影象中波段通常有多个。

投影信息:GDALDataset::GetProjectionRef() 有的图像没有投影信息,不如一般的JPG、BMP格式图像。

地理坐标信息:double adfGeoTransform[6]

                    GDALDataset::GetGeoTransform(adfGeoTransform)地理坐标信息是一个含6个double型数据的数组,adfGeoTransform[1]和adfGeoTransform[5]表示东西和南北方向一个像素对应的距离,adfGeoTransform[0]和adfGeoTransform[3]表示左上角的坐标。

波段信息:数据集中重要的信息,有波段尺寸、数据类型、颜色信息等。

       获取波段的方法: GDALRasterBand *poBand;poBand = poDataset->GetRasterBand(i)     poBand为指向第i个波段的指针

波段尺寸:int poBand->GetXSize()

             int   poBand->GetYSize()

数据类型:const char* GDALGetDataTypeName(poBand->GetRasterDataType())

颜色信息:const char* GDALGetColorInterpretationName(poBand->GetColorInterpretation())

  1. 将读取的图像信息显示出来

上面了解了GDAL获得图像数据信息的方法,接下来就在Qt中对数据信息进行显示

QString strImgInfo;
QString strImgFormat =
poDataset->GetDriver()->GetDescription();
strImgInfo.append(tr(“Descreption: “)+strImgFormat+”\n”);
类似上面这样,Qt中的QString类有类似于向量的功能,可以用append函数再字符串后面添加新的字符串

信息获取完后显示:ui->label->setText(strImgInfo);

GDAL库——读取图像并提取基本信息相关推荐

  1. GDAL库读取Envisat ASAR数据

    GDAL库本身就可以读取Envisat的图像数据,具体链接为:http://www.gdal.org/frmt_various.html#Envisat. 但是对于ASAR传感器的数据来说,GDAL在 ...

  2. vc使用opencv库 读取图像

    refer to opencv1.0下载 http://www.opencv.org.cn/download/OpenCV_1.0.exe 环境配置 http://www.opencv.org.cn/ ...

  3. python中使用不同库读取图像并相互转换

    最近在训练目标检测的网络,图片在输入网络时,会使用用到 PIL.Image 和 OpenCV 这两个库,这两个库在图像处理方面很多类似的地方,但是它们读取图片的格式却是不一样的,在这里记录一下两种格式 ...

  4. gdal库读取tif影像坐标

    # coding=utf-8 from osgeo import gdal from gdalconst import *def readImage(img_path):data = []# 以只读方 ...

  5. Python gdal库读取tif文件

    from osgeo import gdal # GDAL库主要提供对栅格数据的处理,使用抽象数据模型来解析所支持的数据格式 import filename_cut as fc import matp ...

  6. Linux配置gdal变量环境,基于GDAL库的LINUX环境下的FY-3D和FY-4A遥感数据处理

    王燕婷 摘要 基于GDAL库的功能和其开源.可对栅格空间数据操作的特点,将GDAL与C++语言的完美结合,可极大得发挥其在开发遥感图像处理软件中的优势,并可跨平台应用于不同操作系统下的遥感图像数据处理 ...

  7. GDAL C#读取shp中文属性值乱码问题

    GDAL的C#版本读取shp中,如果属性值中含有中文,读出来有可能是乱码的问题,根据SWIG生成的C#代码调试发现问题所在,在Ogr.cs文件中有这么一个函数,代码如下: internal stati ...

  8. Python 读取图像方式总结

    读取并显示图像 opencv3库 scikit-image库 PIL库 读取图像结果分析 打印图像信息 skimage获取图像信息 PIL获取图像信息 读取并显示图像方法总结 PIL库读取图像 Ope ...

  9. python读取图像数据的一些方法

    工作和学习中设计一个神经网络中经常需要设计一个数据载入器.首先第一件事我们要根据我们的任务要求确定一个数据提供的方法.如我们是一个分类任务,我们就需要读取数据和数据本身对应的标签.     1    ...

最新文章

  1. CENTOS php 7.0 +nginx 环境下 安装yaf框架
  2. 7年前去搞数据科学、放弃天文学,现在我后悔了
  3. golang atomic 32位机器问题
  4. freemarker程序开发
  5. 线程的简单生产消费模式
  6. pku 1573 Robot Motion 第一周训练——模拟
  7. php生成图片验证码代码,PHP生成图片验证码以及点击切换的代码
  8. java queue使用_使用Java使用Amazon Simple Queue Service
  9. MATLAB库函数polly2trellis(卷积码生成多项式转网格图描述)的实现过程详解
  10. Linux——userdel删除用户不完全问题
  11. Dorado 7 Ajax 交互处理
  12. DES 加密解密的通俗易懂
  13. 再谈王垠/王垠—写给清华大学的退学申请
  14. Cys(Npys)-(Arg)₉,H2N-C(Npys)-RRRRRRRRR-OH
  15. phalapi可以依赖注入么_[2.11]-核心思想:DI依赖注入-让资源更可控 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...
  16. 光学显微镜分辨率极限
  17. EOF:warning: delimited by end-of-file
  18. Flink基础系列8-Flink on yarn运行wordcount程序
  19. Mac OS X平台下QuickLook开发教程
  20. C语言精练教程:连载中

热门文章

  1. pages转换成html,怎么把pages文稿转为HTML?
  2. 谷歌「我不是机器人」按钮隐藏了,但你的隐私暴露了
  3. 14、nginx的正则表达式名称-(server_name为正则表达式)
  4. issue no route to host 为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname--(有效)
  5. python logger.exception_Python logger.warn方法代码示例
  6. Python网络编程 之 UDP和TCP
  7. Zotero如何导出参考文献
  8. 【测试用例评审标准】
  9. BufferPool缓存机制
  10. AutoCAD发展历程回顾