-------------精选文档-----------------
遥感HDF格式图像转换处理
1. 将以下代码复制到IDL-Workbench中
代码:
pro heruhdf_cr ; 读取某个HDF文件
FILE_NAME=dialog_pickfile(default_extension= '.hdf',filter='*.hdf')
;读取其中的某个Data Set里面的数据,可以用HDF Explore看一下HDFl里面的文件结构
SDS_NAME=\AeroWidth=2708 ;影像的宽度 AeroLength=4060 ;影像的高度
;打开HDF文件并初始化HDF接口
sd_id = HDF_SD_START( FILE_NAME, /read )
sds_index = HDF_SD_NAMETOINDEX(sd_id,SDS_NAME)
sds_id = HDF_SD_SELECT( sd_id, sds_index );或者把sds_index改为2可以打开不同类型的图
HDF_SD_GETDATA, sds_id, data
HDF_SD_ENDACCESS, sds_id ;关闭HDF文件
可编辑
-------------精选文档-----------------
HDF_SD_END, sd_id
imagedata = bytscl(congrid(data,AeroWidth*0.2,AeroLength*0.2,1));按比例缩小影像
DEVICE,DECOMPOSED=0 ;显示伪彩 LOADCT,36 ;加载第37个调色板 ;如果显示假彩色
;1)Device,Decomposed = 1
;2) TVScl,Image,Band = Index Index为通道 window, 0,
Title='picture',xsize=AeroWidth*0.2,
retain=2
TVSCL,imagedata
image=TVRD(0,0,500,500,/true) WRITE_JPEG,'e:\\1.jpg',image,true=1 ; ;输出jpeg
image=TVRD(0,0,500,500,/true) WRITE_PNG,'e:\\2.png', image ;输出png
image=TVRD(0,0,400,400,/true) WRITE_TIFF,'e:\\3.tiff', image; ;输出tiff end
可编辑
ysize=AeroLength*0.2,
-------------精选文档-----------------
2. 运行程序,选择需要的HDF文件打开,呈现如下图像:
导出jpg,png,tiff,格式的文件在指定位置中 如下图:
可编辑
-------------精选文档-----------------
(图一)分辨率为500*500的jpg格式图像
(图二)分辨率为500*500的png格式图像
可编辑
-------------精选文档-----------------
(图三)分辨率为400*400的tiff格式图像
可编辑