ENVI CLASSIC进行影像裁剪

本文详细介绍了ENVI软件中进行规则裁剪(包括基于图像、坐标、文件和.shp数据)和不规则裁剪(基于矢量边界或多边形)的过程,涉及步骤、选项和输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

影像裁剪的目的是将研究区以外的区域去除,经常是按照行政区划或研究区域的边界对图像进行裁剪,在基础数据生产中,还经常要做标准分副裁剪。按照ENVI的图像裁剪过程,可分为规则裁剪不规则裁剪

一、规则裁剪

1、在主菜单中,选择File→Open Image File,打开裁剪的图像

2、在主菜单中,选择Basic Tools→Resize Data (Sptial/Spectral)命令

3、在Resize Data Input File对话框中选择需要裁剪的图像

其中,Spatial Subset按钮在空间上对图像进行裁剪;Spactral Subset按钮在光谱空间上分割。

4、点击Spatial Subset按钮,设置规则裁剪的方式

5、选择剪切方式

(1)基于图像的裁剪,点击区域,通过输入行列数确定裁剪尺寸,按住鼠标左键拖动图像的红色矩形框确定裁剪区域,或者直接用鼠标拖动红色边框来确定裁剪尺寸以及位置

### ENVI 遥感影像拼接与裁剪方法 #### 使用ENVI进行遥感影像裁剪 裁剪是处理数据过程中常见的操作之一,其目的在于移除研究范围外的区域[^1]。通常有两种主要类型的裁剪方式: - **矩形裁剪**:按照指定坐标或尺寸定义矩形框来提取感兴趣的部分。 - **基于矢量或多边形文件(ROI)裁剪**:利用预先准备好的地理信息系统(GIS)矢量层作为掩膜来进行精确切割。 为了实现上述两种形式中的任意一种,在ENVI环境中可以采取如下步骤完成图像裁剪工作: ```matlab % 加载待裁剪的数据集 data = envi_open('input_image.hdr'); % 定义输出路径及名称 outputFile = 'cropped_output.img'; % 创建新的ENVI任务实例用于执行裁剪功能 cropTask = envitask('SubsetRaster', ... 'Input Raster', data, ... 'Output Raster URI', outputFile); % 设置裁剪参数 (这里假设采用矩形裁剪模式) if strcmp(cropType,'Rectangle') % 设定左上角X,Y坐标以及宽度高度 cropTask.Parameters.StartingSample = startX; cropTask.Parameters.StartingLine = startY; cropTask.Parameters.SubsetWidth = width; cropTask.Parameters.SubsetHeight = height; elseif strcmp(cropType,'Polygon') || strcmp(cropType,'ROIs') % 导入外部矢量文件(.shp,.roi等),并将其转换成内部格式供后续使用 roiData = shapefile_read('boundary.shp'); % 将读取到的空间对象设置给裁剪工具 cropTask.Parameters.ROI = roidata; end % 执行裁剪命令 cropTask.execute(); ``` 这段MATLAB风格伪代码展示了如何调用ENVI API接口创建`SubsetRaster`类的任务对象,并配置相应的输入输出选项和具体裁剪条件后启动该过程[^2]。 #### 进行遥感影像的拼接 当涉及到多景相邻或者重叠覆盖区间的卫星图片组合时,则需要用到所谓的“镶嵌”。此流程不仅限于简单地连接各部分形成更大规模的地图视图;更重要的是它能够调整不同源之间存在的辐射差异使得最终产物看起来更加协调一致[^3]。 以下是关于怎样借助ENVI平台实施高效便捷的影像拼接指南: ```matlab % 初始化一个空列表用来存储所有参与拼接的操作单元 mosaicList = []; for i=1:length(imageFiles) % 对每一张单独加载进来加入队列等待进一步加工 imgObj = envi_open(fullfile(inputDir,imageFiles{i})); mosaicList(end+1) = imgObj; end % 构建一个新的Mosaic Task实例负责统筹整个项目进展状况 mosaicTask = envitask('BuildMosaicFromRasters',... 'Input Rasters', mosaicList,... 'Output Filename', fullfile(outputDir,'final_mosaic')); % 如果需要的话还可以额外设定一些高级属性比如色彩平衡策略之类的... mosaicTask.Properties.HistogramMatchingMethod = 'None'; % 启动实际运算环节直至结束返回结果 mosaicTask.execute(); disp(['成功保存至:',fullfile(outputDir,'final_mosaic')]) ``` 以上脚本片段说明了通过循环遍历目标目录下所有的影像文件名集合,逐个打开它们并将这些资源注册成为即将构建马赛克结构的一部分成员。之后便能依据需求灵活定制更多细节上的控制项最后触发正式合成动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值