首先,我们需要在C#下安装GDAL。C#的安装比C++简单很多,直接在“项目-Nuget”上搜索GDAL,安装如下两个即可。
接下来,我们需要在C#的main()函数中输入以下代码用以注册GDAL:
GdalConfiguration.ConfigureGdal();
GdalConfiguration.ConfigureOgr();
Gdal.AllRegister();
Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");
之后便可以使用GDAL了。
在数字图像处理这门课程中,作者使用的是WInform(因为C++MFC实在是太难了),所以也会更多地以Winform的视角来贴上代码。
在程序中,我们需要先通过某个按钮打开图像。应该是:点击按钮--弹出选择文件对话框--用户选择文件后确定--完成图像的加载。接下来是实现:
OpenFileDialog OFD = new OpenFileDialog();//实例化对象
OFD.Multiselect = false; //关闭多选功能
OFD.Title = "请选择图像文件"; //设置标题
OFD.Filter = "(*.jpg,*.png,*.bmp,*.img,*.tif)|*.jpg;*.png;*.bmp;*.img;*.tif";
//设置可以选择的文件格式,大家可以按需调整
string img_dir = ""; //用来接收用户选择的路径
if (OFD.ShowDialog() == DialogResult.OK) //若用户点击确定则执行以下
{
img_dir = OFD.FileName; //获得了指定的路径
}
if (img_dir == "") //若用户取消,则取消函数
{
return;
}
var My_dataset = OSGeo.GDAL.Gdal.Open(img_dir, OSGeo.GDAL.Access.GA_ReadOnly)
//使用Gdal的函数只读地加载图片;其中var是一个关键字,用以自动定义数据的类型
这样,我们就成功地读取了Dataset啦。
建议大家可以把dataset放到自己的类成员变量中,以便在其他地方进行调用。