• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: Matlab
  • 标签: MATLAB;ENVI  

资源简介

本程序是MATLAB语言写的,功能是能自动根据envi标准影像的.hdr文件进行读取并显示

资源截图

代码片段和文件信息

%读&显ENVI图像

% 选择影像并判断是否是ENVI格式 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[filename_imgpathname_img]=uigetfile({‘*.dat‘;‘*.img‘}‘选择影像‘);
if isequal(filename_img0)  %  判断是否选择了影像
    msgbox(‘未选择影像!‘);
else
    pathfile_img=fullfile(pathname_imgfilename_img);   %获取影像文件的路径
end
a=strfind(pathfile_img‘.‘);
b=length(pathfile_img);
c=pathfile_img(a+1:b);
d=pathfile_img(1:a);
if isequal(c‘dat‘)||isequal(c‘img‘)   %  判断是否是‘.dat’或‘.img’格式
%读取图像的头文件
if strcmp(c‘dat‘)
    filename_hdr=[d ‘hdr‘];
else
    filename_hdr=[d ‘hdr‘];
end
%  头文件相关参数的设置
par1={‘samples‘ 0};
par2={‘lines‘ 0};
par3={‘bands‘ 0};
par4={‘header offset‘ 0};
par5={‘interleave‘ ‘bsq‘};
par6={‘data type‘ 0};
par7={‘byte order‘ 0};
par={par1 par2 par3 par4 par5 par6 par7};
fid_hdr=fopen(filename_hdr‘r‘);  % 打开头文件
tline=fgetl(fid_hdr);
while ~feof(fid_hdr)   %  读取头文件参数信息
    tline=fgetl(fid_hdr);
    a=strfind(tline‘=‘);
    b=length(tline);
    c=strtrim(tline(1:a-1));
    d=tline(a+2:b);
     for i=1:7
    if strcmp(cpar{i}{1})
        par{i}{1}=c;
        if i==5
            par{i}{2}=d;
        else
            d=strtrim(d);
            par{i}{2}=[str2num(d)];
        end
    end
    end
    
end
 fclose(fid_hdr);  
 switch par{6}{2}
case 1
precision=‘uint8=>uint8‘;%头文件中datatype=1对应ENVI中数据类型为Byte,对应MATLAB中数据类型为uint8

评论

共有 条评论

相关资源