遥感图像镶嵌拼接:ENVI的Pixel Based Mosaicking工具操作方法
本文介绍基于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...”,打开镶嵌范围的配置框。

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

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

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

当然,这里还有一个找到不同遥感影像之间相对位置的办法。我们可以首先选定一个每一景遥感影像中都含有的地物标志像素,例如下图中黄色圆圈内的河流交界处的像元;随后,在ENVI软件中通过Crosshairs功能、Cursor Value功能确定该像元在每一景遥感影像中的像元位置(X与Y位置);接下来,对两景遥感影像的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”即可。

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

至此,大功告成。
遥感图像镶嵌拼接:ENVI的Pixel Based Mosaicking工具操作方法的更多相关文章
- ENVI提取水系并进行生态敏感性分析
4 具体步骤 4.1 DEM数据拼接 (1)打开ENVI软件,选择[File][Open],添加文件夹DEM数据中的影像,操作如图4.1.1所示,结果如图4.1.2. 图4.1.1 添加DEM数据影像 ...
- 【168】ENVI入门系列
参考:ENVI-IDL中国的博客 [ENVI入门系列]01.ENVI产品简介与入门 [ENVI入门系列]02.自定义坐标系(北京54.西安80.2000坐标系) [ENVI入门系列]03.基于自带定位 ...
- Tile based Rendering //后面一段是手机优化建议
https://www.imgtec.com/blog/a-look-at-the-powervr-graphics-architecture-tile-based-rendering/ 一种硬件结构 ...
- 关于位图读取函数int Load_Bitmap_File的lseek问题。
事情是这样的,本人在编译3D游戏编程大师技巧中的程序是遇到了一个关于位图读取函数int Load_Bitmap_File的lseek问题. 我使用以下位图读取函数读取位图事报错如下: int Load ...
- IDL与C#混合编程技术
C# (C Sharp)是微软公司在2000年6月发布的一种新的编程语言.C#与Java有很多的相似之处,包括了诸如单一继承.界面.与Java几乎同样的语法,和编译成中间代码再运行的过程.它又借鉴了D ...
- Detecting diabetic retinopathy in eye images
Detecting diabetic retinopathy in eye images The past almost four months I have been competing in a ...
- ENVI5.1批量镶嵌工具界面按钮显示不全的解决方案
打开批量镶嵌工具,在导出文件界面,部分按钮显示不全.具体见下图: 图 1 界面按钮显示不全 解决方案: 以win7.8系统为例: 显示桌面 – > 右键“个性化” – >显示 – > ...
- 地理信息系统公开课计划 前言I
对,就是地理信息系统(GIS),不是遥感RS,也不是编程,纯粹的地理信息系统. 地理信息系统=数学+物理+计算机+地理的烧脑组合. 但凡能知道.了解地理信息系统的人,基本上都不会是非知识分子,我就不矫 ...
- [No0000129]WPF(1/7)开始教程[译]
概要 在我使用了半年多 WPF 后,是时候写点关于 WPF 基础方面的东西了.我发表了一系列针对具体问题的文章.现在是到了让大家明白为什么说WPF是一款在界面开发上带来革命的产品了. 本文针对初级-中 ...
- CNN autoencoder 先降维再使用kmeans进行图像聚类 是不是也可以降维以后进行iforest处理?
import keras from keras.datasets import mnist from keras.models import Sequential from keras.layers ...
随机推荐
- 深入探索OCR技术:前沿算法与工业级部署方案揭秘
深入探索OCR技术:前沿算法与工业级部署方案揭秘 注:以上图片来自网络 1. OCR技术背景 1.1 OCR技术的应用场景 OCR是什么 OCR(Optical Character Recogniti ...
- 【二】强化学习之Parl基础命令--PaddlePaddlle及PARL框架{飞桨}
相关文章: [一]飞桨paddle[GPU.CPU]安装以及环境配置+python入门教学 [二]-Parl基础命令 [三]-Notebook.&pdb.ipdb 调试 [四]-强化学习入门简 ...
- Python 原生Socket实现端口扫描
端口扫描,就是逐个对一段端口或指定的端口进行扫描.通过扫描结果可以知道一台计算机上都提供了哪些服务,Python中使用Socket即可实现对特定端口的探测,以及对C段的扫描. 扫描目标主机Banner ...
- Linux基础命令 [补档-2023-06-28]
Linux基础命令 1-1.命令的基本格式 Linux系统命令的通用格式为: command [-options] [parameter] 其中 -command 命令本身 -op ...
- python list 转二叉树 及遍历
from __future__ import annotations from typing import Union from collections import deque class Tree ...
- spring boot jar混淆加密
最近在做一个智能床垫的机构版项目,客户要求部署到客户那边要做代码混淆防止代码被反编译. 一:在需要加密的jar的pom.xml文件添加依赖 <!-- 设置 jitpack.io 仓库 --> ...
- 关于OJ中的输入格式的问题
输入:1 2 3 4 5 6 7 8 9 10 如上的输入,并未告诉我们终止条件,这种无上限输入的格式可以用以下格式读入 int main() { int S[100]; int i = 0; whi ...
- SESSION会话机制解析
Windows Session(会话)的概念 会话 session 是由代表单个用户登录会话的所有进程和系统对象组成的.其中的对象包括所有的窗口,桌面和windows stations.桌面是特定se ...
- 从零开始的react入门教程(十),快速上手react-redux,相对于redux它究竟简化了什么?
壹 ❀ 引 在前面两篇文章中,我们介绍了redux与context部分概念与基本用法,这里我们做个简单复习. redux属于应用数据流框架,主要用于应用状态的管理,比如react中的state.其数据 ...
- Linux线程 | 创建 终止 回收 分离
一.线程简介 线程是参与系统调度的最小单位.它被包含在进程之中,是进程中的实际运行单位. 一个进程中可以创建多个线程,多个线程实现并发运行,每个线程执行不同的任务. 每个线程都有其对应的标识,称为线程 ...