ENVI5.3新特性介绍
ENVI5.3于2015年8月3日正式发布。在ENVI5.3版本中,支持更多的传感器和数据格式,新增和改进图像处理算法,更加人性化操作界面,面向对象特征提取工具FX整合激光雷达处理功能,与ArcGIS一体化集成,全新的摄影测量扩展模块,更方便快捷ENVI二次开发。ENVI5.3主要有以下几个方面的改进:
-
传感器和数据格式
-
图像处理和界面改进
-
FX集成激光雷达处理功能
-
全新的摄影测量扩展模块
-
ENVI二次开发
1. 传感器和数据格式
-
Pleiades & SPOT tiled NITF
-
Deimos-2
-
DubaiSat-2
-
SkySat-1/2新的Google数据产品("Image Frames" & "Geo Imagery")
-
Sentinel-2A (哨兵2A)MSI Level 1C
-
OGC GeoPackage (GPKG)矢量的输入
图1 OGC WCS服务访问和查询数据
2. 图像处理和界面改进
(1)改进头文件编辑器
升级了之前编辑头文件(Edit Header)的功能,更加方便增加、修改和删除图像文件元数据信息。
(2)改进的时空分析工具
可自定义像元大小,可按照栅格数据的获取时间绘制出一个像元的时间剖面曲线。
图2 时空分析工具实时绘制某点时间序列曲线
(3)分类后小斑块处理工具
全新的小斑块处理工具对分类后的结果进行小斑块处理,可自动预览结果。
(4)光谱指数工具的改进
-
新增两个光谱指数——归一化淤泥指数(Normalized Difference Mud Index ——NDMI),用来突出显示淤泥/浅水像元;改进的归一化水体指数(Modified Normalized Difference Water Index ——MNDWI)增强开阔水域特征,来抑制建筑,植被和土壤的影响;
-
优化了光谱指数工具,根据输入数据的波长情况只显示可计算出的光谱指数
(5)QUAC大气校正算法改进
快速大气校正算法有所改进,提高了校正的精度
-
应用mud filtering剔除高度结构化的材料;
-
对于大多数传感器,基于可用波段的一小部分选择端元;当传感器跨可见光和近红外短波红外谱范围,该算法不包括波段中的可见区域;
-
当波长低于 650 毫微米,将会约束增益曲线为常数;
-
抑制茂密的植被的影响;
-
对于高光谱传感器水分吸收波段(940 to 1020 nm),移除云端元;
-
可使用掩膜文件,并支持NoData值、NaN值、无穷大/小值的输入设置
(6)Geospatial PDF改进
可以将整个视图的图层输出为Geospatial PDF文件。
(7)图像分类文件的编辑
在显示图像分类文件的图层上,右键选择Edit Class Names and Colors,可以修改分类名称和颜色。
(8)曲线平滑
在ENVI曲线窗口中新增曲线平滑功能,可以平滑波谱曲线、时间序列曲线等。
图3 波谱曲线平滑效果(左-平滑前,右-平滑后)
(9)空间子区与掩膜功能
在文件选择对话框中,可以根据栅格文件、矢量文件、ROI、地理坐标等确定空间子区。也可以选择掩膜文件。
图4 文件选择对话框中的空间子区选择
(10)支持GMTED2010 DEM数据的下载
最新的GMTED2010全球高程数据,分辨率是7.5秒
图5 更高分辨率的全球DEM数据
(11)处理性能提升
-
可批量处理多景数据
-
多时相、多波段数据显示性能有显著提升
-
CADRG读写速率和输出质量提升
图6 287景数据(4000*4000)显示,34G
3. FX集成激光雷达处理功能
-
File > Open... 或通过拖拽文件的方式打开点云数据
-
生成地表DEM和DSM
-
生成正射影像
-
生成等高线和地形TIN
-
可视域分析
-
……
-
图7 LiDAR传感器获取的点云数据
4. ENVI摄影测量模块
-
可从卫星传感器EO/IR平台立体像对中经过像元校正提取3D点云信息。
-
用(SGM)算法做密集影像匹配
-
传感器定位元数据用来约束沿极限维度的搜索
-
每一个像素都会对应生成一个三维点形成点云
-
输出强度或RGB文件的编码的LAS文件用于匹配
-
传感器支持:
-
带有RPC模型的ENVI标准格式数据
-
WorldView-1/2/3
-
GeoEye-1 in DigitalGlobe (.til) and PVL formats
-
IKONOS
-
Pleiades-1 & SPOT-6/7
-
QuickBird
下面是从不同的传感器数据中得到的点云数据结果
图8 Pléiades-1 – 澳大利亚墨尔本
图9 IKONOS – 科罗拉多博尔德
图10 WorldView-1 – 阿拉伯利亚德
图11 WorldView-3 – 西班牙罗塔岛
5.二次开发
表1 54个新增ENVITask接口
Task |
功能描述 |
对具有加法噪声的栅格图像进行Lee自适应滤波 |
|
对具有加法和乘法噪声的栅格图像进行Lee自适应滤波 |
|
对栅格图像进行二值化,大于阈值赋予1,小于阈值赋予0 |
|
对栅格图像进行二值化,大于阈值赋予0,小于阈值赋予1 |
|
对栅格图像进行Bit Error自适应滤波 |
|
对多幅栅格图像进行无缝镶嵌 |
|
获取栅格图像增益和偏移值,用于快速大气校正(QUAC) |
|
根据一组特定的数组值对栅格图像进行掩膜 |
|
对栅格图像进行方向滤波 |
|
定义方向滤波窗口大小和方向,默认3×3,0° |
|
对栅格图像进行增强型Frost自适应滤波,减少斑点噪声,同时保留边缘特征 |
|
对栅格图像进行增强型Lee自适应滤波,减少斑点噪声,同时保留纹理特征 |
|
输出栅格图像密度分割.dsr文件 |
|
对栅格图像进行Frost自适应滤波,减少斑点噪声,同时保留边缘特征 |
|
对栅格图像进行Gamma自适应滤波,减少斑点噪声,同时保留边缘特征 |
|
对栅格图像进行高斯高通滤波 |
|
定义高斯高通滤波窗口大小,默认3×3 |
|
对栅格图像进行高斯低通滤波 |
|
定义高斯低通滤波窗口大小,默认3×3 |
|
利用两幅或多幅图像生成3D点云(基于密度图像匹配算法) |
|
将GeoJSON转换为ROI |
|
将GeoPackage转换为Shapefile |
|
从.dsr文件中获取栅格图像密度分割范围和颜色 |
|
从光谱库中获取特定地物的光谱信息 |
|
将栅格图像进行高阈值裁剪,大于设定阈值的赋予该阈值,小于设定阈值则不变 |
|
对栅格图像进行高通滤波 |
|
定义高通滤波窗口大小,默认3×3 |
|
对栅格图像进行Kuan自适应滤波 |
|
对栅格图像进行Local Sigma自适应滤波 |
|
对栅格图像进行拉普拉斯滤波 |
|
定义拉普拉斯滤波窗口大小,默认3×3 |
|
将栅格图像进行低阈值裁剪,小于设定阈值的赋予该阈值,大于设定阈值则不变 |
|
对栅格图像进行低通滤波 |
|
定义低通滤波窗口大小,默认3×3 |
|
对栅格图像进行掩膜(基于阈值) |
|
对栅格图像进行中值滤波 |
|
对具有乘法噪声的栅格图像进行Lee自适应滤波 |
|
对栅格图像进行掩膜(基于ROI) |
|
获取光谱库中所有地物光谱名称 |
|
查询指定Task描述信息 |
|
查看所有可用Task列表 |
|
对栅格图像进行卷积运算 |
|
计算栅格图像直方图 |
|
获取栅格图像特定元数据信息 |
|
重投影一系列栅格为一个同样的空间格网,使用自定义的grid |
|
对栅格图像进行重投影 |
|
对地物光谱进行重采样 |
|
对栅格图像进行罗伯特滤波 |
|
设置栅格图像元数据信息并生成.hdr头文件(之前无头文件;若栅格图像本身具有头文件,则覆盖掉原来数据) |
|
对栅格图像进行Sobel滤波 |
|
ENVISpectralAdaptiveCohe |
使用子空间背景统计的均值和方差,进行Adaptive Coherence Estimator (ACE)目标检测分析 |
排除异常值像元计算背景统计信息 |
|
对栅格图像进行掩膜处理(基于矢量,如shapefile) |
|
根据矢量记录生成对应ROIs |
表2 新增13个对象&方法
Object/Method |
Description |
对象:二值化虚拟栅格(大于阈值赋予1,小于阈值赋予0) |
|
对象:二值化虚拟栅格(大于阈值赋予0,小于阈值赋予1) |
|
对象:数组掩膜时生成的虚拟栅格 |
|
对象:同时对栅格数据进行辐射定标和阈值裁剪时生成的虚拟栅格 |
|
对象:高阈值裁剪时生成的虚拟栅格(大于阈值的像素赋予该阈值) |
|
对象:返回JagwireServer对象引用,基于该引用可以进行如下操作:查询JagwireServer上的栅格数据集哈希表,获取数据集元数据哈希表,关闭JagwireServer连接 |
|
对象:低阈值裁剪时生成的虚拟栅格(小于阈值的像素赋予该阈值) |
|
对象:快速大气校正(QUAC)生成的虚拟栅格 |
|
对象:重投影生成的虚拟栅格 |
|
方法:返回栅格数据ROI边界像素坐标 |
|
对象:返回光谱库对象的引用 |
|
方法:根据视图对栅格图像进行裁剪(虚拟栅格) |
|
方法:根据视图对栅格图像进行裁剪(文件) |
表3 新增12个Lidar相关ENVITask/对象&方法
Object/Method/Task |
描述 |
打开单个或多个点云数据(.las、.laz、.ntf,.sid,.txt,.bin)和工程文件(.ini),同时进行点云格式优化 |
|
打开单个点云数据(.las、.laz、.ntf,.sid,.txt,.bin),不进行点云格式优化 |
|
将ENVI LiDAR工程分解为若干个子工程,用于ESE并行处理 |
|
返回点云对象引用,基于该引用可以进行如下操作: – – – |
|
对点云进行特征提取,比如:提取建筑物、树木和电力线等 |
|
对点云数据进行过滤 |
|
获取点云元数据信息 |
|
存储点云特征提取Task获取的产品完整信息 |
|
返回ENVI::QueryPointCloud对象引用,基于该引用可以进行如下操作:获取特定范围已分类点云数据,关闭点云对象 |
|
点云数据空间参考对象,基于该对象可以进行如下操作:点云数据地理坐标系与投影坐标系相互转换,投影坐标系之间相互转换 |
|
启动ENVI LiDAR并初始化一个ENVI LiDAR对象,基于该对象可以进行如下操作:打开点云数据,打开shapefile文件,获取已经打开的点云对象,获取和设置视图范围,设置进度条在视图中的位置,关闭视图 |
|
对点云数据进行空间裁剪 |
表4 新增9个处理状态信息的对象&方法
对象&方法 |
描述 |
该方法返回一个对象引用系统的广播通道 |
|
如果有中止请求时候,使用此类进行通信 |
|
当编写自定义Task时候,使用此基类可以实现带有中止选项的进度条,可以设置三个方法: |
|
这是广播通道的引用,包括以下三个方法: · · · |
|
抽象类,用于其他信息类的超类。 |
|
抽象类,用于其他信息类的超类。如ENVIBroadcastChannel 调用 ENVIMessageHandler::OnMessage |
|
这个函数是用于构建一个ENVIStartMessage 对象送到ENVIBroadcastChannel. 如果一个ENVI用户界面运行,一个处理进度条将会出现。 |
|
这个函数是用于构建一个ENVIProgressMessage对象送到ENVIBroadcastChannel. 如果一个ENVI用户界面运行,处理进度条将会更新进度。 |
|
这个函数是用于构建一个ENVIFinishMessage 对象送到ENVIBroadcastChannel. 如果一个ENVI用户界面在有进度条的情况下运行,对话框将会关闭。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人