ENVI自动地理配准栅格图像(至少一一幅图像含有地理信息)

news2025/3/1 4:56:56

本文就介绍一种在ENVI 5.3 (64-bit) 软件中,自动生成地面控制点,从而对遥感影像进行地理配准的方法。

我们先来看一下本文需要实现的需求。现有以下两景遥感影像,其中一景含有地理参考信息,而另一景则不含有任何地理参考信息。在ENVI软件中打开二者,可以看到其是重合在一起的,如下图所示。

我们要做的,就是对上述两景遥感影像进行自动地理配准。

明确了具体需求,接下来就可以开始地理配准操作。首先,我们在ENVI软件中打开对应的两景遥感影像;接下来,在ENVI的工具箱中,依次选择“Geometric Correction”→“Registration”→“Image Registration Workflow”。

弹出如下所示的“Image Registration”窗口。首先,是“File Selection”面板;其中,我们在第一个选项“Base Image File”中填入标准图像(在本文中就是那一景具有地理参考信息的图像),在第二个选项“Warp Image File”中填入待配准图像(在本文中就是那一景不含地理参考信息的图像)。

随后,点击“Next”,进入“Tie Points Generation”面板;如下图所示。其中,“Main”与“Advanced”页面中的各项参数都是和自动生成地面控制点有关的参数,我这里就都保持默认;各参数的具体含义这里就不再一一赘述,大家有需要的话直接点击面板左下方的小问号,查看软件帮助文档即可。

我们需要着重设置的参数,是“Seed Tie Points”页面中的相关内容。这里需要注意,首先,如果大家待配准的两景遥感影像和本文中一样,即一景带有地理参考信息,而另一景不带有地理参考信息的话,就需要先手动选择至少3个地面控制点(这三个点就叫做“种子点”),随后软件将自动生成剩余的地面控制点。其次,如果大家待配准的两景遥感影像都含有地理参考信息,但是二者的空间差距比较大(比如其中一景空间拉伸严重),也需要先手动选择几个地面控制点作为种子点,随后软件将自动生成剩余的地面控制点;这样子可以提高地理配准的精度。此外的其他情况(即待配准的两景遥感影像均含有地理参考信息且空间差异不大),那么就可以不生成任何种子点,直接进入下一步。

我们前面也提到了,本文的待配准图像一景带有地理参考信息,而另一景不带有地理参考信息,因此软件也会自动提醒我们,至少要先选择3个种子点。

种子点的选择方法也非常简单。点击“Start Editing”,随后软件将自动显示“Base Image File”中输入的图像。

我们在这一景图像中找到一个具有代表性的地物的点。

随后,右键并选择“Accept as Individual Points”。

接下来,软件将自动跳转显示“Warp Image File”中输入的图像。我们在该图像中找到前述具有代表性地物在这张图上的点,并同样右键选择“Accept as Individual Points”。

此时,可以看到我们已经选好了第一个种子点。

重复上述操作。我这里选择了4个种子点。

全部种子点都选择完毕后,点击“Stop Editing”。

此时可以点击“Show Table”,查看每一个种子点在两景图像中的位置。

没有问题后,点击“Next”,进入“Review and Warp”面板。此时可以看到,系统已经通过我们刚刚选择好的4个种子点,自动生成了63个新的地面控制点。

此时可以点击“Show Table”,查看每一个种子点在两景图像中的位置,以及其各自的得分与误差值。其中,我们可以对误差值(最后一列)进行降序排列,如下图所示。

并通过窗口下方的红色错号将误差值最大的若干个地面控制点删除。

确定无误后,点击“Next”,进入“Export”面板。

在这里,我们配置好地理配准后的新图层的保存路径与名称,并还可以将地面控制点信息一并导出。

导出完毕后,我们查看一下“Base Image File”中填入的标准图像与地理配准后得到的结果图像。通过调整右上角的透明度选项,我们可以看到两景遥感影像的相对位置已经是正确的,即地理配准完成。

如果对结果不满意,我们可以将得到的地理配准后图像作为新的待配准图像,重新执行上述操作。

参考连接:参考文献

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/520147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STL常用容器_1

目录 一、string容器 1、基本概念 2、构造函数 3、赋值操作 4、字符串拼接 5、查找和替换 6、字符串比较 7、字符存取 8、插入与删除 9、获取字串 二、vector容器 1、基本概念 2、构造函数 3、赋值操作 4、容量和大小 5、插入和删除 6、数据存取 7、互换容器…

Apache Hive

Hive的概念 Hive是Facebook开源出来,后来贡献给力Apache .宗旨是:提高分析数据的能力降低分析数据的开发成本。 Hive是基于 Hadoop 的一个数据仓库工具,用于分析数据的。 为什么说Hive是基于Hadoop的呢? ​ #作为一款数据仓库软件…

依次对两数组对应位置的元素进行逻辑判断numpy.logical_and()numpy.logical_or()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 依次对两数组对应位置的元素进行逻辑判断 numpy.logical_and() numpy.logical_or() [太阳]选择题 下列代码中np.logical_or(A, B)输出的结果是? import numpy as np A [True, Fa…

R语言 | 正态分布

目录 一、用直方图检验crabs对象 二、用直方图检验beaver2对象 三、用QQ图检验数据是否服从正态分布 四、shapiro.test()函数 所谓正态分布又称高斯分布,许多统计学的理论都是假设所使用的数据服从正态分布。 一、用直方图检验crabs对象 检验数据是否服从正态分…

Kubernetes❀ 详细教程-介绍

Kubernetes❀ 详细教程-介绍 Kubernetes详细教程-介绍1. Kubernetes介绍1.1 应用部署方式演变1.2 kubernetes简介1.3 kubernetes组件1.4 kubernetes概念 Kubernetes详细教程-介绍 1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上,主要经历了三个…

c++ 一个简单的请求程序

https://github.com/AHUT-GeekTeam/ESP32CAM_BaiduAI/blob/master/demo.ino HTTP格式 请求行 回车换行请求头 回车换行请求头 回车换行请求头 回车换行……请求头 回车换行 回车换行数据 jichu daima 参考黑马程序员的代码MAIN.C #include "b.h" //#include <p…

威纶通触摸屏复合式多功能按钮的使用方法

威纶通触摸屏复合式多功能按钮的使用方法 如下图所示,打开easy builder pro软件,新建一个测试项目,在元件中找到复合式多功能按钮,点击后放入画面中, 如下图所示,此时会弹出以下窗口,在动作中点击“+”图标,选择自己需要添加的动作, 如下图所示,首先添加一个位状…

C++类与对象—下

本期我们继续学习类与对象&#xff0c;没有看过上和中的小伙伴建议先看前两期内容 (2条消息) C类与对象—上_KLZUQ的博客-CSDN博客 (2条消息) C类与对象—中_KLZUQ的博客-CSDN博客 目录 1.再谈构造函数 1.1构造函数体赋值 1.2初始化列表 1.3 explicit关键字 2. static成员…

学成在线笔记+踩坑(12)——用户认证

导航&#xff1a; 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线牛客面试题 目录 1 需求分析 2 【认证模块】连接用户中心数据库 2.1 连接数据库认证 2.1.1 分析 2.1.2 实现&#xff0c;实现UserDetailsService接口 …

Golang每日一练(leetDay0064) 轮转数组、颠倒二进制位

目录 189. 轮转数组 Rotate Array &#x1f31f;&#x1f31f; 190. 颠倒二进制位 Reverse Bits &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 189. 轮转数组 Rotate Ar…

小曾同学【五周年创作纪念日】——努力向前冲的菜鸟

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c; 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想当开发的测试&#xff0c;不是一个好…

什么是UA?常见蜘蛛UA?怎么查询UA?

什么是UA? UA简介查看自己的UA修改它的常见用处搜索引擎蜘蛛UA大全常见蜘蛛UA标识 UA简介 UA其实是User Agent的简称。 所谓的User Agent其实就是浏览器在跟服务器通信的时候&#xff0c;一段百十来个字符的落款信息罢了。浏览器发送的每一个HTTP请求数据的头部都加了这个信息…

【C++】红黑树的插入分析及验证

文章目录 1. 红黑树概念2. 红黑树性质3. 结构定义关于默认节点为红/黑色的讨论 4. insert情况1—— uncle节点存在且为红色(g p c左斜形成一条直线)情况2——uncle节点不存在/存在且为黑色(g p c 左斜形成直线 右单旋)uncle节点不存在uncle节点存在并且为黑色 情况3——uncle节…

第7章链接:编译器驱动程序

示例程序由两个源文件组成&#xff0c;main.c 和 swap.c。 main函数初始化一个两元素的整数数组&#xff0c;然后调用swap函数来交换这一对数。 main.c void swap();int buf[2] {1, 2};int main() {swap();return 0; }swap.c extern int buf[];int *bufp0 &buf[0]; i…

【Java】Java中线程安全有哪些实现思路?

文章目录 1、使用 synchronized 关键字2、使用 ReentrantLock 类3、使用 ConcurrentHashMap 类4、使用 Atomic 类5、使用 ThreadLocal 类总结 在 Java 多线程编程中&#xff0c;线程安全是一个非常重要的概念。 线程安全通常指程序在多线程并发执行时&#xff0c;仍然能够保持正…

迄今为止,最强ChatGPT写论文技巧,总共6步,手把手告诉你

目录 第一步&#xff1a;现象确认 第三步&#xff1a;定位优质学术资源 第四步&#xff1a;对比分析 第五步&#xff1a;深挖启示 & 第六步&#xff1a;写论文 代写论文&#xff0c;不知道有多少朋友听说过&#xff0c;这是一门严格来说有点小众&#xff0c;但盈利空间…

常见问题解答:如何有效使用 Facebook 商务管理平台(BM)?

Facebook 商务管理平台&#xff08;BM&#xff09;是一个功能强大的工具&#xff0c;可帮助广告主在 Facebook 平台上管理和优化广告投放。然而&#xff0c;对于初次接触 BM 的用户来说&#xff0c;可能会遇到一些问题和困惑。本文将回答一些常见问题&#xff0c;帮助您更有效地…

如何使用分布式存储系统促进 AI 模型训练

在处理小型数据集和简单算法时&#xff0c;传统的机器学习模型可以存储在独立机器或本地硬盘驱动器上。然而&#xff0c;随着深度学习的发展&#xff0c;团队在处理更大的数据集和更复杂的算法时越来越多地遇到存储瓶颈。 这凸显了分布式存储在人工智能&#xff08;AI&#xf…

半监督学习笔记

聚类假设 假设输入数据点形成簇&#xff0c;每个簇对应于一个输出类&#xff0c;那么如果点在同一个簇中&#xff0c;则它们可以认为属于同一类。聚类假设也可以被视为低密度分离假设&#xff0c;即&#xff1a;给定的决策边界位于低密度地区。两个假设之间的关系很容易看出。一…

C++ 智能指针的原理、分类、使用

1. 智能指针介绍 为解决裸指针可能导致的内存泄漏问题。如&#xff1a; a&#xff09;忘记释放内存&#xff1b; b&#xff09;程序提前退出导致资源释放代码未执行到。 就出现了智能指针&#xff0c;能够做到资源的自动释放。 2. 智能指针的原理和简单实现 2.1 智能指针的原…