用代码说明一切!!!
static int CreateGCPsList( const char * pszGCPsFilename,
GDAL_GCP *pasGCPs );
static void DestoryGCPs( int nGCPCount, GDAL_GCP *pasGCPs );
static int GCPTransformToGeoTransform( int nGCPCount,
GDAL_GCP *pasGCPs,
double *padfGeoTransform );
static int ApplyGeoTransformOnOtherTransform(
double *padfSrcGeoTransform,
double *padfInputGeoTransform );
static GDALDataset *CreateOutputDataset( GDALDataset *pSrcDataset,
const char *pszDstFileFormat,
const char *pszDstFilename );
static int WarpImage( GDALDataset *pSrcDataset,
GDALDataset *pDstDataset );
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std;
static const int MAX_GCP = 6;
int bRet = EXIT_FAILURE;
const char *pszSrcFilename = "../data/in.tif";
const char *pszGCPsFilename = "../data/gcps.txt";
const char *pszDstFilename = "../data/out.tif";
/* ----------------------------------------------------------------- */
/* -----------------------从输入文件读取控制点---------------------- */
/* ----------------------------------------------------------------- */
GDAL_GCP aGCPsList[MAX_GCP];
int nGCPsCount = 0;
nGCPsCount = CreateGCPsList( pszGCPsFilename, aGCPsList );
if ( nGCPsCount < 3 )
{
std::cerr << "CreateGCPsList failed!"
<< std::endl;
goto Main_clean;
}
GDALAllRegister();
/* ----------------------------------------------------------------- */
/* -----------------------从输入数据文件创建数据集------------------ */
/* ----------------------------------------------------------------- */
GDALDataset *pSrcDataset = (GDALDataset *)GDALOpen(
pszSrcFilename,
GA_Update );
if ( pSrcDataset == NULL )
{
std::cerr << "GDALOpen Source file failed!"
<< std::endl;
goto Main_clean;
}
/* ----------------------------------------------------------------- */
/* -----------------------将控制点变换转化为地理仿射变换------------ */
/* ----------------------------------------------------------------- */
double adfSrcGeoTransform[6];
pSrcDataset->GetGeoTransform( adfSrcGeoTransform );
double adfGCPGeoTransform[6];
if ( !GCPTransformToGeoTransform( nGCPsCount, aGCPsList,
adfGCPGeoTransform) )
{
std::cerr << "GCPTransformToGeoTransform failed!"
<&l
使用GDAL进行一次多项式几何纠正

本文详细介绍了如何利用GDAL库进行一次多项式几何校正,通过实例代码展示校正过程,帮助读者理解并应用到地理信息系统(GIS)的数据处理中。
最低0.47元/天 解锁文章
6079

被折叠的 条评论
为什么被折叠?



