ENVI无缝镶嵌、拼接栅格数据的方法
本文介绍基于ENVI软件,利用“Seamless Mosaic”工具实现栅格遥感影像无缝镶嵌的操作。
在遥感图像镶嵌拼接:ENVI的Pixel Based Mosaicking工具操作方法这篇文章中,我们介绍了在ENVI软件中通过“Pixel Based Mosaicking”工具实现栅格遥感影像的镶嵌的方法。这一工具虽然可以对不含有地理参考信息的遥感影像进行镶嵌,但是其镶嵌的整体效果并不如“Seamless Mosaic”工具的效果。因此,本文就对基于“Seamless Mosaic”工具的栅格遥感影像镶嵌操作进行介绍。
首先,我们先来看一下本文需要实现的需求。现有以下两景遥感影像,二者均含有地理参考信息,如下图所示;这里我们再强调一下:如果待镶嵌的遥感影像中至少一景不含有地理参考信息,那么就无法使用“Seamless Mosaic”工具进行镶嵌。

而我们需要做的,就是对这两景遥感影像进行镶嵌。
明确了具体需求,接下来就可以开始镶嵌操作。首先,我们在ENVI软件中打开对应的两景遥感影像;随后,在工具箱中依次选择“Mosaicking”→“Seamless Mosaic”。

随后,将弹出如下所示的“Seamless Mosaic”工具窗口。

点击上图左上角的绿色加号,导入我们需要进行镶嵌的遥感影像。

导入数据完毕后,我们开始镶嵌参数的配置。这里提一句,镶嵌过程中大家最好始终勾选“Seamless Mosaic”工具窗口右上角的“Show Preview”选项,这样可以让我们时刻对镶嵌结果图像有一个初步的预览。
首先,在“Main”面板的“Data Ignore Value”选项中,填写两景遥感影像重叠区域的背景值(NoData值)。如下图所示,我们可以利用Crosshairs功能、Cursor Value功能获取重叠区域背景处像元的数值。

接下来,在“Color Matching Action”选项中,我们需要选择镶嵌后结果图像的颜色匹配基准图像。一般的,我们将导入“Seamless Mosaic”工具的任意一景遥感影像作为基准图像(即选择“Reference”),将其余所有图像作为待校正图像(即选择“Adjust”)即可。随后,在“Feathering Distance (Pixels)”选项中,配置接边线羽化的范围。

接下来,进入“Color Correction”面板,选中“Histogram Matching”,即开启直方图匹配,并选择是依据待镶嵌遥感影像的所有区域还是重叠区域作为直方图匹配的范围。

接下来,我们点击“Seamlines”选项;如下图所示。

此时,在待镶嵌遥感影像中可以看到软件自动生成了一条绿色的接边线;如下图所示。

系统生成接边线的操作是自动的,因此难免会出现接边线不理想的情况。我们可以选择“Start editing seamlines”选项,对系统生成的接边线进行修改。

修改接边线的方式也非常简单,我们只需要用鼠标在新接边线的路径上不断点击,从而画出新的接边线。

对某一段新的接边线绘制完毕后,双击鼠标左键,或右键选择“Accept Polygon”选项,即可完成这一段接边线的编辑。

例如,在上图中我绘制完毕后,右键选择“Accept Polygon”选项,可以看到接边线在这里就是沿着我画的新的范围来生成的。

这里有一个非常关键的部分——大家在对接边线进行绘制的过程中,一定要确保你开始绘制的第一个点与结束绘制的最后一个点,需要在原有接边线的同一侧。如下图所示,我开始和结束的两个点(两个黄色方框内的点)都是在原有绿色接边线的左侧的。

只有这个样子,才可以让新生成的接边线按照我们画好的路径生成;如下图所示。否则结束绘制后,会发现接边线没有发生任何变化,依然是系统默认的那个样子。

关于接边线的修改,如果大家还是不明白,可以查看这个动图。这里要非常感谢旧哥友情提供的动图~

接边线修改完毕后,如下图所示。可以看到我已经将原本笔直的接边线,按照成像区域的水体边界、道路等进行了修改;这样子镶嵌结果就会比较统一,不会明显地看到接边线的痕迹。

绘制完毕接边线后,我们可以选择“Save Seam Polygons”选项,对绘制好的接边线进行保存。

在弹出的窗口中输入接边线的保存路径与名称即可。

在今后,如果我们还想用这个保存好的接边线,就可以通过“Restore Seam Polygons”选项,导入之前保存好的接边线文件。

完成以上对接边线的操作后,我们进入“Seamlinse/Feathering”面板。在其中,我们选中“Apply Seamlines”选项,并对“Feathering”选项进行配置,从而调整镶嵌图像的接边线羽化设置。

最后,我们进入“Export”选项,对镶嵌结果图像的保存路径与名称进行设置;此外,还可以对结果图像的背景值、重采样方法与输出波段进行选择。这里的重采样方法,也就是“Resampling Method”选项,一般选择三次卷积即可。

随后,点击“Finish”。稍等片刻,就可以看到我们镶嵌好的结果图像了。

观察结果图像,可以发现我们几乎很难找到接边线的痕迹。这就是“Seamless Mosaic”工具实现栅格遥感影像无缝镶嵌的优势所在。
ENVI无缝镶嵌、拼接栅格数据的方法的更多相关文章
- 分享一个递归无限级拼接Json的方法---ExtJs的TreePanel和TreeGrid均适用(Ef,Lambda,Linq,IQueryable,List)
话不多说,先上实体类,如果你不是codefirst,就把它当成数据表结构. 下面是底层BaseDal获取数据的方法 (如果你没有Base类,直接写在你的DAL层和BLL层) 下面是BaseServi ...
- python—字符串拼接三种方法
python—字符串拼接三种方法 1.使用加号(+)号进行拼接 字符串拼接直接进行相加就可以,比较容易理解,但是一定要记得,变量直接相加,不是变量就要用引号引起来,不然会出错,另外数字是要转换为字 ...
- Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次
[请尊重原创版权,如需引用,请注明来源及地址] > 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现 ...
- 记一个jquery 无缝轮播的制作方法
接触前端也很久了,今天才发现,要做好一个轮播,其实有很多东西需要考虑进去,否则做出来的轮播效果并不好,下面我就来做一个轮播,是依赖jquery来写的 1.要做轮播,首先需要的是HTML的内容,css的 ...
- EL中拼接字符串的方法
近期在项目中碰到一个需要在JSP页面中比较两String类型的值的问题,于是想当然的写了如下代码: <c:if test="${'p'+longValue=='p1'}"&g ...
- Sql Server将一列字段拼接成字符串方法
最近在项目中遇到个问题,需要将表中某列字段合并成字符串输出,如果直接通过代码全部读取出来,再遍历进行拼接显然不是最好的方法,所以想着能否在数据读取的时候直接拼接好返回,网上搜了可通过for xml来实 ...
- jQuery 追加元素、拼接元素的方法总结(append、html、insertBefore、before等)
1. append & appendTo 的功能均为:在被选元素结尾(仍在元素内部)插入指定内容,但是内容和选择器的位置不同 (1) append()方法: $("#test&quo ...
- js中拼接HTML方式方法及注意事项
博主原创:未经博主允许,不得转载 在前端应用中,经常需要在js中动态拼接HTML页面,比如应用ajax进行局部刷新的时候,就需要在js中拼接HTML页面. 主要规则是将HTML页面的标签拼接为标签字符 ...
- tableView镶嵌加入CollectionView实现方法
创建一个继承UICollectionView的类QHCollectionView在QHCollectionView.h中添加接口方法 @interface QHCollectionView : UIC ...
- js 拼接table 的方法
<html> <head> <title>test page</title> <script type='text/javascript'> ...
随机推荐
- ansible系列(22)--ansible的Facts Variables
目录 1 Ansible Facts Variables 1.1 facts的获取方法 1.2 根据主机IP地址生成Redis配置文件 1.3 根据主机CPU核数生成Nginx配置 1.4 根据主机内 ...
- HTTP 结构概述
Web 客户端和服务器 Web 内容都是存储在 Web 服务器上的,Web 服务器所使用的是 HTTP 协议,因此经常被称为 HTTP 服务器,HTTP 服务器存储了因特网的数据.客户端向服务器发送 ...
- jeecg-boot中导出excel冲突问题
jeecg-boot自带的库是autopoi,如果自定义导出excel引入poi,则需要POI版本要保持一致,否则会出现冲突的情况,导致这2个都用不了的情况. Autopoi底层用的是POI库,poi ...
- 4G EPS 中的 PLMN 选择
目录 文章目录 目录 前文列表 PLMN 选择 前文列表 <4G EPS 中的系统消息类型> PLMN 选择 UE 开机后的第一件事情就是完成小区搜索,即完成和 eNB 的牵手.在牵手成功 ...
- MyBatis-Plus 实现多租户管理的实践
本文主要讲解使用Mybatis-Plus结合dynamic-datasource来实现多租户管理 在现代企业应用中,多租户(Multi-Tenant)架构已经成为一个非常重要的设计模式.多租户架构允许 ...
- pageoffice 5.x升级到pageoffice 6.x的关键步骤
Vue+Springboot前后端分离项目 将后端Springboot项目中pom.xml文件中对于pageoffice的jar引用升级成6.0版本,以maven中央仓库(https://mvnrep ...
- 基于Ubuntu-22.04安装K8s-v1.28.2实验(四)使用域名访问网站应用
安装负载均衡metalb 安装metalb kubectl create namespace metallb-system 配置metalb #kubectl create secret generi ...
- 关于对于Java中Entity以及VO,以及DTO中Request对象序列化的学习
关于 Serializable的探讨 前提引入 是由于软件测试上有同学提到说,什么该字段在程序刚运行时,导致jvm激增,所以吸引了我的注意 回顾代码 MybatisPlus Generator自动生成 ...
- TS码流解析(一)TS Header
有一些音视频初学者想要了解TS码流结构,但网上资料不全或者讲得不够清楚,使得学习过程变得异常艰难.这一篇内容将对TS码流结构做详尽解析,争取做到通俗易懂,成为最好的TS码流解析文章. 本篇TS码流解析 ...
- 7.18考试总结(NOIP模拟19)[u·v·w]
我们不是狼,我们只是长着獠牙的羊...... 前言 我真 TM 爱死 \(\frac{1}{4}\) 了. 老实说,这套题是真恶心,第一题还有一点思路,到了后面是一点都搞不定了. 总的来说,主要原因是 ...