imread

Чтение изображения из графического файла

Описание

пример

A = imread(filename) считывает изображение из файла, заданного filename, выводя формат файла из его содержимого. Если filename является мультиизображением, затем imread считывает первое изображение в файле.

A = imread(filename,fmt) дополнительно задает формат файла со стандартным расширением файла, обозначенным fmt. Если imread не удается найти файл с именем, заданным filename, он ищет файл с именем filename.fmt.

A = imread(___,idx) считывает указанное изображение или изображения из файла с мультиизображениями. Этот синтаксис применяется только к файлам GIF, PGM, PBM, PPM, CUR, ICO, TIF, SVS и HDF4. Вы должны задать filename вход, и вы можете опционально задать fmt.

пример

A = imread(___,Name,Value) задает опции для конкретного формата, используя один или несколько аргументы пары "имя-значение", в дополнение к любому из входных параметров в предыдущих синтаксисах.

пример

[A,map] = imread(___) считывает индексированное изображение в filename в A и читает связанную с ним палитру в map. Значения палитры в файле изображения автоматически преобразуются в область значений [0,1].

пример

[A,map,transparency] = imread(___) дополнительно возвращает прозрачность изображения. Этот синтаксис применяется только к файлам PNG, CUR и ICO. Для файлов PNG, transparency - альфа-канал, если он присутствует. Для файлов CUR и ICO это маска AND (непрозрачность).

Примеры

свернуть все

Считайте образец изображения.

A = imread('ngc6543a.jpg');

imread возвращает массив 650 на 600 на 3, A.

Отобразите изображение.

image(A)

Figure contains an axes. The axes contains an object of type image.

Считайте первое изображение в выборку индексированном файле изображения, corn.tif.

[X,cmap] = imread('corn.tif');

Индексированное изображение X массив типа 415 на 312 uint8. Палитра cmap - матрица типа 256 на 3 doubleпоэтому в индексированном изображении 256 цветов. Отобразите изображение.

imshow(X,cmap)

Figure contains an axes. The axes contains an object of type image.

Преобразуйте индексированное изображение в изображение RGB. Результатом является массив типа 415 на 312 на 3 double.

RGB = ind2rgb(X,cmap);

Проверьте, что значения изображения RGB находятся в области значений [0, 1].

disp(['Range of RGB image is [',num2str(min(RGB(:))),', ',num2str(max(RGB(:))),'].'])
Range of RGB image is [0.0078431, 0.97647].

Прочтите третье изображение в файле образца, corn.tif.

[X,map] = imread('corn.tif',3);

Верните альфа-канал образца изображения, peppers.png.

[X,map,alpha] = imread('peppers.png');
whos alpha
  Name       Size            Bytes  Class     Attributes

  alpha      0x0                 0  double              

Альфа-канал отсутствует, так что alpha пуст.

Считайте определенную область пикселей выборочного изображения, corn.tif.

Задайте 'PixelRegion' параметр с массивом ячеек из векторов, указывающим контуры считываемой области. Первый вектор задает область значений считываемых строк, а второй вектор задает область значений считываемых столбцов.

A = imread('corn.tif','PixelRegion',{[1,2],[2,5]});

imread считывает данные изображения в строках 1-2 и столбцах 2-5 из corn.tif и возвращает массив 2 на 4, A.

Входные параметры

свернуть все

Имя графического файла, заданное как вектор символов или строковый скаляр.

В зависимости от местоположения вашего файла, filename может принять одну из этих форм.

Местоположение

Форма

Текущая папка или папка на MATLAB® путь

Укажите имя файла в filename.

Пример: 'myImage.jpg'

Файл в папке

Если файл находится не в текущей папке или в папке на пути MATLAB, задайте полное или относительное имя пути.

Пример: 'C:\myFolder\myImage.ext'

Пример: '\imgDir\myImage.ext'

URL

Если файл находится по URL-адресу Интернета, то filename должен содержать такой тип протокола, как, http://.

Пример: 'http://hostname/path_to_file/my_image.jpg'

Удаленное местоположение

Если файл хранится в удаленном местоположении, то filename должен содержать полный путь к файлу, заданному в качестве равномерного указателя ресурса (URL) формы:

scheme_name://path_to_file/ my_file.ext

Исходя из удаленного местоположения, scheme_name может быть одним из значений в этой таблице.

Удаленное местоположениеscheme_name
Амазонки S3™s3
Windows Azure® Хранилище больших двоичных объектовwasb, wasbs
HDFS™hdfs

Для получения дополнительной информации см. раздел Работа с удаленными данными.

Пример: 's3://bucketname/path_to_file/my_image.jpg'

Для получения информации о битовых глубинах, схемах сжатия и цветовых пространствах, поддерживаемых для каждого типа файла, смотрите Алгоритмы.

Типы данных: char | string

Формат изображения, заданный как вектор символов или строковый скаляр, указывающий на стандартное расширение файла. Функции imformats для просмотра списка поддерживаемых форматов и расширений их файлов.

Пример: 'png'

Типы данных: char | string

Изображение для чтения, заданное как целочисленный скаляр или, для GIF файлов, вектор из целых чисел. Для примера, если idx равно 3, тогда imread возвращает третье изображение в файле. Для GIF файла, если idx является 1:5, затем imread возвращает только первые пять систем координат. The idx аргумент поддерживается только для файлов GIF, CUR, ICO и HDF4 с мультиизображениями.

При чтении нескольких систем координат из одного и того же GIF файла задайте idx как вектор систем координат или используйте 'Frames','all' аргумент пары "имя-значение". Из-за того, что GIF файлов структурированы, эти синтаксисы обеспечивают более быструю эффективность по сравнению с вызовом imread в цикле.

Для файлов HDF4, idx соответствует номеру ссылки считываемого изображения. Номера ссылок не обязательно соответствуют порядку изображений в файле. Вы можете использовать imfinfo для соответствия порядка изображений ссылки номеру.

Пример: 3

Типы данных: double

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Index',5 считывает пятое изображение файла TIFF.
Файлы GIF

свернуть все

Считываемые системы координат, заданные как разделенная разделенными запятой парами, состоящая из 'Frames' и положительное целое число, вектор из целых чисел или 'all'. Для примера, если вы задаете значение 3, imread считывает третью систему координат в файле. Если вы задаете 'all', затем imread считывает все системы координат и возвращает их в том порядке, в котором они появляются в файле.

Пример: 'frames',5

Файлы JPEG 2000

свернуть все

Подызображение для чтения, заданное как разделенная разделенными запятой парами, состоящая из 'PixelRegion' и массив ячеек вида {rows,cols}. The rows вход задает область значений считываемых строк. The cols вход задает область значений считываемых столбцов. Оба rows и cols должны быть двухэлементными векторами, содержащими 1-основанные индексы. Для примера, 'PixelRegion',{[1 2],[3 4]} считывает подызображения, ограниченные строками 1 и 2 и столбцами 3 и 4 в данных изображения. Если на 'ReductionLevel' значение больше 0, тогда rows и cols являются координатами подызображения.

Пример: 'PixelRegion',{[1 100],[4 500]}

Уменьшение разрешения изображения, заданное как разделенная разделенными запятой парами, состоящая из 'ReductionLevel' и неотрицательное целое число. Для L уровня уменьшения разрешение изображения уменьшается в 2 ^ L. Уровень сокращения ограничивается общим количеством уровней разложения, заданным 'WaveletDecompositionLevels' поле в выходах imfinfo функция.

Пример: 'ReductionLevel',5

Типы данных: single | double

Совместимость с MATLAB 7.9 (R2009b) и более ранними версиями, заданная как разделенная разделенными запятой парами, состоящая из 'V79Compatible' и любой из них true или false. Если вы задаете true, тогда возвращенное изображение в полутоновом или RGB согласуется с предыдущими версиями imread (MATLAB 7.9 (R2009b) и более ранние версии).

Пример: 'V79Compatible',true

Типы данных: logical

Файлы PNG

свернуть все

Цвет фона, заданный как 'none', целое число или трехэлементный вектор из целых чисел. Если BackgroundColor является 'none', затем imread не выполняет никакого композитирования. В противном случае, imread смешивает прозрачные пиксели с цветом фона.

  • Если вход изображение индексировано, то значение BackgroundColor должно быть целым числом в области значений [1,P], где P - длина палитры.

  • Если вход изображение полутоновое, то значение BackgroundColor должно быть целым числом в области значений [0,1].

  • Если вход изображение RGB, то значение BackgroundColor должен быть трехэлементным вектором со значениями в области значений [0,1].

Значение по умолчанию для BackgroundColor зависит от наличия transparency выходной аргумент и тип изображения:

  • Если вы запрашиваете transparency выходной аргумент, затем значение по умолчанию BackgroundColor является 'none'.

  • Если вы не запрашиваете transparency выход и PNG файл содержит фрагмент цвета фона, тогда этот цвет является значением по умолчанию для BackgroundColor.

  • Если вы не запрашиваете transparency выход, и файл не содержит фрагмент цвета фона, затем значение по умолчанию для BackgroundColor является 1 для индексированных изображений, 0 для полутоновых изображений и [0 0 0] для изображений truecolor (RGB).

Файлы TIFF

свернуть все

Считываемое изображение, заданное как разделенная разделенными запятой парами, состоящая из 'Index' и положительное целое число. Для примера, если значение Index равно 3, тогда imread считывает третье изображение в файле.

Типы данных: single | double

Информация о изображении, заданная как разделенная разделенными запятой парами, состоящая из 'Info' и массив структур, возвращенный imfinfo функция. Используйте Info аргумент пары "имя-значение" для помощи imread быстрее найдите изображения в файле TIFF с мультиизображениями.

Типы данных: struct

Контур области, заданная как разделенная разделенными запятой парами, состоящая из 'PixelRegion' и массив ячеек вида {rows,cols}. The rows вход задает область значений считываемых строк. The cols вход задает область значений считываемых столбцов. rows и cols должны быть либо двухэлементными, либо трехэлементными векторами 1-базовых индексов. Двухэлементный вектор задает первые и последние строки или столбцы для чтения. Для примера, 'PixelRegion',{[1 2],[3 4]} считывает область, ограниченную строками 1 и 2 и столбцами 3 и 4 в данных изображения.

Трехэлементный вектор должен быть в форме [start increment stop], где start - первая считываемая строка или столбец, increment является инкрементальным значением, и stop - последняя считываемая строка или столбец. Этот синтаксис позволяет понижать дискретизацию изображений. Для примера, 'PixelRegion',{[1 2 10],[4 3 12]} считывает область, ограниченную строками 1 и 10 и столбцами 4 и 12, и производит выборку данных из каждые 2 пикселей в вертикальном направлении и каждые 3 пикселя в горизонтальном направлении.

Пример: 'PixelRegion',{[1 100],[4 500]}

Типы данных: cell

Выходные аргументы

свернуть все

Данные изображения, возвращенные как массив.

  • Если файл содержит полутоновое изображение, то A является m-by- n массив.

  • Если файл содержит индексированное изображение, то A является m-by- n массив значений индекса, соответствующих цвету при этом индексе в map.

  • Если файл содержит изображение truecolor, то A является m-by- nмассив -by-3.

  • Если файл является файлом TIFF, содержащим цветовые изображения, которые используют цветовое пространство CMYK, то A является m-by- nмассив -by-4.

Класс A зависит от формата изображения и битовой глубины данных изображения. Для получения дополнительной информации см. Алгоритмы

Палитра, связанная с индексированными данными изображения в A, возвращается как m-by-3 матрица double классов.

Информация о прозрачности, возвращенная как матрица. Для файлов PNG, transparency - альфа-канал, если он присутствует. Если альфа-канал не присутствует, или если вы задаете 'BackgroundColor' аргумент пары "имя-значение", затем transparency пуст. Для файлов CUR и ICO, transparency является маской AND. Для файлов курсора эта маска иногда содержит единственные полезные данные.

Подробнее о

свернуть все

Битовая глубина

Битовая глубина - это количество бит, используемых для представления каждого пикселя изображения.

Битовая глубина вычисляется путем умножения битов на выборку с отсчетами на пиксель. Таким образом, формат, который использует 8 биты для каждого цветового компонента (или выборки) и три выборки на пиксель, имеет битовую глубину 24. Иногда размер выборки, сопоставленный с битовой глубиной, может быть неоднозначным. Для примера, представляет ли 48-битовая глубина шесть 8-битных выборок, четыре 12-битных выборки или три 16-битных выборки? Смотрите Алгоритмы для получения информации о размере выборки, чтобы избежать этой неоднозначности.

Алгоритмы

свернуть все

Для большинства форматов файлов изображений, imread использует 8 или меньше биты на цветовую плоскость, чтобы хранить пиксели изображения. В этой таблице перечислен класс возвращенного массива изображений, A, для битовых глубин, используемых форматами файлов.

Битовая глубина в файле

Класс массива, возвращенного imread

1 бит на пиксель

logical

От 2 до 8 биты на цветовую плоскость

uint8

От 9 до 16 бит на пиксель

uint16 (BMP, JPEG, PNG, и TIFF)

Для 16-битного формата упаковки BMP (5-6-5) MATLAB возвращает uint8

В следующих разделах приведены сведения о поддержке конкретных форматов, перечисленных в алфавитном порядке по имени формата.

BMP - Битовая карта Windows

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныНет сжатияСжатие RLEВыходной классПримечания
1 битlogical 
4 битаuint8 
8 битuint8 
16 битuint81 образец/пиксель
24 битuint83 выборки/пиксель
32 битuint83 выборки/пиксель
(1 байт заполнения)

CUR - Файл курсора

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныНет сжатияСжатиеВыходной класс
1 битlogical
4 битаuint8
8 битuint8

Примечание

По умолчанию Microsoft® Windows® курсоры - 32 на 32 пикселя. Поскольку указатели MATLAB должны быть 16 на 16, может потребоваться масштабирование изображения. Вы можете использовать imresize функция для этой операции.

GIF - Формат графического обмена

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныНет сжатияСжатиеВыходной класс
1 битlogical
от 2 до 8 битuint8

HDF4 - иерархический формат данных

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныРастровое изображение с палитройРастровое изображение без палитрыВыходной классПримечания
8 битuint8 
24 битuint83 выборки/пиксель

ICO - Файл значка

JPEG - Формат графических данных JPEG

imread считывает любое базовое изображение JPEG, а также изображения JPEG с некоторыми обычно используемыми расширениями. Для получения информации о поддержке файлов JPEG 2000 см. JPEG 2000.

Поддерживаемые биты на выборкуСжатие при потереСжатие без потерьВыходной классПримечания
8 битuint8Полутоновый или RGB
12 битuint16Полутоновый или RGB
16 битuint16Оттенки серого

JPEG 2000 - Формат графических данных JPEG 2000

Для получения информации о файлах JPEG, смотрите JPEG.

Примечание

Индексированные изображения JPEG 2000 не поддерживаются. Для файлов JP2 поддерживаются только JP2/JPX совместимые цветовые пространства. По умолчанию все каналы изображений возвращаются в том же порядке, в котором они хранятся в файле.

Поддерживаемые биты на выборку

Сжатие при потереСжатие без потерьВыходной классПримечания
1 битlogicalТолько полутоновый
от 2 до 8 битuint8 или int8Оттенки серого
или RGB
от 9 бит до 16 битuint16 или int16Оттенки серого
или RGB

PBM - Портативная битовая карта

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныНеобработанный двоичный кодASCII (обычный) закодированныйВыходной класс
1 битlogical

PCX - Windows Paintbrush

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныВыходной классПримечания
1 битlogicalТолько полутоновый
8 битuint8Полутоновый или индексированный
24 битuint8RGB
Три 8-битных сэмпла/пикселя

PGM - Портативная граймап

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныНеобработанный двоичный кодASCII (обычный) закодированныйВыходной классПримечания
8 битuint8 
16 битuint16 
ПроизвольныйОт 1 до 8 бит: uint8
от 9 до 16 бит: uint16
Значения масштабируются

PNG - Портативная сетевая графика

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныВыходной классПримечания
1 битlogicalОттенки серого
2 битаuint8Оттенки серого
4 битаuint8Оттенки серого
8 битuint8Полутоновый или индексированный
16 битuint16Полутоновый или индексированный
24 битuint8RGB
Три 8-битных сэмпла/пикселя.
48 битuint16RGB
Три 16-битные выборки/пиксель.

PPM - Portable Pixmap

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныНеобработанный двоичный кодASCII (обычный) закодированныйВыходной класс
До 16 битuint8
Произвольный 

RAS - Sun Raster

В этой таблице перечислены поддерживаемые битовые глубины и тип данных массива выходных изображений.

Поддерживаемые битовые глубиныВыходной классПримечания
1 битlogicalБитовый массив
8 битuint8Индексируемый
24 битuint8RGB
Три 8-битных сэмпла/пикселя
32 битuint8RGB с Alpha
Четыре 8-битных сэмпла/пикселя

Aperio SVS - виртуальный слайд Aperio ScanScope

Формат файла изображений на основе TIFF. imread поддерживает чтение несжатых и сжатых изображений, включая изображения с JPEG2000 сжатием. Для получения дополнительной информации см. TIFF - Теговый формат графических файлов.

TIFF - Теговый формат графических файлов

imread считывает большинство изображений, поддерживаемых спецификацией TIFF или LibTIFF. imread функция поддерживает следующие возможности TIFF:

  • Любое количество выборок на пиксель

  • CCITT группы 3 и 4 факс, пакеты, JPEG, LZW, дефляция, сжатие ThunderScan и несжатые изображения

  • Логический, полутоновый, индексированный цвет, truecolor и гиперспектральные изображения

  • RGB, CMYK, CIELAB, цветовые пространства ICCLAB. Если цветное изображение использует цветовое пространство CMYK, A является m-by- nмассив -by-4. Чтобы определить, какое цветовое пространство используется, используйте imfinfo чтобы получить информацию о графическом файле и просмотреть значение PhotometricInterpretation поле. Если файл содержит цветовые данные CIELAB, imread преобразует его в ICCLAB перед внесением в рабочее пространство MATLAB. Это преобразование необходимо, потому что 8-битные или 16-битные кодированные TIFF CIELAB значения используют смесь типов данных со знаком и без знака, которые не могут быть представлены как один массив MATLAB.

  • Данные, организованные в плитки или сканлинги

imread считывает и преобразует изображения TIFF следующим образом:

  • Изображения YCbCr преобразуются в пространство цветов RGB.

  • Все полутоновые изображения считываются как черные = 0, white = наибольшее значение.

  • 1-битные изображения возвращаются как logical классов.

  • 16-битные изображения с плавающей точкой возвращаются как single классов.

  • Изображения CIELab преобразуются в цветовое пространство ICCLab.

Для получения информации об авторских правах откройте libtiffcopyright.txt файл.

XWD - X Дамп Окна

В этой таблице перечислены поддерживаемые битовые глубины, сжатие и выходные классы для файлов XWD.

Поддерживаемые битовые глубиныZPixmapsXYBitmapsXYPixmapsВыходной класс
1 битlogical
8 битuint8

Расширенные возможности

..

См. также

| | | | | | (Image Processing Toolbox)

Представлено до R2006a