1ENVI中影像像元0值补偿解决方案随着遥感技术的发展,影像数据获取的手段也越来越多,RGB影像数据的应用表现的尤为突出。获得影像后,首当其冲的就是数据预处理,该工作繁琐化,机械化,但仍很重要。对于行片或经过初级处理的RGB数据,缺少光谱信息,只有相应的R、G、B波段信息,在数据预处理——镶嵌的时候会出现颜色偏差、像元0值,但作为地理地图的生产,这样的数据结果不符合要求,故而需要进一步的后期处理,包括颜色均衡化,像元0值替换等等。本节主要讲如何进行像元0值的替换/补偿。采用的软件为ENVI下的bandmath工具,通过条件限定查找0值像元位置以及临近像元值,以此填充0值点。影像镶嵌后出现像元0值的原因影像数据预处理的过程就是像元数据重采样的过程,在重采样的过程中,由于缺失了原始的影像光谱信息,特征信息,在进行镶嵌重采样的时候,部分信息的丢失使得重采样生成影像的时候会出现部分与背景0值相近的像元值为0。见下图1,2图1多光谱数据镶嵌结果图2RGB波段组合镶嵌结果2通过上图1、2对比可以很清晰的看到,多光谱波段组合的数据镶嵌结果不会出现与背景值同样为0值的像元值,故而在ArcGIS忽略背景值显示的条件下,影像数据结果显示正常,通过RGB波段组合数据镶嵌的结果在显示的时候会出现与背景0值同值的0值。这说明由于波段信息的丢失,使得在影像镶嵌的时候出现波谱信息的不完善造成重采样时像元值计算的误差,给后续的底图生产带来了不便。为了更好的将影像数据应用于生产,建议用户在进行影像处理的时候尽量运用影像提供的全波段数据,不然给后续操作处理带来了很多的不便。如何补偿/替换像元0值为周边邻近值为了让地理底图更好的应用于生产,展示给观众,需要对出现0值的像元进行邻近值的补偿,本文采用ENVI/IDL中的的基础工具Bandmath进行条件语句的限定进行空值填充。具体操作步骤如下:1、单波段空值填充采用工具为:envibasictoolsbandmath输入语句原理:ifb1eq0thenbeginb1+DNendifelsebeginb1*1endelse在bandmath对话框中输入:(b1eq0)*(b1+DN)+(b1ne0)*b1b1代表为影像数据的R或G或B通道,DN代表在值区域需要输入的校正值。该影像的空点像元的邻近像元值为:R:11;G:0;B:50,按照上述的解决方法输入进行单个波段的数值填充。2、波段组合采用工具:envibasictoolslayerstacking…按照RGB的形成进行band1,band2,band3的文件顺序导入…输出文件名称,点击OK。上述的操作顺序针对的是三个波段都需要进行输入DN值的情况,对于补救值为0的波段,可以直接从原始影像中进行波段选择。采用工具:envibasictoolslayerstacking…按照RGB的顺序选择波段(见下图1)点击OK,重复上述的操作选择其他波段数据…输出文件名称,点击OK.图3波段组合从原始影像中选择波段的方法3、行政边界数据裁剪采用工具:31)读取影像文件envifileopenimagefile2)读取影像文件对应的矢量文件envifileopenvectorfile….AvailblevectorslistexportlyerstoROI选择需要裁剪的影像文件OK……3)裁剪影像文件envibasictoolssubsetdataviaROIs…选择对应的参数设置(见下图2)…Queue4)批量裁剪操作:对于其他区域影像数据的裁剪重复上述的三步操作,操作重复完毕后点击:envifileENVIQueueManagerselectAllExecuteSelected(见下图3)执行所有操作。图4参数设置图5批量处理界面4、结果展示4图6空点补偿结果附注::在进行矢量数据导入的时候可能存在投影的问题,如果ENVI下没有设置西安8或者北京54投影坐标的话,需要进行这些参数的导入,然后定义不同分带的设置投影,然后才能正确读取投影信息。上述的操作已经完成的情况下,在导入矢量数据的时候会出现一个对话框,该对话框的作用是完成shpefile格式的文件转换为.evf格式的文件,其中需要注意的是投影的操作,需要查看,该数据投影的datum是不是对应的西安80坐标,如果是,点击ok即可。