基于CUDA和OpenCL实现的高分一号遥感影像的RPC正射校正,并且取得了较高的加速比,适合遥感和图像处理的研发人员,对并行计算感兴趣的也可以下载
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8840 2014-09-13 20:14 TestImgGCPDebugBuildLog.htm
文件 553656 2014-09-07 21:35 TestImgGCPDebugGCPTest.obj
文件 545466 2014-09-07 21:35 TestImgGCPDebugImageWrap.obj
文件 67 2014-09-13 20:14 TestImgGCPDebugmt.dep
文件 36175 2014-09-13 13:44 TestImgGCPDebugOpenCL.obj
文件 227550 2014-09-08 19:03 TestImgGCPDebugRpcCUDAAlg.cu.obj
文件 13728 2014-09-13 15:12 TestImgGCPDebugRpcOpenCLAlg.obj
文件 316772 2014-09-13 20:14 TestImgGCPDebugRPCorth.obj
文件 81 2014-09-06 00:13 TestImgGCPDebugTestImgGCP.device-link.options
文件 663 2014-09-07 21:35 TestImgGCPDebugTestImgGCP.exe.embed.manifest
文件 728 2014-09-07 21:35 TestImgGCPDebugTestImgGCP.exe.embed.manifest.res
文件 621 2014-09-13 20:14 TestImgGCPDebugTestImgGCP.exe.intermediate.manifest
文件 748544 2014-09-13 20:14 TestImgGCPDebugvc90.idb
文件 405504 2014-09-13 20:14 TestImgGCPDebugvc90.pdb
文件 3373 2014-09-06 10:11 TestImgGCPGCPTest.cpp
文件 10348 2014-08-03 00:22 TestImgGCPImageWrap.cpp
文件 1090 2014-08-03 00:03 TestImgGCPImageWrap.h
文件 4209 2014-09-13 15:09 TestImgGCPkernel.cl
文件 2 2014-09-04 20:21 TestImgGCPKernel.cu
文件 3556 2014-09-13 13:44 TestImgGCPOpenCL.cpp
文件 617 2014-08-07 20:06 TestImgGCPOpenCL.h
文件 63360 2014-09-07 21:24 TestImgGCPReleaseBuildLog.htm
文件 887698 2014-09-06 15:21 TestImgGCPReleaseGCPTest.obj
文件 779982 2014-08-06 19:11 TestImgGCPReleaseImageWrap.obj
文件 67 2014-09-07 21:24 TestImgGCPReleasemt.dep
文件 226170 2014-09-07 21:24 TestImgGCPReleaseRpcCUDAAlg.cu.obj
文件 669829 2014-09-07 21:24 TestImgGCPReleaseRPCorth.obj
文件 30 2014-09-06 15:21 TestImgGCPReleaseTestImgGCP.device-link.options
文件 616 2014-09-07 21:24 TestImgGCPReleaseTestImgGCP.exe.intermediate.manifest
文件 330752 2014-09-07 21:24 TestImgGCPReleasevc90.idb
............此处省略17个文件信息
#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
“pszWkt1);
////解算仿射变换系数
//double dbGeoTran[6];
//GDALGCPsToGeoTransform(nGCPCountpGCPListdbGeoTran0);
//printf(“%f
“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秒
“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 TestImgGCPDebugBuildLog.htm
文件 553656 2014-09-07 21:35 TestImgGCPDebugGCPTest.obj
文件 545466 2014-09-07 21:35 TestImgGCPDebugImageWrap.obj
文件 67 2014-09-13 20:14 TestImgGCPDebugmt.dep
文件 36175 2014-09-13 13:44 TestImgGCPDebugOpenCL.obj
文件 227550 2014-09-08 19:03 TestImgGCPDebugRpcCUDAAlg.cu.obj
文件 13728 2014-09-13 15:12 TestImgGCPDebugRpcOpenCLAlg.obj
文件 316772 2014-09-13 20:14 TestImgGCPDebugRPCorth.obj
文件 81 2014-09-06 00:13 TestImgGCPDebugTestImgGCP.device-li
文件 663 2014-09-07 21:35 TestImgGCPDebugTestImgGCP.exe.em
文件 728 2014-09-07 21:35 TestImgGCPDebugTestImgGCP.exe.em
文件 621 2014-09-13 20:14 TestImgGCPDebugTestImgGCP.exe.intermediate.manifest
文件 748544 2014-09-13 20:14 TestImgGCPDebugvc90.idb
文件 405504 2014-09-13 20:14 TestImgGCPDebugvc90.pdb
文件 3373 2014-09-06 10:11 TestImgGCPGCPTest.cpp
文件 10348 2014-08-03 00:22 TestImgGCPImageWrap.cpp
文件 1090 2014-08-03 00:03 TestImgGCPImageWrap.h
文件 4209 2014-09-13 15:09 TestImgGCPkernel.cl
文件 2 2014-09-04 20:21 TestImgGCPKernel.cu
文件 3556 2014-09-13 13:44 TestImgGCPOpenCL.cpp
文件 617 2014-08-07 20:06 TestImgGCPOpenCL.h
文件 63360 2014-09-07 21:24 TestImgGCPReleaseBuildLog.htm
文件 887698 2014-09-06 15:21 TestImgGCPReleaseGCPTest.obj
文件 779982 2014-08-06 19:11 TestImgGCPReleaseImageWrap.obj
文件 67 2014-09-07 21:24 TestImgGCPReleasemt.dep
文件 226170 2014-09-07 21:24 TestImgGCPReleaseRpcCUDAAlg.cu.obj
文件 669829 2014-09-07 21:24 TestImgGCPReleaseRPCorth.obj
文件 30 2014-09-06 15:21 TestImgGCPReleaseTestImgGCP.device-li
文件 616 2014-09-07 21:24 TestImgGCPReleaseTestImgGCP.exe.intermediate.manifest
文件 330752 2014-09-07 21:24 TestImgGCPReleasevc90.idb
............此处省略17个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)