Интерфейс шлюза к 24-битному растровому изображению HDF (DF24)
[out1,...,outN] = hdfdf24(funcstr,input1,...,inputN)
hdfdf24 является шлюзом MATLAB ® для 24-битного интерфейса растрового изображения HDF.
[out1,...,outN] = hdfdf24(funcstr,input1,...,inputN) возвращает один или несколько выходов, соответствующих функции DF24 в библиотеке HDF, указанной functstr.
Существует однозначное соответствие между DF24 функциями в библиотеке HDF и допустимыми значениями для funcstr. Например, hdfdf24('lastref') соответствует вызову библиотеки C DF24lastref().
Функции записи создают наборы растровых изображений и сохраняют их в новых файлах или добавляют к существующим файлам.
Значение funcstr | Синтаксис функции | Описание |
|---|---|---|
'addimage' |
| Добавляет в файл 24-разрядное растровое изображение. |
'putimage' |
| Запись 24-разрядного растрового изображения в файл путем перезаписи всех существующих данных. |
'setcompress' |
| Задает метод сжатия для следующего растрового изображения, записанного в файл. compress_type может быть 'none', 'rle', 'jpeg', или 'imcomp'. Если compress_type является 'jpeg', то необходимо указать два дополнительных параметра: quality (скаляр между 0 и 100) и force_baseline (либо 0, либо 1). Другие типы сжатия не имеют дополнительных параметров. |
'setdims' |
| Задание размеров для следующего растрового изображения, записанного в файл. |
'setil' |
| Задает формат чередования следующего растрового изображения, записанного в файл. interlace может быть 'pixel', 'line', или 'component'. |
'lastref' |
| Сообщает последний ссылочный номер, присвоенный 24-битному растровому изображению. |
Функции считывания определяют размеры и формат чередования набора изображений, считывают фактические данные изображения и обеспечивают последовательный или произвольный доступ к любому набору растровых изображений.
Значение funcstr | Синтаксис функции | Описание |
|---|---|---|
'getdims' |
| Извлекает размеры перед прочтением следующего растрового изображения. interlace может быть 'pixel', 'line', или 'component'. |
'getimage' |
| Считывает следующее 24-битное растровое изображение. |
'reqil' |
| Задает формат чередования перед чтением следующего растрового изображения. interlace может быть 'pixel', 'line', или 'component'. |
'readref' |
| Считывает 24-битное растровое изображение с указанным растровым номером. |
'restart' |
| Возврат к первому 24-битному растровому изображению в файле. |
'nimages' |
| Сообщает количество 24-разрядных растровых изображений в файле. |
A status или вывод идентификатора -1 указывает на сбой операции.
HDF использует упорядочение элементов в стиле Си, в котором элементы вдоль последнего измерения изменяются быстрее всего. MATLAB использует упорядочение в стиле FORTRAN, в котором элементы первого измерения изменяются быстрее всего. hdfdf24 не выполняет автоматическое преобразование из упорядочения в стиле C в упорядочение в стиле MATLAB, что означает необходимость перестановки массивов изображений MATLAB при использовании hdfdf24 для чтения или записи из HDF-файлов. Точная перестановка зависит от формата чередования, заданного, например, hdfdf24('setil',...). Следующие вызовы: permute преобразует массивы HDF в массивы MATLAB в соответствии с заданным форматом чередования.
RGB = permute(RGB,[3 2 1]); | 'pixel' чередование |
RGB = permute(RGB,[3 1 2]); | 'line' чередование |
RGB = permute(RGB,[2 1 3]); | 'component' чередование |
hdfdf24 | hdfdfr8 | hdfh | hdfhd | hdfhe | hdfhx | hdfml | hdfv | hdfvf | hdfvh | hdfvs | matlab.io.hdf4.sd