matlab_9
.pdfФункции 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].