• 大小: 290KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: Matlab
  • 标签: Matlab  classi  envi  svm  

资源简介

利用Matlab对遥感影像进行分类的库代码,并嵌套标准envi格式读写代码

资源截图

代码片段和文件信息

function D=envidataread(datafileinfo)
%ENVIDATAREAD Reads data of ENVI image file according to ENVI image file header information.
%D=ENVIDATAREAD(DATAFILEINFO) provides image data (D).
%D will be in whatever number format (double int etc.) as in the ENVI
%file.

%Original version by Ian Howat Ohio State Universtiy ihowat@gmail.com
%Thanks to Yushin Ahn and Ray Jung
%Heavily modified by Felix Totir.

if nargin < 2
    error(‘You must specify the information about data (output of envihdrread)‘);
end

%-improved- assert(info.header_offset==0‘Non-zero header offset not supported‘);

%% Set binary format parameters
switch info.byte_order
    case {0}
        machine = ‘ieee-le‘;
    case {1}
        machine = ‘ieee-be‘;
    otherwise
        machine = ‘n‘;
end

iscx=false; %if it is complex
switch info.data_type
    case {1}
        format = ‘uint8‘;
    case {2}
        format= ‘int16‘;
    case{3}
        format= ‘int32‘;
    case {4}
        format= ‘single‘;
    case {5}
        format= ‘double‘;
    case {6}
        iscx=true;
        format= ‘single‘;
    case {9}
        iscx=true;
        format= ‘double‘;
    case {12}
        format= ‘uint16‘;
    case {13}
        format= ‘uint32‘;
    case {14}
        format= ‘int64‘;
    case {15}
        format= ‘uint64‘;
    otherwise
        error([‘File type number: ‘num2str(dtype)‘ not supported‘]);
end

% *** BSQ Format ***
% [Band 1]
% R1: C1 C2 C3 ...
% R2: C1 C2 C3 ...
%  ...
% RN: C1 C2 C3 ...
%
% [Band 2]
%  ...
% [Band N]

% *** BIL Format ***
% [Row 1]
% B1: C1 C2 C3 ...
% B2: C1 C2 C3 ...
%
%  ...
% [Row N]

% *** BIP Format ***
% Row 1
% C1: B1 B2 B3 ...
% C2: B1 B2 B3 ...
% ...
% Row N

n = info.lines*info.samples*info.bands;

fid=fopen(datafile‘r‘);
fread(fidinfo.header_offset‘uint8‘0machine); %we skip the header
if ~iscx
    D = fread(fidnformat0machine); %alternatively multibandreader (matlab function) might be used
else
    D = fread(fid2*nformat0machine); %alternatively multibandreader (matlab function) might be used
    D = complex(D(1:2:end)D(2:2:end));
end
fclose(fid);
    
switch lower(info.interleave)
    case {‘bsq‘}
        D = reshape(D[info.samplesinfo.linesinfo.bands]);
        D = permute(D[213]);
    case {‘bil‘}
        D = reshape(D[info.samplesinfo.bandsinfo.lines]);
        D = permute(D[312]);
    case {‘bip‘}
        D = reshape(D[info.bandsinfo.samplesinfo.lines]);
        D=permute(D[321]);
end




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-05-05 15:55  envi\
     文件         384  2019-04-03 13:25  envi\a.dat
     文件         166  2019-04-03 13:25  envi\a.dat.hdr
     文件       10384  2019-04-03 13:25  envi\a3.dat
     文件         170  2019-04-03 13:25  envi\a3.dat.hdr
     文件        2484  2017-11-10 17:04  envi\envidataread.m
     文件        2689  2017-11-10 17:04  envi\envidatawrite.m
     文件        3991  2017-11-10 17:04  envi\envihdrread.m
     文件        1195  2017-11-10 17:04  envi\envihdrwrite.m
     文件        1516  2017-11-10 17:04  envi\enviinfo.m
     文件         740  2017-11-10 17:04  envi\enviread.m
     文件         701  2017-11-10 17:04  envi\enviwrite.m
     文件         319  2017-11-10 17:04  envi\envi_test.m
     目录           0  2019-05-05 15:54  libsvm-3.23\
     文件        1497  2018-07-15 22:16  libsvm-3.23\COPYRIGHT
     文件       83238  2018-07-15 22:16  libsvm-3.23\FAQ.html
     文件       27670  2018-07-15 22:16  libsvm-3.23\heart_scale
     文件      258048  2018-07-15 22:16  libsvm-3.23\libsvm.dll
     文件        4060  2018-07-15 22:16  libsvm-3.23\libsvmread.c
     文件       14336  2018-07-15 22:16  libsvm-3.23\libsvmread.mexw64
     文件        2326  2018-07-15 22:16  libsvm-3.23\libsvmwrite.c
     文件       13312  2018-07-15 22:16  libsvm-3.23\libsvmwrite.mexw64
     文件         888  2018-07-15 22:16  libsvm-3.23\make.m
     文件        1240  2018-07-15 22:16  libsvm-3.23\Makefile
     文件        1135  2018-07-15 22:16  libsvm-3.23\Makefile.win
     文件        9815  2018-07-15 22:16  libsvm-3.23\README
     文件        5537  2018-07-15 22:16  libsvm-3.23\svm-predict.c
     文件        8696  2018-07-15 22:16  libsvm-3.23\svm-scale.c
     文件        8985  2018-07-15 22:16  libsvm-3.23\svm-train.c
     文件       65036  2018-07-15 22:16  libsvm-3.23\svm.cpp
     文件         477  2018-07-15 22:16  libsvm-3.23\svm.def
............此处省略17个文件信息

评论

共有 条评论