(轉載)高光譜數據讀取by multibandread函數
原文地址:http://www.cnblogs.com/yxxx/p/6873834.html
利用matlab中multibandread函數參考數據的hdr文件讀取:
函數格式:
im = multibandread(filename,dims,precision,... offset,interleave,byteOrder,varargin)
參數說明:
DIMS:
A 3 element vector of integers consisting of [HEIGHT, WIDTH, N].
PRECISION參數與matlab數據類型相應的關系如下所示:
precision=‘uint8=>uint8‘;%頭文件中datatype=1對應ENVI中數據類型為Byte,對應MATLAB中數據類型為uint8
precision=‘int16=>int16‘;%頭文件中datatype=2對應ENVI中數據類型為Integer,對應MATLAB中數據類型為int16
precision=‘uint16=>uint16‘;%頭文件中datatype=12對應ENVI中數據類型為Unsighed Int,對應MATLAB中數據類型為uint16
precision=‘int32=>int32‘;%頭文件中datatype=3對應ENVI中數據類型為Long Integer,對應MATLAB中數據類型為int32
precision=‘uint32=>uint32‘;%頭文件中datatype=13對應ENVI中數據類型為Unsighed Long,對應MATLAB中數據類型為uint32
precision=‘float32=>float32‘;%頭文件中datatype=4對應ENVI中數據類型為Floating Point,對應MATLAB中數據類型為float32
precision=‘double=>double‘;%頭文件中datatype=5對應ENVI中數據類型為Double Precision,對應MATLAB中數據類型為double
OFFSET:
可以在hdr文件中找到
INTERLEAVE:
The format in which the data is stored. This can be either ‘bsq‘,‘bil‘, or ‘bip‘ for Band-Sequential, Band-Interleaved-by-Line or Band-Interleaved-by-Pixel respectively
可以在hdr文件中找到:bsq,bil或bip
BYTEORDER:
The byte ordering (machine format) in which the data is stored. This can be ‘ieee-le‘ for little-endian or ‘ieee-be‘ for big-endian.
在hdr文件中找到:ieee-le‘ 對應 little-endian
‘ieee-be‘ 對應 big-endian.
這裏用hydice中urban的例子:
其hdr文件為:samples = 307; lines = 307 ;bands = 210 ;header offset = 0; file type = multiband ;data type = 2 ;interleave = bil ;xstart = 1 ;ystart = 1; numpixels = 307; numlines = 307 ;byte order = big endian
matlab函數為:
a= multibandread(‘URBAN‘, [307,307,210], ‘int16‘, 0, ‘bil‘, ‘ieee-be‘);
(轉載)高光譜數據讀取by multibandread函數