本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiluoduyu/

从网上查看很多关于几何校正的代码,不过好像基本上都差不多,下载下来调试基本上都是说说而已,根本没法真正做到几何校正的目的。好多人也在怀疑GDAL到底能不能做几何精校正,经过自己的努力,我发现,其实只要稍微改一下,GDAL完全可以做到多项式几何精校正的,在此跟大家分享下思路,也希望大牛们有更好的方法的话共享下。

首先说一下最简单的几何校正模型---仿射校正模型(叫法可能不对,大家明白即可)。所谓仿射校正,即是通过地理坐标来确定转换关系的。首先根据控制点数组用GDALGCPToGeoTransform得到转换系数,然后代入待校正影像的四个角点坐标(0,0),(w,0),(0,h),(w,h)得到八个地理坐标值,对八个地理坐标值进行简单排序得到水平方向和竖直方向的四个最值。我觉得在做几何校正时最好能保持像元分辨率不变,因而通过将之前得到的地理坐标最值除以分辨率即可得到目标影像或结果影像的行列数,此时得到的行列数未必是整数,所以需要做下取整处理,处理之后别忘了对结果影像的像元分辨率做下调整,即根据地理范围与实际行列数重新计算一下,再结合待校正影像的其他四个地理系数即得到结果影像的地理坐标转换系数,这是个关键。之后便可逐像元进行坐标转换和重采样啦,我的重采样是自己写的,不一定有GDAL的好,不过感觉测试效果不差。也可以到GDAL的源文件里找它的重采样函数直接copy过来用的,不过自己之前写了,就懒得去看GDAL的重采样了。

上面说废话多了点,其实上面的方法只能做一次的校正,不能(或许是我不知道)做多项式校正。那为什么我还要介绍它呢?很简单,因为上面的方法给了我们一个新的解决思路。查看GDAL的API你会发现,GDAL它能够根据由控制点系数得到的地理转换系数来进行待校正影像影像地理坐标到校正影像(结果影像)的行列号影像坐标的转换,也就是说仿射校正中的待校正影像与结果影像坐标之间的转换计算可以通过GDAL来完成(看GDAL API 的GDALGCPTransform函数解析说明),而GDAL在获取地理转换系数时是可以多次的,那么只要我们对用GDAL计算出来的待校正影像坐标进行重采样再赋给对应的结果影像像元,这不就达到多项式几何校正的目的了吗?在重采样时我用的是自己的重采样函数,二次多项式校正的结果与原影像对比如下左边的是标准影像,中间的是仿射校正结果,右边的是gdal二次多项式校正结果,测试数据是envi4.5自带的示例数据,畸变影像其实是对原影像进行了简单的重投影后得到的:

不过也不知道为什么得到的多项式校正结果虽然基本校正过去了,但居然比仿射校正的还差。唉,也许是自己的细节处理还不够好吧。不够先这样吧,以后有时间再优化。

对上图所示程序有兴趣的朋友可到我的资源http://download.csdn.net/detail/xiluoduyu/5312172下载源码(在html文件夹里面搜index主页,主页里面有整个程序的帮助说明和源码),不用积分的。代码质量有点水,大家参考下就行了,当然有改良的想法的最好能告诉我一下啦。最近正打算将分类的模块添加进去,到时候会共享出来与大家分享的,期待中。。。

利用GDAL进行多项式几何校正校正新思路相关推荐

  1. 利用ENVI对遥感图像校正

    1.几何校正 引起图像几何变形一般分为两大类:系统性和非系统性.系统性一般由传感器本身引起,有规律可循和可预测性,可以用传感器模型来校正,卫星地面接收站已经完成这项工作;非系统性几何变形是不规律的,它 ...

  2. pythonchar中的拟合方法_在python中利用numpy求解多项式以及多项式拟合的方法

    构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时 ...

  3. 利用计算机得到阻尼振动曲线的包络线公式,利用阻尼振动测量气垫导轨阻尼系数的新思路.pdf...

    36 7 Vol.36 No.7 第 卷第 期 大 学 物 理 2017 7 COLLEGE PHYSICS July 2017 年 月 櫍櫍櫍櫍櫍殻 櫍 殻 物理实验 殻 櫍 殻櫍櫍櫍櫍櫍 利用阻尼 ...

  4. 利用GDAL(python)读取Landsat8数据

    本人编写了一个利用GDAL读取Landsat8数据的代码,现在已经拥有了读取.真彩色.假彩色显示等功能.准备日后再进行扩展. 注意:路径是相对路径,使用需自行修改. 这个代码是将压缩包解压出来的数据的 ...

  5. python中利用GDAL对tif文件进行读写

    利用GDAL库对tif影像进行读取 示例代码默认波段为[B.G.R.NIR的顺序,且为四个波段] import gdal def readTif(fileName):dataset = gdal.Op ...

  6. 利用ENVI实现图像几何校正

    ENVI是一款功能强大的GIS软件,利用它可以实现对图像的几何校正.在遥感.测绘等领域,通过雷达.红外或者可见光等手段对地面成像后,得到的图片不一定是上北下南左西右东的.所谓几何校正,指的是对图片进行 ...

  7. gdal java shp_【GDAL/OGR】利用GDAL/OGR读取shp文件并转换为json文件(Java版)

    前言: 对于GIS开发者来说,GDAL/OGR是最熟悉不过的开源GIS库了,GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间 ...

  8. 利用gdal给影像添加金字塔

    在遥感领域,许多图片的大小动辄上G.读取.显示这样的图片极为耗时,影响用户体验.金字塔技术在几乎不降低显示效果的前提下,大大降低了图片处理的耗时,改善了用户体验 目录 原理 操作方法 示例 解释 生成 ...

  9. 如何利用MATLAB对多项式进行计算?

    文章目录 0 前言 1 多项式的表示 2 多项式的四则运算 3 多项式的求导 4 多项式的求值 5 多项式的求根 结语 0 前言 欢迎大家点赞

最新文章

  1. JS,Jquery获取各种屏幕的宽度和高度
  2. share extension 不显示_这几项超好用的云开发扩展能力,别说你还不知道!
  3. 二一、MDT 2013 Update 1批量部署-客户端批量授权利用KMS服务器激活
  4. V 8 nfs+drbd+heartbeat
  5. java pk .net_Java与.Net大PK
  6. MDaemon日志报错:550 aa@*.com must check for new mail first
  7. Linux Ubuntu 下安装与卸载 JDK,亲测有效~
  8. Windows10设置动态视频桌面(占少量内存)
  9. FPGA学习——32位booth算法乘法器设计(串行输入、液晶屏输出)
  10. tp6导出Excel表格
  11. 重写JS保留小数-去尾法
  12. .NET Core剪裁器Zack.DotNetTrimmer升级瘦身引擎,并支持剪裁计划的录制和回放
  13. python爬取天猫_Python如何抓取天猫商品详细信息及交易记录
  14. C语言学习完后,C++与Java我应该怎么选择
  15. sim卡没坏但苹果手机无服务_手机突然显示无SIM卡?这样做就能恢复~
  16. 浅谈 RISC-V 软件开发生态之 IDE
  17. 31套VTK3D图像体绘制/VTK光线投射法/VTK三维重建程序源码
  18. 一个简单的判断三角形形状的C程序
  19. 鸿蒙系统陈教授,这位默默无闻的英雄教授,才是鸿蒙之父。
  20. 网页先锋 v1.5 官网

热门文章

  1. 今天买了一本雅思英语,个人感觉编的很好,好久没有遇到好书了。自己坚持,英文资料才是王道
  2. Java小项目中WEB-INF下jsp页面如何访问?
  3. 数字城市福清防汛应急平台(泉舟时代)
  4. 国密算法SM4 的JAVA实现(基于BC实现)
  5. 多媒体文件格式:TS 格式
  6. 进程间通信——共享内存(Shared Memory)
  7. 系统架构设计笔记(64)—— 嵌入式系统设计
  8. vue实现一个具有添加、删除、按关键字过滤的列表管理
  9. 利用Hyper-v部署Vista SP1 OS
  10. 关于宇航服的初始想法与改进