ENVI实现基于像元方法的栅格图像镶嵌拼接(所有图像无需地理信息)

news2025/2/26 7:05:55

本文介绍基于ENVI软件,利用“Pixel Based Mosaicking”工具实现栅格遥感影像镶嵌拼接的方法。

首先需要说明的是,本文需要镶嵌的遥感影像并不含地理参考信息,因此仅可以使用ENVI中的“Pixel Based Mosaicking”工具(该工具可以对含有或不含有地理参考信息的图像进行镶嵌),而不是更为先进的“Seamless Mosaic”工具(该工具仅可对含有地理参考信息的图像进行镶嵌)。

我们先来看一下本文需要实现的需求。现有以下两景遥感影像,在ArcMap软件中打开,其中一景如下图所示。

另一景则如下图所示,可以看到两景遥感影像之间的重叠区域还是比较大的。

其中需要注意,这两景图像均不含任何的地理参考信息;因此在ArcMap中的显示,二者也是重叠起来的。而我们需要做的,就是对这两景遥感影像进行镶嵌。

明确了具体需求,接下来就可以开始镶嵌操作。首先,我们在ENVI软件中打开对应的两景遥感影像。选择“File”→“Open…”。

在弹出的文件选择窗口中,选中我们需要进行镶嵌的两景遥感影像文件,并选择“打开”。

接下来,在ENVI的工具箱中,依次选择“Mosaicking”→“Pixel Based Mosaicking”。

这里我们再强调一下,之所以不选择使用效果更好的“Seamless Mosaic”工具进行镶嵌,就是因为该工具仅可以对含有地理参考信息的栅格数据进行操作;下图为该工具的帮助文档,可以看到其中也提到了这一点。

对于本文的两景不含有地理参考信息的图像,如果我们将其添加到“Seamless Mosaic”工具中,就会提示因为图像不含有标准投影信息,所以不能进行这种方法的镶嵌。

言归正传。我们打开“Pixel Based Mosaicking”工具后,将会弹出如下所示的界面。

我们依次选择“Import”→“Import Files…”,进行待镶嵌数据的导入。

在弹出的数据选择窗口中,选中我们需要进行镶嵌的数据。

随后,会弹出一个镶嵌范围的配置框。在这里我们暂时不管它,直接选择“OK”即可。

随后,两景图像都被添加进入镶嵌工具中。

可以看到,此时两景影像依然是重叠在一起的,且不能拖动;而我们在后期对这两景遥感影像进行镶嵌时,肯定首先需要调整二者的位置。那么,我们就需要对刚刚提到的镶嵌范围进行扩大,从而让我们可以拖动两景遥感影像。

依次选择“Options”→“Change Mosaic Size…”,打开镶嵌范围的配置框。

在弹出的窗口中,将二者适当扩大,从而调整镶嵌区域的XY的像素范围。

随后,我们即可用鼠标左键拖动两景遥感影像。

接下来,不断拖动遥感影像,使其二者处于正确的空间位置。用“Pixel Based Mosaicking”工具镶嵌不含有地理参考信息的栅格图像时,有一个比较麻烦的地方——其不能调整每一景遥感影像的透明度;这就会导致我们在拖动两景遥感影像时,会稍微有些不方便确认二者是否完全匹配到合适的位置。我们只能在图像上右键,通过如下图所示的选项不断切换两景遥感影像之间的显示优先级,从而大致判断图像是否处于合适的位置。

当然,这里还有一个找到不同遥感影像之间相对位置的办法。我们可以首先选定一个每一景遥感影像中都含有的地物标志像素,例如下图中黄色圆圈内的河流交界处的像元;随后,在ENVI软件中通过Crosshairs功能、Cursor Value功能确定该像元在每一景遥感影像中的像元位置(XY位置);接下来,对两景遥感影像的X位置与Y位置依次做差,并依据差值修改下图红色方框内的图像左上角点的像元位置,就可以快速确定两景遥感影像之间的相对位置。

确定了遥感影像之间的相对位置后,我们还需要分别查看每一景遥感影像背景值(NoData值)处像元的数值,为了后期的镶嵌做准备。这里我们依然通过Crosshairs功能、Cursor Value功能实现即可。

每一景图像最好都确认一下,防止后期镶嵌时出现问题。

随后,对每一景遥感影像的名称右键,选择“Edit Entry”选项。

在弹出的窗口中,第一项输入我们刚刚获取的遥感影像的背景值,第二项选择图像接边线的羽化范围;随后,配置图像显示的RGB通道与拉伸比率,并对图像的颜色均衡进行调整。对于颜色均衡,我们只需要对待镶嵌图像中的任意一景的“Color Balancing”选择“Fixed”即可,其它图像均选择“Adjust”。

对每一景遥感影像都进行“Edit Entry”操作。同时不要忘记,其它遥感影像的“Color Balancing”都要选“Adjust”。

配置完毕后,在“Pixel Based Mosaicking”工具工具窗口下方,可以看到每一景遥感影像的参数设置。

接下来,即可开始镶嵌操作。依次选择“File”→“Apply”。

在弹出的窗口中,配置镶嵌后图像的保存路径与名称,并将“Color Balance using:”一项选择为“stats from complete files”即可。

随后,即可进行图像的镶嵌。稍等片刻,得到镶嵌完毕后的结果如下图所示。

至此,大功告成。

参考:参考文献链接

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

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

相关文章

SpringMVC简介、请求与响应、REST风格、SSM整合、拦截器

目录 SpringMVC简介 SpringMVC概述 入门案例 入门案例工作流程分析 Controller加载控制 PostMan 请求与响应 设置请求映射路径 五种类型参数传递 JSON数据传输参数 JSON对象数据 JSON对象数组 日期类型参数传递 响应 REST风格 REST风格简介 RESTful入门案例…

前后端分离实现社区销售系统

在当今的互联网时代,社区销售系统越来越普及。这种系统可以方便地管理商品、订单以及会员等信息,使得销售过程更加高效和便利。本文将介绍如何通过前后端分离的方式实现一个社区销售系统。 需求分析 社区销售系统主要包括会员管理、商品管理、订单管理…

C++ ---- 类和对象(中)

目录 类的默认成员函数介绍 构造函数 构造函数概念 构造函数特性 析构函数 析构函数概念 析构函数特性 拷贝构造 拷贝构造概念 拷贝构造特点 赋值重载 赋值重载介绍 赋值重载特性 取地址重载和const取地址重载 const成员 取地址和const取地址重载 类的默认成员函…

【致敬未来的攻城狮计划】— 连续打卡第三十天:总结与回顾

学习目标: 自2023年4月13日开始,我参加了为期一个月的【致敬未来的攻城狮计划】,今天是第三十天,做一个总结和回顾。 我参加的是【致敬未来的攻城狮计划】第二期(攻城狮计划) 在这里首先还是感谢 李…

【云服务器】关于UDP/TCP跨平台网络通信服务器无响应的情况及解决办法

关于跨平台网络通信服务器无反应的情况 一、问题出现二、云服务器Centos7防火墙开放端口2.1 检查防火墙状态2.2 开启防火墙2.3 在running 状态下,向firewall 添加需要开放的端口2.4 重新加载防火墙配置2.5 查看端口是否放开 三、云服务器防火墙配置开放端口3.1 进入…

决策树与随机森林

决策树解决回归问题时进行平均数计算。 决策树 (1)熵(entropy)与特征节点 熵(entropy),度量着信息的不确定性,信息的不确定性越大,熵越大。信息熵和事件发生的概率成反比。 ■信息熵代表随机变量的复杂度…

c++《list容器的使用》

本文主要介绍list的一些常见接口的使用 文章目录 一、list的介绍二、list的使用2.1 list的构造函数2.2 list迭代器的使用2.3 list相关的容量大小相关的函数2.4 list数据的访问相关的函数2.5 list的数据调整相关的函数2.6 list中其他函数操作 一、list的介绍 list是可以以O(1)的…

IOC理论推导

1.UserDao接口 package com.kuang.dao;public interface UserDao {void getUser(); }2.UserDaoImpl业务接口 package com.kuang.dao;public class UserDaoImpl implements UserDao{Overridepublic void getUser() {System.out.println("默认获取用户数据");} }3.Us…

【ChatGPT】国内免费使用的ChatGPT镜像

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 什么是ChatGPT镜像? 亲测: 一、二狗问答(AI对话) 二、AiDuTu 三、WOChat 四、ChatGPT(个人感觉最好用) 我们可以利用ChatGPT干什么? 一、三分…

基于Python3的tkinter Text文本框加滚动条显示信息

用tkinter进行界面程序开发中,经常需要将信息展示到界面上,给用户及时的反馈和想要看到的结果。Text控件允许用户以不同的样式、属性来显示和编辑文本,它可以包含纯文本或者格式化文本,同时支持嵌入图片、显示超链接以及带有 CSS …

C++ Primer Plus——第6章 分支语句和逻辑运算符

第6章 分支语句和逻辑运算符 6.1 if语句6.1.1 if else语句6.1.2 格式化if else语句6.1.3 if else if else结构 6.2 逻辑表达式6.2.1 逻辑OR运算符:||6.2.2 逻辑AND运算符:&&6.2.3 用&&来设置取值范围 6.1 if语句 if语句让程序能够决定是…

CSP-202212-2 训练计划

目录 一、题目 二、思路 三、C代码如下 一、题目 问题背景 西西艾弗岛荒野求生大赛还有 n 天开幕! 问题描述 为了在大赛中取得好成绩,顿顿准备在 n 天时间内完成“短跑”、“高中物理”以及“核裂变技术”等总共 m 项科目的加强训练。其中第 i 项…

【源码解析】@ControllerAdvice实现异常捕获与响应增强处理的原理解析

全局异常处理 demo展示 Slf4j RestControllerAdvice public class GlobalExceptionAdvice {ExceptionHandler(RuntimeException.class)public R<Void> handleNotPermissionException(RuntimeException e, HttpServletRequest request) {String requestURI request.get…

卷土重来?我羊羊羊羊羊了!

大家注意&#xff1a;因为微信最近又改了推送机制&#xff0c;经常有小伙伴说错过了之前被删的文章&#xff0c;比如前阵子冒着风险写的爬虫&#xff0c;再比如一些限时福利&#xff0c;错过了就是错过了。 所以建议大家加个星标&#xff0c;就能第一时间收到推送。&#x1f44…

顶尖作品集封面封底来了 共28套

各位打算换工作的都找到心仪东家没? 我们都知道作品集作为我们的敲门砖 其重要性不言而喻 如何让我们的作品集脱颖而出 这里作品集封面就很重要一个设计感超强的封面 可以让面试官眼前一亮 今天给大家整理了28款设计师专属作品集封面封底 让HR看后过目不忘大大提高面试…

删除二叉搜索树中的节点

1题目 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key 对应的节点&#xff0c;并保证二叉搜索树的性质不变。返回二叉搜索树&#xff08;有可能被更新&#xff09;的根节点的引用。 一般来说&#xff0c;删除节点可分为两个步骤&#xff1a…

Oracle EBS Interface/API(48)- AP发票取消API

快速参考 参考点内容功能导航N: AP->发票->录入->发票并发请求None基表AP.AP_INVOICES_ALLAPI参考下面介绍错误信息表None接口FormNone接口RequestDebug ProfileNone详细例子参考如下实例官方文档None数据验证包None用户界面 Path:AP->发票>录入>发票->活…

Android Studio下配置NDK和Cmake

文章目录 NDK简介AS上安装NDK和CmakeAS项目中添加支持C和CMake NDK简介 ndk是SDK的扩展部分&#xff0c;ndk是一套在Android Studio 上支持开发及编译链接C/C的工具链。 AS上安装NDK和Cmake 点击完OK后&#xff0c;等待安装就行了。安装完毕后&#xff1a; 在local.propertie…

Windows在外远程桌面控制macOS【macOS自带VNC远程】

文章目录 前言1.测试局域网内远程控制1.1 macOS打开屏幕共享1.2 测试局域网内VNC远程控制 2. 测试公网远程控制2.1 macOS安装配置cpolar内网穿透2.2 创建tcp隧道&#xff0c;指向5900端口 3. 测试公网远程控制4. 配置公网固定TCP地址4.1 保留固定TCP地址4.2 配置固定TCP端口地址…

使用Process Monitor排查因dll库被锁定导致C++程序启动报“0xc0000022”错误问题

目录 1、问题描述 2、查找到异常值0xc0000022对应的标识STATUS_ACCESS_DENIED 3、使用Process Monitor定位到哪个dll库被隔离了 4、在360安全卫士中将被隔离的文件恢复了&#xff0c;但360并没有释放对文件的锁定 VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢…