envi4.7矢量数据裁剪
ENVI4.X裁剪影像数据

说明:ENVI4.X指的是版本4.5-4.8都可以这么操作,4.5之前的版本我木有用过,之后的版本只用过5.2。
第1步是转换格式。
第2-9步是裁剪影像。
1、转换格式:“.TAB”转“.shp”ENVI4.X认识的矢量文件有限,所以先把矢量界线转成“.shp”格式。
1)先把需要转换格式的文件拷贝到“C盘”2)打开Mapinfo。
3)在菜单栏找到“工具”→“Universal Translator”→“Universal Translator”(“Universal Translator”就是“通用转换器”,找不到英文就找汉语,不知道为什么我的这个菜单木有汉化)4)在“通用转换器”中选需要转换格式的文件,例如“达坂城区.TAB”①点击“下拉三角”,选择“Mapinfo TAB”;完成“①”后,点击下图中,弹出,点击下拉三角,选择“C盘”,找到刚才拷贝至“C盘”的“达坂城区.TAB”,选择后点击“打开”。
②上一步完成后,开始选择保存路径,点击下图中,选择“ESRIShape”;完成后选择保存路径,。
将“①、②”选择好后检查一下,一定要记好“保存路径”5)点击上图中的“确定”6)弹出,稍等一会儿;在“保存路径”中可看到:2、打开“ENVI4.X”,3、点击“File”→“Open Image File”,打开需要裁剪的影像,例如:乌鲁木齐市-WLMQ-2015。
,,点击“乌鲁木齐市-WLMQ-2015”选中后点击“Load RGB”,,打开后的经典三视图4、打开矢量界线:File→Open Vector File,找到刚才矢量界线的保存位置,例如:E 盘,选择“shapfile(.shp)”格式,选中“达坂城区-region.shp”,点击“打开”。
打开后,选择“OK”,选择“是”,选择“是”,选择“Select All Layers”,选择“Load Selected”,选择“Display #1”→点击“OK”,刚打开的矢量界线“达坂城区-region.shp”一般显示在“Scoll”窗口,界限一般是白色的,不太明显,右键单击“Current Layer”选择颜色,一般用红色比较明显,选择好后点击“Apply”。
12.利用ENVI进行矢量数据对影像做多边形裁剪0710yang.

利用矢量数据对影像做多边形裁剪ENVI中是可以利用矢量来对影像作多边形裁减的,但是要求矢量文件是面矢量文件,而且它要和需要裁剪的影像必须是配准的,裁减的方法是先将矢量转化成为感兴趣区域(ROI),再利用ROI裁减出感兴趣区域。
操作方法如下:1.打开影像文件和矢量文件分别在ENVI主菜单中选择File→Open Image File和File→Open Vector File 打开所要裁减的影像和矢量文件,它们会分别出现在可用波段列表和可用矢量列表中,如图所示:并在左上图中选择load selected将矢量叠加到影像上,确保矢量能够和影像叠加起来,叠加后如下图所示。
2、在可用矢量列表菜单中选择File Export Layers To ROI:3、在弹出的窗口中选择所要裁剪的影像文件,单击ok4、在接下来的Exprot EVF Layers to ROI窗口中根据自己的需要,选择第一个选项将所有的矢量导出成一个ROI或者选择第二个选项将每一个矢量分别到出成一个ROI,单击OK。
5、显示待裁剪影像,在待裁剪影像上选择ROI,上面转换ROI会自动加载到影像上,如下图所示,这样就可以根据ROI来对影像进行裁剪了。
5、裁剪方法:在ENVI主菜单中选择Basic Tools Subset Data via ROIs在弹出的对话框里选择待裁剪影像,如下图所示接下来,在弹出的Spatial Subset via ROI Param…窗口中选中所要裁减的ROI,并在Mask pixels outside of ROI处选成YES,这样才能裁减出矢量文件形状的区域,在Mask Background Value处添加区域以外的背景值,这里我们选择0作为背景值,(通常会选择-9999或是-999来作为背景值,但是也要针对不同的图像灵活运用,比如有的图像的数据类型是BYTE,那么它将只支持0-255,所以应该选择0-255之间的值作为背景值。
遥感图像处理--矢量裁剪详解

实验二
矢量处理
自绘矢量区
(1)打开要编辑的图像,单击主菜单栏vector/create new vector layer/using raster image file,
单击OK
(2)在弹出的新对话框中,填写layer name和output filename,单击OK
(3)选择load selected,选择display #1,单击OK
(4)弹出新的对话框,单击菜单栏mode/add new vectors,之后在image中绘制矢量区,单击右键结束,再单击右键,单击accept new polygon
(5)在主菜单栏file/open vector file,弹出对话框
单击file/export layer to roi,弹出对话框,选中图像,单击OK,出现新的对话框,选中convert all records of an evf layer to one roi…单击OK
(6)在主菜单栏单击basic tools/subset data via rois,弹出对话框中,选择图像,单击OK (7)在spatial subset via roi paraments对话框中,填写路径,单击OK
(8)显示结果。
ENVI中用矢量图裁剪栅格图想(不规则裁剪)

4、裁剪栅格数据:在ENVI主菜单Basic Tools 中选择Subset Data via ROIs,在Select Input File to Subset via ROI 中选择需要裁减的栅格数据,OK。然后出现Spatial Subset via ROI Param...对话框,在Slect Input ROIs 中选择建立的 xinjiang.roi。保存为xj19980401.img。
Will and Grace
2.envi中如果读入的矢量图象有经纬度显示代表该矢量图有地理坐标系。通常一副矢量图层一般不会显示经纬度信息,所以envi打开矢量图层的时候,必须先知道原本矢量图层的投影坐标系统。然后再envi软件中定义相ion)矢量图层的投影坐标信息时方便选中刚才定义的坐标系统。在这里还要说明两点,一是即使该矢量图层在envi中打开过,而且还定义了坐标系,但是当第二次打开的时候仍然是没有地理坐标信息,所以可以这样理解envi中定义坐标信息,它只是临时把投影坐标信息附加到矢量数据上去,因此当envi第二次打开矢量图层时,仍然需要定义投影坐标信息;二是在ArcGis中定义的矢量图层信息(.prj)在envi中是识别不出来的。
图一 导入Shape文件设置
(3)导入成功后在Available Vectors List中可以看到导入的shape文件,点击Load Selected,在弹出的对话框中选择world_dem所在的窗口,点确定就可以看到矢量数据加载到窗口中了。
图二 导入的矢量数据
图三 选择矢量数据加载的图层
3、将矢量数据转为ROI:在Availabel Vectors List选择数据,在 File 选择 Export Layers to ROI,然后在Select Data File to Associate with new ROIS 中选择需要裁减的栅格数据,再在Export EVF Layers to ROI中选择Convert all records of an EVF layer to one ROI,点击OK。转成xinjiang.roi了。
envi裁剪

镶嵌1、分别打开034、035的六个波段的图像,并分别合成034、035的文件。
2、Basic tools---mosaioking---georeferenced---在map basedmosaic中---import--- import files(同时选中034、035的合文件并打开)3、在下面#1右键---edit entry---第一个空0第二个40(可以任意选)---color balancing:fixed ----ok。
#2 除了color balancing:adjust 其他同上4file ---apply 命名并保存裁剪image窗口---overlay---region of interest---在对话框roi type---rectangle在image窗口画出一个区域、双击右键---#1 roi tool 窗口---file---subset data via rois---选中裁剪的合文件(例如034)---下一个对话框---点击select all items然后命名并保存,在available bands list 选择最上面的文件打开即可。
ENVI裁剪经验下一篇:ENVI/Erdas下裁剪栅格影像图的步骤一、basic tools-resize data进行规则裁剪:(虽然是进行图像重采样工具,但也可以用于简单快速的裁剪)1、图1:选中要裁剪的图像;对话框下面选择spatial subset(构建空间子集_就是裁剪图像)(另spectral subset-构建波谱子集)2、图2:提供多种裁剪方式:(1)直接输行列裁剪,这样裁剪的前提是你要预告查看需要图像所占的行列是多少。
(2)image裁剪,图3:可以输入需要裁剪图像的大小,然后鼠标可以拖动图中所选区域的位置直到合适的位置。
(3)或者是使用map、file、ROI/evf等方式进行裁剪。
但map、file两种方式个人感觉都不方便,roi/evf方式方便,但这里只能进行规则裁剪。
envi批量裁剪

利用ENVI 矢量evf批量裁剪影像(2011-07-28 14:40:09)转载标签:杂谈问题:需要从大量遥感影像中按感兴趣范围进行裁剪,如何批处理?解决方法:编写IDL+ENVI 批处理程序数据准备:遥感影像(只要是ENVI能识别的格式)和裁剪范围evf文件,将遥感影像和evf 放在一个文件夹下,而且遥感影像要有投影信息,之前觉得没必要说这个,但是发现有人用没有投影的影像和有投影的evf进行操作,其实想想就行不通。
遥感影像及矢量边界程序如下:PRO ClipViaEvfcompile_opt idl2ENVI, /RESTORE_BASE_SAVE_FILESENVI_BATCH_INIT, LOG_FILE='batch.txt';打开栅格数据cd,'E:\clip\';给出你的路径RawFiles = FILE_Search("*.raw");给出你的格式FileCount = N_ELEMENTS(RawFiles)IF FileCount EQ 0 THEN RETURNFOR NX =0,FileCount -1 DO BEGINFileName = RawFiles[NX]envi_open_file, FileName , r_fid=fidif (fid eq -1) then beginenvi_batch_exitreturnendifPRINT, 'fid=',fid;获取相关信息ENVI_FILE_QUERY,fid,DIMS=dims,NS=ns,NL=nl,NB=nb, BNAMES= BNAMESt_fid=LONARR(nb)+fidpos=LINDGEN(nb)indexstr = strpos(FileName,".raw")out_name = strmid(FileName,0,indexstr) + "_roi.raw";打开矢量文件evf_file ='roi_.evf';evf_id=ENVI_EVF_OPEN(evf_file);获取相关信息ENVI_EVF_INFO, evf_id, num_recs=num_recs, $data_type=data_type, projection=projection, $layer_name=layer_nameroi_ids = LONARR(num_recs);读取各个记录的点数FOR i=0,num_recs-1 DO BEGINrecord = ENVI_EVF_READ_RECORD(evf_id, i);转换为文件坐标ENVI_CONVERT_FILE_COORDINATES,fid,xmap,ymap,record[0,*],record[1,*] ;创建ROIroi_id = ENVI_CREATE_ROI(color=4, $ns = ns , nl = nl)ENVI_DEFINE_ROI, roi_id, /polygon, xpts=REFORM(xMap), ypts=REFORM(yMap) roi_ids[i] = roi_id;记录XY的区间,裁剪用IF i EQ 0 THEN BEGINxmin = ROUND(MIN(xMap,max = xMax))yMin = ROUND(MIN(yMap,max = yMax))ENDIF ELSE BEGINxmin = xMin < ROUND(MIN(xMap))xMax = xMax > ROUND(MAX(xMap))yMin = yMin < ROUND(MIN(yMap))yMax = yMax > ROUND(MAX(yMap))ENDELSEENDFORxMin = xMin >0xmax = xMax < ns-1yMin = yMin >0yMin=yMin-3ymax = yMax < nl-1ymax=ymax+5;;创建掩膜,裁剪后掩ENVI_MASK_DOIT,$AND_OR =1, $/IN_MEMORY, $ROI_IDS= roi_ids, $ ;ROI的IDns = ns, nl = nl, $/inside, $ ;区域内或外r_fid = m_fidout_dims = [-1,xMin,xMax,yMin,yMax]ENVI_MASK_APPLY_DOIT, FID = fid, POS = INDGEN(nb), DIMS = out_dims, $ M_FID = m_fid, M_POS = [0], VALUE = -10, $out_name = out_name, R_FID = r_fid;掩膜文件ID移除ENVI_FILE_MNG, id =m_fid,/removeENDFORENVI_BATCH_EXITEND你要用的话只要改路径和提供数据就行了。
[应用]ENVI裁剪
![[应用]ENVI裁剪](https://img.taocdn.com/s3/m/6c2630264b35eefdc8d333ff.png)
一、basic tools-resize data进行规则裁剪:(虽然是进行图像重采样工具,但也可以用于简单快速的裁剪)1、图1:选中要裁剪的图像;对话框下面选择spatial subset(构建空间子集_就是裁剪图像)(另spectral subset-构建波谱子集)2、图2:提供多种裁剪方式:(1)直接输行列裁剪,这样裁剪的前提是你要预告查看需要图像所占的行列是多少。
(2)image裁剪,图3:可以输入需要裁剪图像的大小,然后鼠标可以拖动图中所选区域的位置直到合适的位置。
(3)或者是使用map、file、ROI/evf等方式进行裁剪。
但map、file两种方式个人感觉都不方便,roi/evf方式方便,但这里只能进行规则裁剪。
二、basic tools-subset data via rois进行规则和不规则裁剪。
首先必须建立裁剪所需的ROI(感兴趣区),即需要进行裁剪的范围。
(一)建立感兴趣区1、图4:通过主图像窗口-tools-region of interest-roi tool,然后自己在图像上定义出一块感兴趣区(实际中难于确定严格准确的裁剪界限)。
2、图5:打开外部确定好的矢量裁剪范围(矢量文件必须是区文件),并将其加载到图像上(load selected),为后面方便,这里矢量文件中包含两个区。
3、图6,加载矢量范围后图像,然后将矢量范围转为感兴趣区(file-export active layerto rois)。
4、图7:如果矢量文件包含多个区,这里可以选择每个EVF to a new roi,并可以在attribute column to use for name后选择矢量区的一个属性做为标志,这里我选择ID,这适用于后面将要对每个区进行统计分析的处理,如果仅仅是简单的裁剪,多个区可以转为一个感兴趣即可。
5、basic tools- subset data via roi-选择要裁剪的图像-OK跳出图8对话框,设置好即可进行不规则或者是规则的裁剪了。
ENVI中用矢量图裁剪栅格图想(不规则裁剪)(精)

方法1:file-save file as-envi standard-import file- 方法原理是pix-pix,所以要求波段之间具有相同的行列数。
如果波段行列数不一样,即使具有相同的地理坐标系且波段之间有重叠的部分,也不能完成波段的合并。
file-save file as-envi standard-import file-把你7个波段都打开,按住ctrl把7个波段选中,在下面选择输出路径-搞定方法2: File>Basic Tools>Layer Satcking,该波段合并的方法是基于地理坐标系的,所以要求输入的所有的波段数据必须具有地理坐标信息,但是每个波段可以有不同的地理坐标信息。
File>Basic Tools>Layer Satcking,注意:单波段图像必须有统一的坐标。
无坐标的也许通过上面的方法可行。
图像的保存:单波段保存为8BIT,多波段合成保存为24BIT。
File: G:\遥感处理\LT51200382010231BJC00\LT51200382010231BJC00_B7.TIF Dims: 7881 x 6981 x 1 [BSQ] Size: [Byte] 55,073,458 bytes. File Type : TIFF Sensor Type: Unknown Byte Order : Host (Intel) Projection : UTM, Zone 50 North Pixel : 30 Meters Datum : WGS-84 Wavelength : None Upper Left Corner: 1,1 Description: GEO-TIFF File Imported into ENVI [Tue Jun 04 10:06:23 2013] ArcGIS和ENVI中的投影坐标问题[原创] 2008-05-24 12:01:14| 分类:遥感软件图像处理 | 标签: |字号大中小订阅 1.和很多地理图象(栅格图像和矢量图象)一样,一副矢量图应该也有自己的坐标系,矢量图的坐标系应该产生于矢量图生成的过程,因为地理图象的坐标信息是不可缺少的。