遥感图像处理 | 采用GDAL读取图像成功后获取图像的一些基本信息和统计信息(C#)
描述信息: 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]表示左上角的坐标。
波段信息: 数据集中重要的信息,有波段尺寸、数据类型、颜色信息等。
获取波段的方法:
Band band= Dataset.GetRasterBand(i)
波段尺寸: int band.GetXSize()
int band.GetYSize()
数据类型: const char* GDALGetDataTypeName(poBand.GetRasterDataType())
颜色信息: const char* GDALGetColorInterpretationName(poBand.GetColorInterpretation())
统计信息
# region table获取统计值
ds = dataset;
//影像统计值(最小值,最大值,均值,标准差)
string staticvalue = null;
int bApproxOK = 1; int bForce = 1;
double pdfMin; double pdfMax; double pdfMean; double pdfStdDev;
if (dataset != null)
{
for (int i = 1; i <= dataset.RasterCount; i++)
{
Band band = dataset.GetRasterBand(i);
band.GetStatistics(bApproxOK, bForce, out pdfMin, out pdfMax, out pdfMean, out pdfStdDev);//获取统计信息
staticvalue += "Band" + i.ToString() + "," + pdfMin.ToString() + "," + pdfMax.ToString() + "," + pdfMean.ToString() + "," + pdfStdDev.ToString() + ",";
}
}
if (staticvalue == null)
{
MessageBox.Show("无文件信息");
this.Close();
}
转载自:https://blog.csdn.net/weixin_41340063/article/details/82733527