изображение

Изображение на дисплее от массива

Синтаксис

image(C)
image(x,y,C)
image('CData',C)
image('XData',x,'YData',y,'CData',C)
image(___,Name,Value)
image(ax,___)
im = image(___)

Описание

пример

image(C) отображает данные в массиве C как изображение. Каждый элемент C задает цвет для 1 пикселя изображения. Получившимся изображением является m-by-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 | логический

Размещение вдоль оси 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 | логический

Размещение вдоль оси 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 | логический

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

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

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

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

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

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

Методы имеют эти эффекты:

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

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

    • Если значения имеют тип uint8, uint16, uint32, uint64, int8, int16, int32 или int64, то значения 0 или меньшего количества карты к первому раскрашивают палитру. Значения, равные или больше, чем длина палитры, сопоставляют с последним цветом в палитре (или до пределов области значений типа).

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

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

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

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

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

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

Пример: 0.5

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Интерпретация значений 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 (или до пределов области значений типа). Целочисленными типами является uint8, uint16, uint32, uint64, int8, int16, int32 и 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