可以在 NDVICal 函数中添加保存结果的代码。例如,可以在计算完成后将结果保存为一个新的图像文件,或者直接将结果覆盖原始图像文件。下面是一个示例代码片段,用于将结果保存为一个新的图像文件:

void CBandMath::NDVICal(CString pathName, int bands, int width, int height, int dataType) { // 计算 NDVI // ...

// 将结果保存为一个新的图像文件
CString newPathName = pathName.Left(pathName.ReverseFind('.')) + "_ndvi.tif";
GDALDriver *pDriver = GetGDALDriverManager()->GetDriverByName("GTiff");
GDALDataset *pDataset = pDriver->Create(newPathName, width, height, 1, dataType, NULL);
GDALRasterBand *pBand = pDataset->GetRasterBand(1);
pBand->RasterIO(GF_Write, 0, 0, width, height, resultData, width, height, dataType, 0, 0);
pDataset->FlushCache();
GDALClose(pDataset);

}

在上面的代码中,首先计算 NDVI,然后将结果保存为一个新的图像文件。新的文件名是在原始文件名的基础上添加了 "_ndvi" 后缀。使用 GDAL 库中的函数可以创建一个新的 GDAL 数据集,并将结果数据写入到其中。最后,关闭数据集并刷新缓存

void CBsqViewViewOnNdvi 	 TODO Add your command handler code here	ifm_fileopen == false			MessageBox还没有打开任何图象文件!ErrorMB_ICONERROR ;		return;		CBandMath fBandsMath;	fBandsMathNDVICalm_pathnameBandsWidt

原文地址: https://www.cveoy.top/t/topic/fgSD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录