Чтение полосно-перемеженных данных из двоичного файла
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