資源簡介
高光譜圖像中,matlab利用multibandread函數讀取ENVI .img文件,并以.mat文件存儲數據,用于我們后面的圖像處理。
代碼片段和文件信息
function?data=read_ENVIimagefile?(imgfilename)
if?length(imgfilename)?>=4
????switch?strcmp(imgfilename(length(imgfilename)-3?:?end)‘.img‘)
????????case?0
????????????hdrfilename?=strcat(imgfilename‘.hdr‘);
????????case?1
????????????hdrfilename?=strcat(imgfilename(1:(length(imgfilename)-4))‘.hdr‘);
????end
else
????hdrfilename?=strcat(imgfilename‘.hdr‘);
end
fid?=fopen(hdrfilename‘r‘)
info?=?fread(fid‘char=>char‘);
info?=info‘;
fclose(fid);
a=strfind(info‘samples?=?‘);
b=length(‘samples?=?‘);
c=strfind(info‘lines‘);
samples?=[];
for?i?=a+b:c-1
????samples?=?[samplesinfo(i)];
end
samples?=?str2num(samples);
a=strfind(info‘lines???=?‘);
b=length(‘lines???=?‘);
c=strfind(info‘bands‘);
lines=[];
for?i=a+b:c-1
????lines=[linesinfo(i)];
end
lines?=str2num(lines);
a=strfind(info‘bands???=?‘);
b=length(‘bands???=?‘);
c=strfind(info‘header?offset‘);
bands=[];
for?i=a+b:c-1
????bands=[bandsinfo(i)];
end
bands?=str2num(bands);
a=strfind(info‘data?type?=?‘);
b=length(‘data?type?=
評論
共有 條評論