• 大小: 1.19MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-30
  • 语言: 其他
  • 标签: CUDA  OPENCL  正射校正  

资源简介

基于CUDA和OpenCL实现的高分一号遥感影像的RPC正射校正,并且取得了较高的加速比,适合遥感和图像处理的研发人员,对并行计算感兴趣的也可以下载

资源截图

代码片段和文件信息


#include 
#include 
#include 
#include 

#include “ImageWrap.h“
#include “RPCorth.h“

void TestRpc();

void main()
{
OGRRegisterAll();
GDALAllRegister();
CPLSetConfigOption(“GDAL_FILENAME_IS_UTF8“ “NO“);


//GDALDataset* poDatasetchangsha = (GDALDataset*)GDALOpen(“E:\\投影转换测试\\获取不了投影\\248-279_5\\SCENE01\\IMAGERY.TIF“GA_ReadOnly);

//char* pszWkt1 = (char*)poDatasetchangsha->GetProjectionRef();
//if (0 == strlen(pszWkt1))
//{
// pszWkt1 = (char*)poDatasetchangsha->GetGCPProjection();
//}

//int nGCPCount = poDatasetchangsha->GetGCPCount();
//const GDAL_GCP *pGCPList = poDatasetchangsha->GetGCPs();

//OGRSpatialReference osr2;
//osr2.importFromWkt(&pszWkt1);
//osr2.morphToESRI();

//osr2.exportToWkt(&pszWkt1);

//printf(“%s\n“pszWkt1);

////解算仿射变换系数
//double dbGeoTran[6];
//GDALGCPsToGeoTransform(nGCPCountpGCPListdbGeoTran0);
//printf(“%f\n“dbGeoTran[0]);

//GDAL_GCP *pGCPs = new GDAL_GCP[nGCPCount];
//memcpy(pGCPspGCPListsizeof(GDAL_GCP)*nGCPCount);

//GDALClose(poDatasetchangsha);

/*const char* pszInFile = “E:\\248-279_5\\SCENE01\\IMAGERY.TIF“;
const char* pszOutFile = “E:\\248-279_5\\SCENE01\\IMAGERY-校正.TIF“;
ImageWarpByGCP(pszInFilepszOutFilenGCPCountpGCPspszWkt1000GRA_NearestNeighbour“GTiff“);*/

const char* pszInFile = “E:\\my-space\\数据\\影像\\高分一号-rpc\\GF1_WFV2_E72.3_N22.6_20131024_L1A0000102424\\GF1_WFV2_E72.3_N22.6_20131024_L1A0000102424.tiff“;
const char* pszOutFile = “E:\\my-space\\数据\\影像\\高分一号-rpc\\高分一号校正-CUDA.tif“;

DWORD t1 = GetTickCount();
ImageWarpRPC(pszInFilepszOutFileSRS_WKT_WGS8400“GTiff“);

DWORD t2 = GetTickCount();
//TestRpc();

double tt = (t2-t1)/1000.0;
printf(“%f秒\n“tt);



//开始控制点校正
  /*void *hTran = GDALCreateGCPTransformer(nGCPCountpGCPList0FALSE);

int nXsize = poDatasetchangsha->GetRasterXSize();
int nYsize = poDatasetchangsha->GetRasterYSize();
double x = dbGeoTran[0] + (nXsize/2)*fabs(dbGeoTran[1]);
double y = dbGeoTran[3] - (nYsize/2)*fabs(dbGeoTran[5]);
int nFlag = 0;
GDALGCPTransform(hTranTRUE1&x&yNULL&nFlag);

printf(“%f%f“xy);*/


}

void TestRpc()
{
GDALAllRegister();
CPLSetConfigOption(“GDAL_FILENAME_IS_UTF8“ “NO“);

// 打开原始图像
const char* pszInFile = “E:\\my-space\\数据\\影像\\高分一号-rpc\\GF1_WFV2_E72.3_N22.6_20131024_L1A0000102424\\GF1_WFV2_E72.3_N22.6_20131024_L1A0000102424.tiff“;
GDALDatasetH hSrcDS = GDALOpen(pszInFile GA_ReadOnly);
if (NULL == hSrcDS)
{
//return 0;
}

GDALDataType eDataType = GDALGetRasterDataType(GDALGetRasterBand(hSrcDS 1));
int nBandCount = GDALGetRasterCount(hSrcDS);

double dbGeonTran[6];
GDALGetGeoTransform(hSrcDSdbGeonTran);

// 创建几何多项式坐标转换关系
char** pszmetadata = GDALGetmetadata(hSrcDS“RPC“);
GDALRPCInfo sRPCInfo;
if (pszmetadata != NULL)
{
GDALExtractRPCInfo( pszmetadata &sRPCInfo );
}

stRPCInfo stInfo;
memcpy(&stInfo&sRPCI

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8840  2014-09-13 20:14  TestImgGCP\Debug\BuildLog.htm

     文件     553656  2014-09-07 21:35  TestImgGCP\Debug\GCPTest.obj

     文件     545466  2014-09-07 21:35  TestImgGCP\Debug\ImageWrap.obj

     文件         67  2014-09-13 20:14  TestImgGCP\Debug\mt.dep

     文件      36175  2014-09-13 13:44  TestImgGCP\Debug\OpenCL.obj

     文件     227550  2014-09-08 19:03  TestImgGCP\Debug\RpcCUDAAlg.cu.obj

     文件      13728  2014-09-13 15:12  TestImgGCP\Debug\RpcOpenCLAlg.obj

     文件     316772  2014-09-13 20:14  TestImgGCP\Debug\RPCorth.obj

     文件         81  2014-09-06 00:13  TestImgGCP\Debug\TestImgGCP.device-link.options

     文件        663  2014-09-07 21:35  TestImgGCP\Debug\TestImgGCP.exe.embed.manifest

     文件        728  2014-09-07 21:35  TestImgGCP\Debug\TestImgGCP.exe.embed.manifest.res

     文件        621  2014-09-13 20:14  TestImgGCP\Debug\TestImgGCP.exe.intermediate.manifest

     文件     748544  2014-09-13 20:14  TestImgGCP\Debug\vc90.idb

     文件     405504  2014-09-13 20:14  TestImgGCP\Debug\vc90.pdb

     文件       3373  2014-09-06 10:11  TestImgGCP\GCPTest.cpp

     文件      10348  2014-08-03 00:22  TestImgGCP\ImageWrap.cpp

     文件       1090  2014-08-03 00:03  TestImgGCP\ImageWrap.h

     文件       4209  2014-09-13 15:09  TestImgGCP\kernel.cl

     文件          2  2014-09-04 20:21  TestImgGCP\Kernel.cu

     文件       3556  2014-09-13 13:44  TestImgGCP\OpenCL.cpp

     文件        617  2014-08-07 20:06  TestImgGCP\OpenCL.h

     文件      63360  2014-09-07 21:24  TestImgGCP\Release\BuildLog.htm

     文件     887698  2014-09-06 15:21  TestImgGCP\Release\GCPTest.obj

     文件     779982  2014-08-06 19:11  TestImgGCP\Release\ImageWrap.obj

     文件         67  2014-09-07 21:24  TestImgGCP\Release\mt.dep

     文件     226170  2014-09-07 21:24  TestImgGCP\Release\RpcCUDAAlg.cu.obj

     文件     669829  2014-09-07 21:24  TestImgGCP\Release\RPCorth.obj

     文件         30  2014-09-06 15:21  TestImgGCP\Release\TestImgGCP.device-link.options

     文件        616  2014-09-07 21:24  TestImgGCP\Release\TestImgGCP.exe.intermediate.manifest

     文件     330752  2014-09-07 21:24  TestImgGCP\Release\vc90.idb

............此处省略17个文件信息

评论

共有 条评论