资源简介
基于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 一
相关资源
- cuda 权威指南习题答案及coda
- 解决GTX970、980等不能用CUDA转码的问题
- cuda 常用dll库
- CUDA学习资料
- CUDA for Engineers An Introduction to High Per
- OpenCL in Action.pdf
- OpenCL学习资料合辑(OpenCL编程指南O
- CUDA并行程序设计:GPU编程指南
- cuda8.0-windows10-64 桌面版离线安装包
- 高性能CUDA应用设计与开发方法与最佳
- Programming Massively Parallel Processors_ A H
- opencv3.4+opencv_contrib3.4+cuda10.0+tbb+win10
- cudnn-11.0-windows-x64-v8.0.2.39.zip
- cudnn-10.0-windows10-x64-v7.6.5.32.zip
- cudnn-9.1-windows7-x64-v7.1.3.zip
- CUDA并行程序设计 GPU编程指南-中文扫
- cudnn-10.0-windows10-x64-v7.6.0.64.rar
- cublas64_92.dll
- Cuda C 编程指南程润伟
- cudnn7.4+cuda10.0+tensorflwo1.4亲测,此文件
- cuDNN v7.1.2 (Mar 21 2018) for CUDA 9.0
- cudnn-9.0-windows10-x64-v7.2.1.38
- GPU高性能编程CUDA实战中文版.pdf
- cuda by examples 中文版
- 大规模并行处理器编程实战(中文版
- GPU高性能编程CUDA实战中文
- CUDA实现的直方图均衡化算法
- Hands-On GPU-Accelerated Computer Vision with
- CUDA专家手册 [GPU编程权威指南]完整版
- CUDA 高性能并行计算.pdf
评论
共有 条评论