您的位置:首页 > 其它

ENVI批量图片格式转换(IDL语言实现,raw转换为tif)

2017-08-21 14:09 579 查看
笔者最近需要将大量.raw后缀的多光谱图像转换为tif格式,然后再利用matlab对tif格式的图片进行处理。

然而,利用ENVI将.raw图片读入后,只能一张一张地将其另存为.tif格式。

笔者考虑在ENVI+IDL环境下用IDL语言实现批量转换图片格式,然而在网上没有搜到直接能用的代码,通过查阅ENVIRaster::Export方法的Example(https://www.harrisgeospatial.com/docs/ENVIRaster__Export.html),结合for循环,实现了批量将raw图片转换为tif图片。

IDL代码如下:

; 2017-08-21 00:00:40
; author: xiaohu
PRO ENVIRaster_Study
e = ENVI() ; Launch the application
for i = 2158, 2355 do begin ; 利用for循环实现批量转换
filepath_input = 'E:\input images\prefix_'+strcompress(string(i), /remove)+'.raw' ; 输入文件路径
raster1 = e.OpenRaster(filepath_input) ; 读入文件

filepath_output = 'E:\output images\FN'+strcompress(string(i), /remove)+'.tif' ; 输出文件路径
raster1.Export, filepath_output, 'TIFF' ; 输出为tiff格式
Print,'finished' ;打印finished,提示完成
endfor
end


上述代码中,输入文件路径为:E:\input images\,文件名为prefix_2158.raw, prefix_2159.raw,...,prefix_2355.raw,共约两百张图片。

输出路径为:E:\output images\,输出文件的文件名为FN2158.tif,FN2159.tif,...,FN2355.tif。

使用时,只需更改i值变化范围、输入文件路径、输出文件路径即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息