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