Чтение данных с перемежением полос из двоичного файла
X = multibandread(filename,size,precision,offset,interleave,byteorder)
X = multibandread(...,subset1,subset2,subset3)
X = multibandread(filename,size,precision,offset,interleave,byteorder) считывает из двоичного файла данные band-sequential (BSQ), band-intervaved-by-line (BIL) или band-interaved-by-pixel (BIP) filename. filename ввод задается как вектор символа или скаляр строки. Эта функция определяет полосу в качестве третьего размера в массиве 3-D, как показано на этом рисунке.

Можно использовать параметры multibandread для указания многих аспектов операции чтения, таких как считываемые области данных. Дополнительные сведения см. в разделе Параметры.
X является 2-D массивом, если считывается только одна полоса; в противном случае это 3-D. X возвращается как массив типа данных double по умолчанию. Используйте precision для сопоставления данных с другим типом данных.
X = multibandread(...,subset1,subset2,subset3) считывает подмножество данных в файле. Для задания подмножества данных вдоль размеров строки, столбца и области данных можно использовать до трех параметров подмножества. Дополнительные сведения см. в разделе Параметры подстановки.
Примечание
В дополнение к файлам BSQ, BIL и BIP многополосные изображения могут храниться с использованием формата файла TIFF. В этом случае используйте imread для импорта данных.
В этой таблице описаны аргументы, принятые multibandread.
Аргумент | Описание |
|---|---|
| Вектор символов или строковый скаляр, содержащий имя считываемого файла. |
| Трёхэлементный вектор целых чисел, состоящий из
Это будут измерения данных, если они прочитаны полностью. |
| Символьный вектор или строковый скаляр, задающий формат считываемых данных, например Примечание: Вы также можете использовать |
| Скаляр, указывающий местоположение первого элемента данных в файле на основе нуля. Это значение представляет количество байт от начала файла до начала данных. |
| Формат, в котором хранятся данные, указанный как одно из следующих значений:
Дополнительные сведения об этих методах чередования см. в разделе |
| Символьный вектор или строковый скаляр, задающий порядок байтов (машинный формат), в котором хранятся данные, например
Посмотрите |
Можно указать до трех параметров подстановки. Каждый параметр подстановки представляет собой трехэлементный массив ячеек, {, гдеdim,method,index}
Параметр | Описание |
|---|---|
| Размер для поднабора вдоль. Указано как любое из следующих значений:
|
| Метод подстановки. Указано как одно из следующих значений:
Если исключить этот элемент массива ячеек подмножества, |
| Если Если |
Настройка начальных параметров для набора данных.
rows=3; cols=3; bands=5; filename = tempname;
Определите набор данных.
fid = fopen(filename, 'w', 'ieee-le'); fwrite(fid, 1:rows*cols*bands, 'double'); fclose(fid);
Считывайте каждую другую полосу данных с использованием формата Band-Sequential.
im1 = multibandread(filename, [rows cols bands], ...
'double', 0, 'bsq', 'ieee-le', ...
{'Band', 'Range', [1 2 bands]} )
Считывайте первые две строки и столбцы данных с использованием формата Band-Interleaved-by-Pixel.
im2 = multibandread(filename, [rows cols bands], ...
'double', 0, 'bip', 'ieee-le', ...
{'Row', 'Range', [1 2]}, ...
{'Column', 'Range', [1 2]} )
Считывайте данные в формате Band-Interleaved-by-Line.
im3 = multibandread(filename, [rows cols bands], ...
'double', 0, 'bil', 'ieee-le')
Удалите файл, созданный в этом примере.
delete(filename);
Читать int16 Данные BIL из файла FITS tst0012.fits, начиная с байта 74880.
im4 = multibandread('tst0012.fits', [31 73 5], ...
'int16', 74880, 'bil', 'ieee-be', ...
{'Band', 'Range', [1 3]} );
im5 = double(im4)/max(max(max(im4)));
imagesc(im5);
fread | fwrite | imread | memmapfile | multibandwrite