Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lection_matlab_all / matlab_9

.pdf
Скачиваний:
19
Добавлен:
27.05.2015
Размер:
222.28 Кб
Скачать

Функции sscanf и sprintf аналогичны функциям fscanf\fprintf, за исключением того, что работают с данными из символьной строки, а не из файла.

A = sscanf(s, format) считывает данные из символьной переменной s, преобразует их согласно значению format и создает на основе этих данных матрицу A. Параметр format определяет формат данных, которые нужно считать.

s=sprintf(format, A,…) форматирует данные в матрице A в формате, заданном параметром format, и создает из них строковую переменную s.

В файлах произвольного доступа запись или считывание данных файла ведется в любом выбранном месте. Позиционирование точки (указателя) ввода\вывода в файле и проверка состояния файла обеспечивается следующими функциями:

stat = feof(fid) проверяет, достигнут ли конец файла fid. Stat = 1, если указатель установлен на конец файла, и 0 в противном случае;

message = ferror(fid) возвращает сведения об ошибке в виде строки message;

message = ferror(fid, 'clear') очищает индикатор ошибки для за данного файла.

• status = fseek(fid, offset, origin) – устанавливает указатель в файле fid на байт, указанный параметром offset относительно позиции origin. Возвращает значение 0, если операция fseek прошла успешно, и –1 в противном случае. Параметр origin принимает следующие значения:

'bof' или –1 – начало файла;

'cof' или 0 – текущая позиция указателя в файле;

'eof' или 1 – конец файла.

offset>0 – смещение на offset байт к концу файла; offset=0 – не меняет позицию указателя;

offset<0 – смещение на offset байт к началу файла.

frewind(fid) — устанавливает указатель позиции в начало файла fid.

pos = ftell(fid) – возвращает позицию указателя для файла fid. Возвращает pos – неотрицательное целое число, определяющее позицию указателя в байтах относительно начала файла, а если запрос был неудачным, pos принимает значение –1.

Функция info = imfinfo(filename, fmt) возвращает структуру info, в полях которой содержится информация об изображении в графическом файле с именем filename и форматом fmt.

Если filename – TIFF или HDFфайл, содержащий более одного изображения, то info представляет собой массив структур с отдельным элементом (то есть с индивидуальной структурой) для каждого изображения в файле. Например, info(3) будет в таком случае содержать информацию о третьем изображении в файле. Поля в структуре info зависят от конкретного файла и его формата. Однако первые девять из них всегда одинаковы.

Поля информационной структуры

Filename - имя файла (строка); если файл

находится не в текущей директории, содержит полный путь; FileModDate - дата последнего изменения файла (строка); FileSize - размер файла в байтах (целое число);

Format - графический формат файла, fmt (строка); FormatVersion - версия формата (строка или число); Width - ширина изображения в пикселях (целое число); Height - высота изображения в пикселях (целое число); BitDepth - число битов на пиксель (целое число); ColorType - тип изображения (строка):

'truecolor' - для RGB-изображения, 'grayscale' для полутонового изображения,

'indexed' для изображения с индексированными цветами

Поддерживаемые MatLab растровые графические форматы и их принятые обозначения (fmt):

'bmp' - Windows Bitmap (BMP), 1-, 4-, 8- и 24-битовые несжатые изображения; 4- и 8-битовые изображения со сжатием;

'hdf' - Hierarchical Data Format (HDF), 8-разрядные растровые изображения, содержащие или не содержащие цветовую палитру; 24разрядные растровые изображения;

'jpg' или 'jpeg' -

Joint Photographic Experts Group (JPEG), любые JPEGизображения

'pcx' - Windows Paintbrush (PCX), 1-, 8- и 24-битовые изображения;

'tif' или 'tiff' - Tagged Image File Format (TIFF), любые TIFFизображения, включая 1-, 8- и 24-битовые несжатые изображения; 1-, 8- и 24-битовые изображения с packbitсжатием; 1-битовые изображения со сжатием CCITT

'xwd' - X Windows Dump (XWD), 1- и 8-битовые Zpixmaps,

XYBitmaps, 1-битовые XYPixmaps

Чтение изображения из файла:

A = imread(filename, fmt) читает из файла с именем filename полутоновое или полноцветное изображение. Если исходное изображение полутоновое, то результат A – двумерный массив, если исходное изображение полноцветное, то A – трехмерный массив размера m×n×3.

[X, map] = imread(filename, fmt) читает из файла с именем filename палитровое изображение в массив A с цветовой картой map;

[...] = imread(filename) пытается определить информацию о формате файла по его содержанию.

[...] = imread(..., idx) читает одно изображение из TIFFфайла. idx – целое число – номер изображения по порядку.

Запись изображения в файл

• imwrite(A, filename, fmt) записывает изображение в файл с именем filename в формате fmt из массива A. A может быть матрицей размера M×N для полутонового изображения, и массивом размера M×N×3 для полноцветного изображения.

Если A относится к классу uint8 или uint16, то функция imwrite записывает фактические значения из массива в файл. Если A относится к классу double, то функция imwrite перемасштабирует значения в исходном массиве перед записью по формуле uint8(round(255*A)). При этом числа с плавающей точкой в диапазоне [0...1] преобразуются в 8- битные целые числа в диапазоне [0...255].

Соседние файлы в папке lection_matlab_all