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

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

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

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

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

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

Также можно использовать 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)

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

Заметьте, что пиксель, соответствующий C (1,1), центрирован над точкой (5,3). Пиксель, соответствующий С (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)

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

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

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

Figure contains an axes. The axes contains 2 objects of type line, image.

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

im.AlphaData = 0.5;

Figure contains an axes. The axes contains 2 objects of type line, image.

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

C = imread('ngc6543a.jpg');

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

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

image(C)

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

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

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

Figure contains an axes. The axes contains 2 objects of type surface, image.

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

свернуть все

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

  • Вектор или матрица - Этот формат задает индексированные данные изображения. Каждый элемент C определяет цвет для 1 пикселя изображения. Для примера, C = [1 2 3; 4 5 6; 7 8 9];. Элементы C сопоставить с цветами в палитре связанных осей. The 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 и целочисленные типы данных

Когда вы вызываете image функция с вектором или 2-D матрицей и используйте CDataMapping по умолчанию значение, вы должны сместить значения данных на 1 при преобразовании между double значения и целые типы. Это смещение не обязательно, когда CDataMapping установлено в 'scaled'.

Для примера, если U8 содержит индексированные данные изображений типа uint8, можно преобразовать его в тип double использование:

D = double(U8) + 1;

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

U8 = uint8(round(D - 1));

Преобразование между нормированными double и значения Truecolor

Чтобы преобразовать истинные данные цветного изображения из целого типа в double type, переформулируйте данные. Для примера, если RGB8 - данные истинного цветного изображения типа uint8, преобразовать его в double использование:

RGB = double(RGB8)/255;

Чтобы преобразовать данные истинного цветного изображения из double типа для целого типа переформулируйте данные и используйте round чтобы убедиться, что все значения являются целыми числами. Для примера, если RGB - данные изображений типа double, преобразовать его в uint8 использование:

RGB8 = uint8(round(RGB*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 или меньше сопоставить с первым цветом в палитре. Значения, равные или больше длины карты палитры до последнего цвета в палитре.

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

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

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

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

  • Скаляр - Использование последовательной прозрачности по всему изображению.

  • Массив того же размера, что и CData - Используйте другое значение прозрачности для каждого элемента изображения.

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

Пример: 0.5

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

Интерпретация AlphaData значения, заданные в качестве одного из следующих значений:

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

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

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

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

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

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

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

свернуть все

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

Подробнее о

свернуть все

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

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

Высокоуровневая версия image вызовы newplot перед построением графика и установкой этих свойств осей:

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

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

  • View на [0 90].

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

Совет

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

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

См. также

Функции

Свойства

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