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

Можно использовать параметры multibandread чтобы задать многие аспекты операции чтения, например, какие полосы данных нужно считать. Для получения дополнительной информации см. параметры».
X является 2-D массивом, если считывается только одна полоса; в противном случае это 3-D. X возвращается как массив типа данных double по умолчанию. Используйте precision параметр для сопоставления данных с различными типами данных.
X = multibandread(...,subset1,subset2,subset3) считывает подмножество данных в файле. Для задания подмножества данных по строке, столбцу и размерностям полосы данных можно использовать до трех параметров подмножества. Для получения дополнительной информации см. раздел «Параметры подсети».
Примечание
В дополнение к файлам BSQ, BIL и BIP многодиапазонные изображения могут храниться с использованием формата файла TIFF. В этом случае используйте imread функция для импорта данных.
Эта таблица описывает аргументы, принятые multibandread.
Аргумент | Описание |
|---|---|
| Вектор символов или строковый скаляр, содержащий имя файла, который будет считываться. |
| Трехэлементный вектор целых чисел, состоящий из
Это будут размерности данных, если они считываются полностью. |
| Вектор символов или строковый скаляр, задающий формат считываемых данных, такой как Примечание: Вы также можете использовать |
| Скаляр, задающий нулевое местоположение первого элемента данных в файле. Это значение представляет количество байтов от начала файла до места начала данных. |
| Формат, в котором хранятся данные, заданный как одно из следующих значений:
Для получения дополнительной информации об этих методах чередования, см. |
| Вектор символов или строковый скаляр, задающий упорядоченное расположение байтов (машинный формат), в котором хранятся данные, например
Посмотрите |
Можно задать до трех параметров подмножества. Каждый параметр поднастройки является массивом ячеек с тремя элементами, {, гдеdim, method, индекс}
Параметр | Описание |
|---|---|
| Размерность для подмножества. Задается как любое из следующих значений:
|
| Метод подмножества. Задается как одно из следующих значений:
Если вы оставляете этот элемент массива ячеек подмножества, |
| Если Если |
Setup начальных параметров для набора данных.
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