资源简介
基于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-li
文件 663 2014-09-07 21:35 TestImgGCP\Debug\TestImgGCP.exe.em
文件 728 2014-09-07 21:35 TestImgGCP\Debug\TestImgGCP.exe.em
文件 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-li
文件 616 2014-09-07 21:24 TestImgGCP\Release\TestImgGCP.exe.intermediate.manifest
文件 330752 2014-09-07 21:24 TestImgGCP\Release\vc90.idb
............此处省略17个文件信息
- 上一篇:倒车雷达介绍 现代倒车雷达LIN BUS
- 下一篇:虚拟机实用技巧 FAQ 一
相关资源
- opencl编程指南随书代码
- OPENCL编程指南随书源码
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- MPI和CUDA在多层快速多极子中的应用
- eetop.cn_OpenCL.Parallel Computing on the GPU
- CUDA实现的图像融合算法
- GPU高性能运算之CUDA源代码
- CUDA实现稀疏大矩阵乘法
- 使用CUDA做图像模湖匹配
- 深入浅出谈CUDA.
- OpenCL48_CN.pdf
- 基于CUDA 的矩阵乘法和FFT 性能测试
- 《GPU高性能计算之CUDA》书中源代码
- CUDA9.2及cudnn7.1 for win10
- CUDA Fortran for Scientists and Engineers[英文
- _CPU_GPU协同并行计算研究综述_cuda_op
- nVIDIA显卡CUDA性能测试工具,可测试
- CUDA的图像分割并行算法的设计与实现
- Jetson-TX2手动安装CUDA和Cudnn.pdf
- cuda_cudpp源码
- amd中文opencl教程
- 《CUDA C编程权威指南》的源码
- matconvnet的gpu编译版本(cuda7.5)
- OpenCL规范1.2正体中文版 beta1
- NVAPI_R410-developer
- nvdia cuda c best practices guide
- 基于OpenCL并行加速算法研究及其FPGA实
- CUDA && GPU 数据传输测试
- OpenCL中文入门完整教程
- The CUDA Handbook: A Comprehensive Guide to
评论
共有 条评论