Матричная лаборатория MatLab

         

Специализированные файлы

Приведенные ниже функции относятся к некоторым специализированным файлам:

  • М = 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 следующие:

  1. delimiter — символ, отделяющий отдельные матричные элементы в электронной таблице формата ASCII;
  2. (,) — разделитель по умолчанию;
  3.  r, с — ячейка электронной таблицы, из которой берутся матричные элементы, соответствующие элементам в верхнем левом углу таблицы;
  4. 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

 

Содержание раздела