问题:
最近需要将DEM和遥感影像均裁剪成30km×30km的范围,目的是做影像匹配。自然而然的,我想到在ENVI中用ROI对影像分别裁剪,整个过程很顺利,我也一直以为没有问题了,可当我在matlab上读取裁剪的影像后发现行列号都不一致,ROI是1000×1000pixels,裁剪的结果DEM是974×1170,遥感影像是1001×1001(如下两图所示),都不是1000×1000,这样的话当然不行,于是我去百度上寻找解决方案,没有找到,最后在新浪博客IDL技术殿堂中找到了可行的办法,所以在此总结一下,以便以后再忘记~
1、前提
(1)在ENVI中任意选择一张影像作为创建ROI的基准图像,然后File–>New–>Region of Interest创建自己所需的ROI范围;
(2)用刚刚创建的ROI裁剪需要裁剪的两景影像;
步骤:在Toolbox中直接搜索subset,选择Subset Data from ROIs,打开对话框后分别对两景影像进行裁剪;
(3)裁剪完后:注意去看裁剪后两景影像的元数据信息,看行列号(Rows and Columns)
查看方式:右键图层,选择View Metadata即可
2、解决行列号不一致问题
注:此法不必管裁剪后的影像各自的大小。使用的工具是layer stacking。
步骤:Toolbox–>Raster Management–>Layer Stacking
打开对话框后,点击Import File,导入裁剪后行列号有问题的两景影像,选择Exclusive项,再选择输出位置保存即可。
该步骤进行完后,会生成包含两个波段的单个图层,即两景影像被合并了。如果想将二者分开,步骤如下:
File–>Save As–>Save As(ENVI,NITF,TIFF,DTED)
打开对话框后,选择Spectral Subset,选择要输出的波段(一次选择一个,进行两次该操作),就可以将两景影像单独输出了~
一般保存成TIFF格式,方便后续处理。
这样操作之后,可以发现两景影像的行列号变一致了。