⽤ENVI对图象进⾏批处理切割(resize) ----转⾃
wangchlei2008的博客
ENVI_PICKFILE:
function,带返回值,打开⼀个对话框,让⽤户选择本地⽂件,返回⽤户选择的⽂件路径及⽂件名,具体⽤法参照ENVI 帮助。⽰例:
path = ENVI_PICKFILE(title='pick file')
envi_select:
routine,不带返回值,打开⼀个对话框,选择⼀个已经打开的⽂件,在该对话框中也可以打开新的⽂件,所以基本上可以替代ENVI_PICKFILE,能返回fid,尺⼨等属性,具体⽤法参照envi帮助。⽰例:
envi_select,fid=fid, dims=dims,pos=pos
envi_file_query:
routine,不带返回值,对某个已经打开的⽂件,查询其⽂件信息。例如⼤⼩,波段数等等。⽰例:
envi_file_query, fid, dims=dims, nb=nb
envi_get_data:
function,带返回值,对⼀个已经打开的⽂件,获取它的值,可以整个获取,也可以按指定的下标范围获取⼀⼩块。⼀次只能读取⼀个波段的信息,要同时读取多个波段,需要使⽤循环读取。具体⽤法参照envi帮助。⽰例: for i=0,nb-1 do image[i,*,*]=$
envi_get_data(fid=fid,dims=dims,pos=pos[i])
envi_get_map_info:
function,带返回值,对某个已经打开的⽂件(ENVI⽀持的格式并带有头⽂件),读取其空间信息,例如椭球,坐标系等。⽰例:
map_info_b = envi_get_map_info(fid=fid_b)
map_info_w = envi_get_map_info(fid=fid_w)
if (map_[2] ne 0.0) and (map_[2] ne 0.0) then begin
envi_convert_file_coordinates:
routine,不带返回值,图上某些点的矩阵坐标与空间坐标之间的转换(在有空间信息的情况下)。⽰例:
envi_convert_file_coordinates, fid, xf, yf, xmap, ymap, /to_map (xf,yf为矩阵的坐标,xmap,ymap为空间坐标)
#程序实例:⽤ENVI对图象进⾏批处理切割(resize)
compile_opt idl2
resize函数c++pro resize ;⽂件名必须与程序名相同,否则⽆法编译
envi, /restore_base_save_files ;恢复ENVI sav⽂件
envi_batch_init, log_file=’’ ;开始批处理模式
cd,'d:\2002\' ;到指定的⽂件夹
;=====定义输⼊⽂件路径=====
inpath=’d:\2002\’
;=====定义输出⽂件路径=====
outpath=’d:\2002\outfiles\’
;定义批处理⽂件名列表
filename = ['20020101.img', '20020111.img', '20020121.img']
n = N_ELEMENTS(filename) ;n_elements函数返回数组中所有元素的数⽬
;==========批处理=====================
FOR i=0,n-1 DO BEGIN
in_name=inpath+filename[i]
envi_open_file, in_name, r_fid=fid
if (fid eq -1) then begin
envi_batch_exit
return
endif
envi_file_query, fid, ns=ns, nl=nl, nb=nb
dims = [-1, 0, ns-1, 0, nl-1]
pos = lindgen(nb)
out_name = outpath+filename[i]
envi_doit, ‘resize_doit’, $
fid=fid, pos=pos, dims=[-1, 476,1095,1,600], $
interp=0, rfact=[1,1],out_name=out_name, r_fid=r_fid
ENDFOR
;
=============================退出批处理模式=======================
envi_batch_exit
end
;(FID是⼀个长整型的标量。FID为ENVI的程序员提供了⼀个命名变量,可以⽤于⼀个或⼏个ENVI程序,来打开或选择⽂件。所有对该⽂件进⾏操作的ENVI程序都是通过FID完成。如果⽂件打开失败,则FID返回为-1 ENVI处理程序产⽣结果⼀幅新图像也包括⼀个R_FID,或者称为返回FID关键字。如果结果是存在内存中的,设置R_FID关键字是访问数据的唯⼀⽅法。)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论