AFai

AFai
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2.GDAL打开影像文件并读取基本信息

Posted on 2012-02-28 21:33  阿Fai  阅读(1930)  评论(0编辑  收藏  举报

使用的是C#语言。

在添加对GDAL库的引用后,开始使用GDAL库函数前,需要进行注册,这个步骤包括:

1.使用using OSGeo.GDAL;来引用GDAL的命名空间,
2.在程序中使用 Gdal.AllRegister();语句进行注册

      GDAL库中打开影像文件非常简单,使用Gdal.Open(string path,Acess eAcess)即可。第一个参数为影像路径,第二个参数为权限,分只读和可写两种。该函数返回值为Dataset类型。

  可以从该Dataset中获取到一些影像的基本信息例如影像宽度和高度,波段数,坐标变换参数,坐标信息等
      注:该函数获取到的Dataset中只包含影像的信息,并不包含影像所有像素的信息,要得到像素信息,需要用ReadRaster函数读取到数组中。

例如:

//注册GDAL驱动
Gdal.AllRegister();
Dataset ds = Gdal.Open(rasterPath,Access.GA_ReadOnly)
int rasterX = ds.RasterXSize; //影像宽度
int rasterY = ds.RasterYSize; //影像高度
int bandCount = ds.RasterCount; //波段数
double tmpD = new double[6];
ds.GetGeoTransform(tmpD); //影像坐标变换参数
string proj = ds.GetProjection(); //影像坐标系信息(WKT格式字符串)

注:这里的GeoTransform(影像坐标变换参数)的定义是:通过像素所在的行列值得到其左上角点空间坐标的运算参数
例如:某图像上(P,L)点左上角的实际空间坐标为:
Xp = GeoTransform[0] + P * GeoTransform[1] + L * GeoTransform[2];
Yp = GeoTransform[3] + P * GeoTransform[4] + L * GeoTransform[5];