||
使用ENVI自带的滤波函数对多幅影像进行批量操作,十分简单方便。
以中值滤波为例,采用的任务是 ENVITask('MedianFilter'),根据ENVI帮助,即可查到相关参数设置,简单示例其用法:
pro DEMO_meanfilter
;201910306 批量平滑操作
COMPILE_OPT IDL2
e=envi()
;load files
datapath=FILE_SEARCH('待处理的文件路径','匹配字符串',count = count_all) ;用于查找待处理影像
respath='保存路径名'
;median filter
FOR i=0,count_all-1 DO BEGIN
; read name
filename=datapath[i]
basename=FILE_BASENAME(filename)
resname=FILEPATH(basename+'_med', ROOT_DIR=respath) ;文件的输出名为:原文件名_med
;TEST IF THE PROCESS IS NEEDED
IF FILE_TEST(resname) THEN CONTINUE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;; START MEDIAN FILTER ;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
raster=e.OpenRaster(filename)
Task=ENVITask('MedianFilter')
Task.INPUT_RASTER = raster
Task.WINDOW_SIZE = 3
Task.OUTPUT_RASTER_URI = resname
Task.EXECUTE
PRINT, basename+' finish median filtering!'
;close file
raster.Close
ENDFOR
end
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-4-25 14:32
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社