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

  1. 获取图像的基本信息

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

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

  1. 图像大小
    图像宽度 int GDALDataset::GetRasterXSize()
    图像高度 int GDALDataset::GetRasterYSize()

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

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

  4. 地理坐标信息:double adfGeoTransform[6]
    GDALDataset::GetGeoTransform(adfGeoTransform)

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

  1. 波段信息:数据集中重要的信息,有波段尺寸、数据类型、颜色信息等。
    获取波段的方法: GDALRasterBand *poBand;

poBand = poDataset->GetRasterBand(i) poBand 为指向第 i 个波段的指针

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

int   poBand->GetYSize()

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

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