Приведенные
ниже функции относятся к некоторым
специализированным файлам:
М = dlmread(filename,
delimiter) — считывает данные из файла filename с ASCII-разделителем, используя
разделитель delimiter, в массив М. Используйте '\t', i чтобы определить
в качестве разделителя символ табуляции;
М = dlmreadCfilename.delimiter,г.с)
— считывает данные из файла filename с ASCII-разделителем, используя разделитель
delimiter, в массив М, начиная со смещения г (по строкам) и с (по столбцам).
Параметры r и с отсчитываются начиная с нуля, так что г=0, с=0 соответствует
первому значению в файле;
М = dlmreadCfilename,
deli mi ten, r, с, range) — импортирует индексированный или именованный
диапазон данных с разделителями в формате ASCII. Для использования диапазона
ячеек нужно определить параметр range в виде range = [ВерхняяСтрока. ЛевыйСтолбец.
НижняяСтрока, ПравыйСтолбец].
Аргументы
функции dlmread следующие:
delimiter
— символ, отделяющий отдельные матричные элементы в электронной таблице
формата ASCII;
(,) — разделитель
по умолчанию;
r,
с — ячейка электронной таблицы, из которой берутся матричные элементы, соответствующие
элементам в верхнем левом углу таблицы;
range —
вектор, определяющий диапазон ячеек электронной таблицы.
Команда dlmwrite
преобразует матрицу MATLAB в файл с ASCII-разделителями, читаемый программами
электронных таблиц:
dl mwri
te (f i 1 ename. A. delimiter) — записывает матрицу А в верхнюю левую ячейку
электронной таблицы filename, используя разделитель delimiter для отделения
элементов матрицы. Используйте ' U' для создания файла с элементами, разделенными
табуляцией. Все элементы со значением 0 опускаются. Например, массив [102]
появится в файле в виде ' 1., 2' (если разделителем является запятая):
dlmwrite(filename,A,delimiter,
r,с) — записывает матрицу А в файл filename, начиная с ячейки, определенной
r и с, используя разделитель delimiter;
info=imfinfo(filename.fmt)
— возвращает структуру, поля которой содержат информацию об изображении
в графическом файле. Аргумент filename — строка, определяющая имя графического
файла, fmt — строка, которая определяет формат файла. Файл должен находиться
в текущей директории или в директории, указанной в пути MATLAB. Если imflnfo
не может найти файл с именем filename, она ищет файл с именем filename.fmt.
В табл. 19.5
показаны возможные значения для аргумента fmt.
Таблица
19.5.
Поддерживаемые графические форматы и их обозначения
Формат
Тип файла
'bmp'
Windows
Bitmap (BMP)
'hdf '
Hierarchical
Data Format (HDF)
'jpg
'
или 'jpeg'
Joint
Photographic Experts Group (JPEG)
'pcx'
Windows
Paintbrush (PCX)
'tif 'или
'tiff '
Tagged
Image File Format (TIFF)
'xwd'
X Windows
Dump (XWD)
Если filename
— TIFF- или HDF-файл, содержащий более одного изображения, то 1 nf о представляет
собой массив структур с отдельным элементом (т. е. с индивидуальной структурой)
для каждого изображения в файле. Например, info(3) будет в таком случае содержать
информацию о третьем изображении в файле. Множество полей в info зависит от
конкретного файла и его формата. Однако первые девять полей всегда одинаковы.
В табл. 19.6 перечислены эти поля и описаны их значения.
Таблица
19.6.
Поля информационной структуры и их значения
Поле
Значение
Filename
Строка,
содержащая имя файла; если файл находится не в текущей директории, строка
содержит полный путь к файлу
FileModDate
Строка,
содержащая дату последнего изменения файла
FileSize
Целое
число, указывающее размер файла в байтах
Format
Строка,
содержащая формат файла, заданный параметром fmt; для JPEG- и TIFF-файлов
возвращается значение, состоящее из трех символов
FormatVersion
Строка
или число, описывающее версию формата
Width
Целое
число, указывающее ширину изображения в пикселях
Height
Целое число,
указывающее высоту изображения в пикселях
BitDepth
Целое
число, указывающее число битов на пиксель
ColorType
Строка,
описывающая тип изображения: 'truecolor' для RGB изображения, 'grayscale'
для полутонового изображения или 'indexed' для изображения с индексированными
цветами
info =
imfinfo(filename) — пытается определить формат файла по содержимому. Пример:
»
info = irrifinfo('С:\выставка\Интернет.bmр')
info =
Filename:
'С:\выставка\Интернет.bmр'
FileModDate:
'04-Jan-1999 22:35:56'
FileSize:
481078
Format:
'bmp'
FormatVersion:
'Version 3 (Microsoft Windows 3.x)'
или truecolor
(RGB) изображение класса uint8, команда imwrite записывает фактические значения
массива в файл. Если А имеет класс double, команда imwrite переопределяет значения
в массиве перед записью, используя преобразование uint8(round(255*A)). Эта операция
преобразует числа с плавающей запятой в диапазоне [0, 1] к 8-битовым целым числам
в диапазоне [0, 255]. Допустимые значения параметра ftnt аналогичны тем, что
используются в команде imfinfo;
imwrite(X,map,filename,fmt)
— записывает индексированное изображение, находящееся в массиве X, и соответствующую
ему цветовую палитру тар в файл filename. Если X содержит изображение класса
uint8, команда imwrite записывает фактические значения массива в файл. Если
X имеет класс double, команда imwrite переопределяет значения в массиве
перед записью, используя преобразование uintS(X-l). Палитра тар должна иметь
класс double; функция imwrite переопределяет значения в тар, используя преобразование
uint8(round (255*mар));
imwrite
(....filename) — записывает изображение в filename в формате, указанном
в расширении файла. Расширение может быть одним из допустимых значений параметра
fmt;
imwrite
(....Parameter, Value....) определяет параметры, которые контролируют различные
свойства выходного файла. Параметры используются для HDF, JPEG, и TIFF файлов;
М = wklread(filename)
— считывает электронную таблицу Lotusl23 (WK1) в матрицу М;
М = wklread(filename.r.c)
— считывает данные, начиная с ячейки, определенной значениями (r,с). Параметры
г и с отсчитываются от нуля, так что г=0, с=0 определяют первую ячейку в
файле;
М = wklread(filename,r,c,range)
— считывает диапазон значений, определенный параметром range, где range
может быть представлен в одной из следующих форм:
вектор
с четырьмя элементами, определяющий диапазон ячеек в формате [верхняя_строка.
левый_столбец, нижняя_строка, правый_столбец];
диапазон
ячеек, определенный строкой, например ' А1... С5';
имя
диапазона, определенное в виде строки, например 'Sales'.
wklwrite(filename.M)
— записывает значения матрицы М в файл filename электронной таблицы Lotus
123 WK1;
wklwrite(filename,M,r,c)
— записывает данные, начиная с ячейки, определенной значениями (r,с). Параметры
г и с отсчитываются от нуля, так что г=0, с=0 определяют первую ячейку в
электронной таблице.
В табл. 19.7
представлены форматы изображений, доступных для чтения функцией imread. Списки
параметров и их возможных значений для функции imwrite содержатся в табл. 19.8.
Необходимо
отметить, что большинство рассмотренных выше функций редко применяются пользователями.
Но они довольно широко используются в системных целях и представляют большой
интерес для специалистов.
Таблица
19.7.
Форматы файлов и их краткое описание
Формат
Варианты
BMP
1-битовые,
4-битовые, 8-битовые и 24-битовые несжатые изображения; 4-битовые и 8-битовые
изображения со сжатием RLE
HDF
8-разрядные
растровые изображения, содержащие или не содержащие цветовую палитру; 24-разрядные
растровые изображения
JPEG
Любые
JPEG-изображения; JPEG-изображения с некоторыми обычно используемыми расширениями
PCX
1-битовые,
8-битовые и 24-битовые изображения
TIFF
Любые
TIFF-изображения, включая!-битовые, 8-битовые и 24-битовые несжатые изображения;
1-битовые, 8-битовые и 24-битовые изображения с packbit-сжатием; 1-битовые
изображения со сжатием CCITT
XWD
1-битовые
и 8-битовые Zpixmaps; XYBitmaps; 1-битовые XYPixmaps
Таблица
19.8.
Параметры, используемые при записи графических
файлов
Параметр
Значение
Значение
по умолчанию
Параметры
для HDF-файлов
'Compression'
Одно из
следующих значений: 'none', Vie', 'jpeg'
'rle'
'Quality'
Число
между 0 и 100; параметр поддерживается для 'Compression'='jpeg'; чем больше
число, тем выше качество файла (меньше искажений файла при сжатии) и тем
больше его размер
75
'WriteMode'
Одно из
следующих значений: 'overwrite', 'append'
'overwrite'
Параметры
для JPEG-файлов
'Quality'
Число
между 0 и 100; чем больше число, тем выше качество файла (меньше искажений
при сжатии файла) и тем больше его размер.
75
Параметры
для TIFF-файлов
'Compression'
Одно из
следующих значений: 'none', 'packbits', 'ccitt'; значение 'ccitt' допустимо
только для двоичных (двухцветных) изображений
'ccitt'
для двоичных изображений; 'packbits' для всех остальных
'Description'
Любая
строка; значение поля ImageDescription возвращается командой imfinfo
Пустая
строка
'Resolution'
Скалярное
значение для разрешения в направлениях х и у