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 и целочисленные типы данных

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

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

D = double(U8) + 1;

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

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

Преобразование между нормированным double и значения истинного цвета

Преобразовывать данные изображения истинного цвета от целочисленного типа, чтобы ввести double, перемасштабируйте данные. Например, если 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 или меньше карты к первому раскрашивает палитру. Значения, равные или больше, чем длина палитры, сопоставляют с последним цветом в палитре.

    • Если значения имеют тип 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