exponenta event banner

изображение

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

Описание

пример

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

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

По умолчанию CDataMapping свойство для изображения имеет значение 'direct' так image интерпретирует значения в C в качестве индексов в карте цветов. Например, нижний правый пиксель, соответствующий последнему элементу в C22, использует 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). Пиксель, соответствующий C (3,4), центрируется над точкой (8,6 ).image и ориентирует остальную часть изображения между этими двумя точками.

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

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 сопоставить с цветами в карте цветов связанных осей. CDataMapping свойство управляет методом сопоставления.

  • 3-D массив триплетов RGB - этот формат определяет истинные данные цветного изображения, используя значения триплетов RGB. Каждый триплет RGB определяет цвет для 1 пиксела изображения. Триплет RGB - это трехэлементный вектор, задающий интенсивности красного, зеленого и синего компонентов цвета. Первая страница массива 3-D содержит красные компоненты, вторая страница содержит зеленые компоненты, а третья страница содержит синие компоненты. Поскольку изображение использует истинные цвета вместо цветов карты цветов, 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, масштабировать данные. Например, если 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 является массивом 3-D, то 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 является массивом 3-D, то 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 является массивом 3-D, определяющим истинные цвета.

Методы имеют следующие эффекты:

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

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

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

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

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

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

  • Скаляр (Scalar) - использовать согласованную прозрачность по всему изображению.

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

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

Пример: 0.5

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

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

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

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

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

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

    • Если значения имеют тип integer, то значения 0 или менее сопоставляются с первым элементом в буквенной карте. Значения, равные или превышающие длину сопоставления 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