Если я пытаюсь объединить снимки с одной проекцией, то все получается, но если они разные, то нет.
Код: Выделить всё
#include "gdal.h"
#include "gdal_priv.h"
#include "gdal_priv.h"
#include "cpl_conv.h" // for CPLMalloc()
#include "gdalwarper.h"
#include <QDebug>
#include <QFileDialog>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
GDALDatasetH hSrcDS, hDstDS;
// Open input and output files.
GDALAllRegister();
hSrcDS = GDALOpen(QFileDialog::getOpenFileName().toLocal8Bit().data(), GA_ReadOnly );
hDstDS = GDALOpen(QFileDialog::getOpenFileName().toLocal8Bit().data(), GA_Update );
// Setup warp options.
GDALWarpOptions *psWarpOptions = GDALCreateWarpOptions();
psWarpOptions->hSrcDS = hSrcDS;
psWarpOptions->hDstDS = hDstDS;
psWarpOptions->nBandCount = 1;
psWarpOptions->panSrcBands =
(int *) CPLMalloc(sizeof(int) * psWarpOptions->nBandCount );
psWarpOptions->panSrcBands[0] = 1;
psWarpOptions->panDstBands =
(int *) CPLMalloc(sizeof(int) * psWarpOptions->nBandCount );
psWarpOptions->panDstBands[0] = 1;
psWarpOptions->pfnProgress = GDALTermProgress;
// Establish reprojection transformer.
psWarpOptions->pTransformerArg =
GDALCreateGenImgProjTransformer( hSrcDS,
GDALGetProjectionRef(hSrcDS),
hDstDS,
GDALGetProjectionRef(hDstDS),
TRUE, 0.0, 1 );
psWarpOptions->pfnTransformer = GDALGenImgProjTransform;
qDebug() << psWarpOptions->pfnTransformer;
// Initialize and execute the warp operation.
GDALWarpOperation oOperation;
oOperation.Initialize( psWarpOptions );
qDebug() << oOperation.ChunkAndWarpImage( 0, 0,
GDALGetRasterXSize( hDstDS ),
GDALGetRasterYSize( hDstDS ) );
GDALDestroyGenImgProjTransformer( psWarpOptions->pTransformerArg );
GDALDestroyWarpOptions( psWarpOptions );
GDALClose( hDstDS );
GDALClose( hSrcDS );
return a.exec();
}
Я пытался объединить снимки 1 и 2 из приложенного архива.
Что я делаю не так?