1. 程式人生 > >高光譜數據讀取

高光譜數據讀取

var point con num 數據讀取 offset erl precision esp

利用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‘);

高光譜數據讀取