image

Отобразите изображение из массива

Описание

пример

image(C) отображает данные в массиве C как изображение. Каждый элемент C задает цвет для 1 пикселя изображения. Получившимся изображением является m- n сетка пикселей, где m количество строк и n количество столбцов в C. Индексы строки и столбца элементов определяют центры соответствующих пикселей.

пример

image(x,y,C) задает расположение изображения. Используйте x и y задавать местоположения углов, соответствующих C(1,1) и C(m,n). Чтобы задать оба угла, установите x и y как двухэлементные векторы. Задавать первый угол и позволять image определите другой, установите x и y как скалярные значения. Изображение расширено и ориентировано как применимое.

image('CData',C) добавляет изображение к текущей системе координат без замены существующих графиков. Этот синтаксис является низкоуровневой версией image(C). Для получения дополнительной информации смотрите Высокий уровень По сравнению с Низкоуровневой Версией Изображения.

image('XData',x,'YData',y,'CData',C) задает расположение изображения. Этот синтаксис является низкоуровневой версией image(x,y,C).

пример

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

image(ax,___) создает изображение в осях, заданных ax вместо в текущей системе координат (gca). Опция ax может предшествовать любой из комбинаций входных аргументов в предыдущих синтаксисах.

пример

im = image(___) возвращает Image объект создается. Используйте im установить свойства изображения после того, как это создается. Можно задать этот выход с любой из комбинаций входных аргументов в предыдущих синтаксисах. Для списка свойств изображения и описаний, смотрите Свойства изображения.

Примеры

свернуть все

Создайте матричный C. Отобразите изображение данных в C. Добавьте шкалу палитры в график, чтобы показать текущую палитру.

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(C)
colorbar

По умолчанию, CDataMapping свойство для изображения установлено в 'direct' так image интерпретирует значения в C как индексы в палитру. Например, правый нижний пиксель, соответствующий последнему элементу в C, 22, использует 22-й цвет палитры.

Масштабируйте значения к полному спектру текущей палитры путем установки CDataMapping свойство к 'scaled' при создании изображения.

image(C,'CDataMapping','scaled')
colorbar

В качестве альтернативы можно использовать imagesc функционируйте, чтобы масштабировать значения вместо того, чтобы использовать image(C,'CDataMapping','scaled'). Например, используйте imagesc(C).

Поместите изображение так, чтобы оно нашлось между 5 и 8 на оси X и между 3 и 6 на оси Y.

x = [5 8];
y = [3 6];
C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(x,y,C)

Заметьте, что пиксель, соответствующий C (1,1), сосредоточен по точке (5,3). Пиксель, соответствующий C (3,4), сосредоточен по точке (8,6). image положения и ориентируют остальную часть изображения между теми двумя точками.

Создайте C как трехмерный массив истинных цветов. Используйте только красные цвета путем установки последних двух страниц массива к нулям.

C = zeros(3,3,3);
C(:,:,1) = [.1 .2 .3; .4 .5 .6; .7 .8 .9]
C = 
C(:,:,1) =

    0.1000    0.2000    0.3000
    0.4000    0.5000    0.6000
    0.7000    0.8000    0.9000


C(:,:,2) =

     0     0     0
     0     0     0
     0     0     0


C(:,:,3) =

     0     0     0
     0     0     0
     0     0     0

Отобразите изображение данных в C.

image(C)

Постройте график, и затем создайте изображение сверху линии. Возвратите объект изображения.

plot(1:3)
hold on
C = [1 2 3; 4 5 6; 7 8 9];
im = image(C);

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

im.AlphaData = 0.5;

Считайте файл изображения JPEG.

C = imread('ngc6543a.jpg');

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

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

image(C)

Создайте объемную поверхностную диаграмму. Затем добавьте изображение под поверхностью. image отображает изображение в xy-плоскости.

Z = 10 + peaks;
surf(Z)
hold on 
image(Z,'CDataMapping','scaled')

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

свернуть все

Данные о цвете изображения, заданные в одной из следующих форм:

  • Вектор или матрица — Этот формат задают индексированные данные изображения. Каждый элемент C задает цвет для 1 пикселя изображения. Например, C = [1 2 3; 4 5 6; 7 8 9];. Элементы C сопоставьте с, раскрашивает палитру связанных осей. CDataMapping свойство управляет методом отображения.

  • Трехмерный массив триплетов RGB — Этот формат задает данные изображения истинного цвета с помощью значений триплета RGB. Каждый триплет RGB задает цвет для 1 пикселя изображения. Триплет RGB является трехэлементным вектором, который задает интенсивность красных, зеленых, и синих компонентов цвета. Первая страница трехмерного массива содержит красные компоненты, вторая страница содержит зеленые компоненты, и третья страница содержит синие компоненты. Поскольку изображение использует истинные цвета вместо цветов палитры, CDataMapping свойство не оказывает влияния.

    • Если C имеет тип double, затем значение триплета RGB [0 0 0] соответствует черный и [1 1 1] соответствует белый.

    • Если C целочисленный тип, затем изображение использует полный спектр данных, чтобы определить цвет. Например, если C имеет тип uint8, затем [0 0 0] соответствует черный и [255 255 255] соответствует белый. Если CData имеет тип int8, затем [-128 -128 -128] соответствует черный и [127 127 127] соответствует белый.

    • Если C имеет тип logical, затем [0 0 0] соответствует черный и [1 1 1] соответствует белый.

Этот рисунок показывает относительные размерности C для этих двух цветовых моделей.

Поведение NaN элементы не заданы.

Использовать низкоуровневую версию image функция вместо этого, набор CData свойство как пара "имя-значение". Например, image('CData',C).

Преобразование между типами данных

Преобразовывать индексированные данные изображения от целочисленного типа, чтобы ввести double, добавьте 1. Например, если X8 индексированные данные изображения типа uint8, преобразуйте его, чтобы ввести double использование:

X64 = double(X8) + 1;

Преобразовывать индексированные данные изображения от типа double к целочисленному типу вычтите 1 и используйте round гарантировать, что все значения являются целыми числами. Например, если X64 индексированные данные изображения типа double, преобразуйте его в uint8 использование:

X8 = uint8(round(X64 - 1));

Преобразовывать данные изображения истинного цвета от целочисленного типа, чтобы ввести double, повторно масштабируйте данные. Например, если RGB8 данные изображения истинного цвета типа uint8, преобразуйте его в double использование:

RGB64 = double(RGB8)/255;

Преобразовывать данные изображения истинного цвета от типа double к целочисленному типу повторно масштабируйте данные и используйте round гарантировать, что все значения являются целыми числами. Например, если RGB64 данные изображения типа double, преобразуйте его в uint8 использование:

RGB8 = uint8(round(RGB64*255));

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Размещение вдоль оси X, заданной в одной из следующих форм:

  • Двухэлементный вектор — Использование первый элемент как местоположение для центра C(1,1) и второй элемент как местоположение для центра C(m,n), где [m,n] = size(C). Если C трехмерный массив, затем m и n первые две размерности. Равномерно распределите центры остающихся элементов C между теми двумя точками.

    Ширина каждого пикселя определяется выражением:

    (x(2)-x(1))/(size(C,2)-1)

    Если x(1) > x(2), затем изображение инвертируется лево-правильным.

  • Скаляр — сосредотачивает C(1,1) в этом местоположении и каждом после элемента один модуль независимо.

Использовать низкоуровневую версию image функция вместо этого, набор XData свойство как пара "имя-значение". Например, image('XData',x,'YData',y,'CData',C).

Вы не можете в интерактивном режиме панорамировать или масштабировать вне пределов оси X или пределов оси Y изображения, если пределы уже не устанавливаются вне границ изображения. Если пределы уже вне границ, нет такого ограничения. Если другие объекты (такие как линия) занимают оси и расширяют вне границ изображения, можно панорамировать или масштабировать к границам других объектов, но не далее.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Размещение вдоль оси Y, заданной в одной из следующих форм:

  • Двухэлементный вектор — Использование первый элемент как местоположение для центра C(1,1) и второй элемент как местоположение для центра C(m,n), где [m,n] = size(C). Если C трехмерный массив, затем m и n первые две размерности. Равномерно распределите центры остающихся элементов C между теми двумя точками.

    Высота каждого пикселя определяется выражением:

    (y(2)-y(1))/(size(C,1)-1)

    Если y(1) > y(2), затем изображение инвертируется вниз.

  • Скаляр — сосредотачивает C(1,1) в этом местоположении и каждом после элемента один модуль независимо.

Использовать низкоуровневую версию image функция вместо этого, набор YData свойство как пара "имя-значение". Например, image('XData',x,'YData',y,'CData',C).

Вы не можете в интерактивном режиме панорамировать или масштабировать вне пределов оси X или пределов оси Y изображения, если пределы уже не устанавливаются вне границ изображения. Если пределы уже вне границ, нет такого ограничения. Если другие объекты (такие как линия) занимают оси и расширяют вне границ изображения, можно панорамировать или масштабировать к границам других объектов, но не далее.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Axes объект. Если вы не задаете Axes объект, затем image использует текущую систему координат.

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

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

Пример: image([1 2 3],'AlphaData',0.5) отображает полупрозрачное изображение.

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

Цветной метод отображения данных, заданный как 'direct' или 'scaled'. Используйте это свойство управлять отображением цветных значений данных в CData в палитру. CData должен быть вектор или матрица, задающая индексированные цвета. Это свойство не оказывает влияния если CData трехмерный массив, задающий истинные цвета.

Методы оказывают эти влияния:

  • 'direct' — Интерпретируйте значения как индексы в текущую палитру. Значения с десятичным фрагментом фиксируются к самому близкому более низкому целому числу.

    • Если значения имеют тип double или single, затем значения 1 или меньше карты к первому раскрашивает палитру. Значения, равные или больше, чем длина палитры, сопоставляют с последним цветом в палитре.

    • Если значения имеют тип uint8uint16uint32uint64 int8int16int32, или int64, затем значения 0 или меньше карты к первому раскрашивает палитру. Значения, равные или больше, чем длина палитры, сопоставляют с последним цветом в палитре (или до пределов области значений типа).

    • Если значения имеют тип logical, затем значения 0 карта к первому раскрашивает палитру и значения 1 сопоставьте со вторым цветом в палитре.

  • 'scaled' — Масштабируйте значения, чтобы расположиться между минимальными и максимальными цветными пределами. CLim свойство осей содержит цветные пределы.

Данные о прозрачности, заданные в одной из следующих форм:

  • Скаляр — Использование сопоставимая прозрачность через целое изображение.

  • Выстройте тот же размер как CData — Используйте различное значение прозрачности в каждом элементе изображения.

AlphaDataMapping свойство управляет, как MATLAB® интерпретирует альфа-значения прозрачности данных.

Пример: 0.5

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Интерпретация AlphaData значения, заданные как одно из этих значений:

  • 'none' — Интерпретируйте значения как значения прозрачности. Значение 1 или больше абсолютно непрозрачно, значение 0 или меньше абсолютно прозрачно, и значение между 0 и 1 является полупрозрачным.

  • 'scaled' — Сопоставьте значения в alphamap фигуры. Минимальные и максимальные альфа-пределы осей определяют альфа-значения данных, которые сопоставляют с первыми и последними элементами в alphamap, соответственно. Например, если альфа-пределами является [3 5], затем альфа-значения данных, меньше чем или равные 3 сопоставьте с первым элементом в alphamap. Альфа-значения данных, больше, чем или равный 5 сопоставьте с последним элементом в alphamap. ALim свойство осей содержит альфа-пределы. Alphamap свойство фигуры содержит alphamap.

  • 'direct' — Интерпретируйте значения как индексы в alphamap фигуры. Значения с десятичным фрагментом фиксируются к самому близкому более низкому целому числу:

    • Если значения имеют тип double или single, затем значения 1 или менее карт к первому элементу в alphamap. Значения, равные или больше, чем длина alphamap, сопоставляют с последним элементом в alphamap.

    • Если значения имеют целое число типа, то значения 0 или меньше карт к первому элементу в alphamap. Значения, равные или больше, чем длина alphamap, сопоставляют с последним элементом в alphamap (или до пределов области значений типа). Целочисленными типами является uint8uint16uint32uint64 int8int16int32, и int64.

    • Если значения имеют тип logical, затем значения 0 карт к первому элементу в alphamap и значения 1 карты к второму элементу в alphamap.

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

свернуть все

Image объект, возвращенный как скаляр. Используйте im установить свойства изображения после того, как это создается. Для списка смотрите Свойства изображения.

Больше о

свернуть все

Высокий уровень по сравнению с низкоуровневой версией изображения

image функция имеет две версии, высокоуровневую версию и низкоуровневую версию. Если вы используете image с 'CData' как входной параметр, затем вы используете низкоуровневую версию. В противном случае вы используете высокоуровневую версию.

Высокоуровневая версия image вызовы newplot прежде, чем построить и наборы эти свойства осей:

  • Layer к 'top'. Изображение показывают перед любыми отметками деления или линиями сетки.

  • YDir к 'reverse'. Значения вдоль оси Y увеличиваются сверху донизу. Чтобы уменьшить значения сверху донизу, установите YDir к 'normal'. Эта установка инвертирует и ось Y и изображение.

  • View к [0 90].

Низкоуровневая версия image функция не вызывает newplot и не устанавливает эти свойства осей.

Советы

  • Считать данные изображения в MATLAB от графических файлов в различных стандартных форматах, таких как TIFF, imread использования. Чтобы записать данные изображения MATLAB в графические файлы, используйте imwrite. imread и imwrite функции поддерживают множество форматов графических файлов и схем сжатия.

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

Смотрите также

Функции

Свойства

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