Специализированные
файлы
Приведенные
ниже функции относятся к некоторым
специализированным файлам:
-
М = 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'
|
Скалярное
значение для разрешения в направлениях х и у
|
72
|
Содержание раздела