资源简介
《GDAL源码剖析与开发指南》书籍代码及数据
代码片段和文件信息
/***************************************************************************
*
* Time: 2013-06-27
* Project: 遥感算法演示
* Purpose: 遥感算法演示
* Author: 李民录
* Copyright (c) 2013 liminlu0314@163.com
* Describe: 遥感算法演示,在下面的所有的算法中,
* 都没有对输入输出的路径以及文件是否存在进行检查,
* 默认认为所有的输入和输出参数都是合理的
*
****************************************************************************/
#include “GDALAlgorithm.h“
int ImageResample1(const char* pszSrcFile const char* pszDstFile double dResX double dResY
const char* pszFormat CProcessbase* pProcess)
{
// 前面需要对输入输出的文件路径进行判断,这里不进行判断直接处理
if(pProcess != NULL)
{
pProcess->ReSetProcess();
pProcess->SetMessage(“开始重采样...“);
}
GDALAllRegister();
GDALDataset *pSrcDS = (GDALDataset*)GDALOpen(pszSrcFile GA_ReadOnly);
GDALDataType eDT = pSrcDS->GetRasterBand(1)->GetRasterDataType();
int iBandCount = pSrcDS->GetRasterCount();
int iSrcWidth = pSrcDS->GetRasterXSize();
int iSrcHeight = pSrcDS->GetRasterYSize();
// 根据采样比例计算重采样后的图像宽高
int iDstWidth = static_cast( iSrcWidth * dResX + 0.5);
int iDstHeight = static_cast( iSrcHeight * dResY + 0.5);
double adfGeoTransform[6] = {0};
pSrcDS->GetGeoTransform(adfGeoTransform);
// 计算采样后的图像的分辨率
adfGeoTransform[1] = adfGeoTransform[1] / dResX;
adfGeoTransform[5] = adfGeoTransform[5] / dResY;
// 创建输出文件并设置空间参考和坐标信息
GDALDriver *poDriver = (GDALDriver *) GDALGetDriverByName(pszFormat);
GDALDataset *pDstDS = poDriver->Create(pszDstFile iDstWidth iDstHeight iBandCount eDT NULL);
pDstDS->SetGeoTransform(adfGeoTransform);
pDstDS->SetProjection(pSrcDS->GetProjectionRef());
int *pBandMap = new int[iBandCount];
for (int i=0; i pBandMap[i] = i+1;
// 下面这里需要根据数据类型来判断,申请不同类型的缓存来进行处理,这里仅仅以8bit图像进行演示
if (eDT == GDT_Byte) // 如果是8bit图像
{
// 申请所有数据所需要的缓存,如果图像太大应该用分块处理
DT_8U *pDataBuff = new DT_8U[iDstWidth*iDstHeight*iBandCount];
pSrcDS->RasterIO(GF_Read 0 0 iSrcWidth iSrcHeight pDataBuff iDstWidth iDstHeight eDT iBandCount pBandMap 0 0 0);
pDstDS->RasterIO(GF_Write 0 0 iDstWidth iDstHeight pDataBuff iDstWidth iDstHeight eDT iBandCount pBandMap 0 0 0);
RELEASE(pDataBuff);
}
else
{
// 其他类型的图像,与8bit类似,就是申请的缓存类型不同而已
}
RELEASE(pBandMap);
GDALClose((GDALDatasetH)pSrcDS);
GDALClose((GDALDatasetH)pDstDS);
if(pProcess != NULL)
pProcess->SetMessage(“重采样完成!“);
return RE_SUCCESS;
}
int ImageResample2(const char* pszSrcFile const char* pszDstFile double dResX double dResY
GDALResampleAlg eResampleMethod const char* pszFormat CProcessbase* pProcess)
{
// 前面需要对输入输出的文件路径进行判断,这里不进行判断直接处理
if(pProcess != NULL)
{
pProcess->ReSetProcess();
pProcess->SetMessage(“开始重采样...“);
}
GDALAllRegister();
GDALDataset *pSrcDS = (GDALDataset*)GDALOpen(pszSrcFile GA_ReadOnly);
GDALDataType eDT = pSrcDS->GetRasterBand(1)->GetRasterDataType();
int iBandCount = pSrcDS->GetRaste
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4472 2013-06-28 10:19 GDAL书籍代码\第七章代码\GDALAlg\GDALAlg.vcproj
文件 6955 2013-06-29 19:36 GDAL书籍代码\第七章代码\GDALAlg\GDALAlgCore.h
文件 66769 2013-08-15 17:43 GDAL书籍代码\第七章代码\GDALAlg\GDALAlgorithm.cpp
文件 11241 2013-08-15 15:57 GDAL书籍代码\第七章代码\GDALAlg\GDALAlgorithm.h
文件 1589 2014-03-14 19:17 GDAL书籍代码\第七章代码\GDALAlg\GDALAlgVersion.rc
文件 1358 2013-06-28 11:49 GDAL书籍代码\第七章代码\GDALAlg.sln
..A..H. 54272 2013-10-31 20:48 GDAL书籍代码\第七章代码\GDALAlg.suo
文件 18045 2013-10-31 20:24 GDAL书籍代码\第七章代码\GDALAlgTest\GDALAlgTest.cpp
文件 3866 2013-10-31 20:22 GDAL书籍代码\第七章代码\GDALAlgTest\GDALAlgTest.vcproj
文件 91136 2013-07-09 19:05 GDAL书籍代码\第七章代码\Release\GDALAlg.dll
文件 111452 2013-07-09 19:05 GDAL书籍代码\第七章代码\Release\GDALAlg.lib
文件 84992 2013-07-10 21:36 GDAL书籍代码\第七章代码\Release\GDALAlgTest.exe
文件 7017 2013-04-03 14:04 GDAL书籍代码\第三章代码\GDALCpp3Test.cpp
文件 7995 2013-04-03 14:05 GDAL书籍代码\第三章代码\GDALCs3Test.cs
文件 4646 2013-04-03 15:16 GDAL书籍代码\第三章代码\GDALPy3Test.py
文件 4885 2013-05-31 16:52 GDAL书籍代码\第三章代码\OGRla
文件 5971 2013-05-31 11:56 GDAL书籍代码\第三章代码\OGRla
文件 889 2013-05-29 09:17 GDAL书籍代码\第三章代码\OGRla
文件 3647 2013-05-31 11:56 GDAL书籍代码\第三章代码\OGRla
文件 2200 2013-04-03 20:30 GDAL书籍代码\第二章代码\GDALCpp2Test.cpp
文件 3071 2013-04-03 20:31 GDAL书籍代码\第二章代码\GDALCs2Test.cs
文件 2721 2013-04-03 20:31 GDAL书籍代码\第二章代码\GDALJavaTest.java
文件 1919 2013-04-03 20:31 GDAL书籍代码\第二章代码\GDALPyTest.py
文件 2044 2013-04-03 20:29 GDAL书籍代码\第四章代码\GDALCpp1Test.cpp
文件 2937 2013-04-03 20:29 GDAL书籍代码\第四章代码\GDALCs1Test.cs
文件 1355 2013-04-03 20:27 GDAL书籍代码\第四章代码\GDALJava1Test.java
文件 714 2013-02-26 23:05 GDAL书籍代码\第四章代码\GDALPy1Test.py
文件 423596 2013-04-22 15:15 GDAL书籍数据\10-Data\cfill.tif
文件 422576 2013-04-22 14:38 GDAL书籍数据\10-Data\class.tif
文件 422576 2013-04-22 14:49 GDAL书籍数据\10-Data\class_sieve.tif
............此处省略137个文件信息
- 上一篇:TimingDesigner 9.1破解版
- 下一篇:深入浅出Node.js.pdf
相关资源
- GDAL读写shp文件代码
- vc2010下编译好的gdal2.2.4库,支持wms、
- 使用GDAL库处理雷达影像
- gdal_ogr2.0.3.zip
- 使用gdal来显示图像
- 编译好的VS2012使用的gdal库
- 特征点提取Moravec、Forstner、Harris算法
- GeoserverTerrainProvider填坑简易教程
- 一套基于QT、GDAL、OpenGL的遥感影像显
- GDAL,geos联合编译的库,版本为1.8.0
- GDAL百分比截断拉伸调亮影像
- Qt+GDAL图像显示基本功能
- CHM格式的GDAL的帮助文档
- GDAL源码剖析(李民录).pdf
- VS2010下编译的GDAL1.9.1最新版
- 基于GDAL读写影像并做线性拉伸,调整
- gdal工具exe
- 编译好的GDAL库
- Cesium生成离线terrain地形数据所需所有
- GDAL-2.2.4-cp27-cp27m-win32.whl
- GDAL读取SHP文件完美解决中文无乱码,
- qt结合gdal实现图像读取操作
- GDAL打开ESRI FileGDB格式数据
- GDAL1.11 X86 X64
- QTMinGw下已经编译好的gdal库
- 编译可调试版的GDAL 2.2.1,并且添加
- GDAL1.10编译完成版
- 编译好的gdal,仅适用于VS2017
- GDAL源码剖析与开发指南
- GDAL源码剖析与开发指南(高清版)
评论
共有 条评论