Если вам нужна помощь в определении типа изображения, с которым вы работаете, смотрите Типы изображений в Тулбоксе.
Чтобы отобразить индексированное изображение с помощью либо imshow
или imtool
задайте как матрицу изображений, так и карту цвета. В этой документации используется имя переменной X
представлять индексированное изображение в рабочей области и map
для представления цветовой карты.
imshow(X,map)
или
imtool(X,map)
Для каждого пикселя в X
эти функции отображают цвет, сохраненный в соответствующей строке map
. Если матричные данные изображения имеют класс double
, значение 1 указывает на первую строку в цветовой карте, значение 2 указывает на вторую строку и так далее. Однако, если матричные данные изображения имеют класс uint8
или uint16
значение 0 (нуль) указывает на первую строку в цветовой карте, значение 1 указывает на вторую строку и так далее. Это смещение обрабатывается автоматически imtool
и imshow
функций.
Если карта цветов содержит больше цветов, чем изображение, функции игнорируют дополнительные цвета в карте цветов. Если карта цветов содержит меньше цветов, чем требуется изображению, функции устанавливают все пиксели изображения в пределах пропускной способности карты цветов до последнего цвета в карте цветов. Для примера, если изображение класса uint8
содержит 256 цветов, и вы отображаете его с картой цветов, которая содержит только 16 цветов, все пиксели со значением 15 или выше отображаются с последним цветом в карте цветов.
Чтобы отобразить полутоновое изображение, вызовите imshow
function или откройте Image Viewer приложения. В этой документации используется имя переменной I
для представления полутонового изображения в рабочей области.
Обе функции отображают изображение путем масштабирования значений интенсивности, чтобы служить индексами в цветовой карте полутонового цвета.
Если I
является double
значение пикселя 0,0 отображается как черное, значение пикселя 1,0 отображается как белое, а значения пикселя между ними отображаются как оттенки серого цвета. Если I
является uint8
затем значение пикселя 255 отображается белым. Если я uint16
затем значение пикселя 65535 отображается белым.
Полутоновые изображения аналогичны индексированным изображениям, в которых каждый использует цветовую карту m -by-3 RGB, но вы обычно не задаете цветовую карту для полутонового изображения. MATLAB® отображает полутоновые изображения при помощи цветовой карты системы полутонового цвета (где R = G = B). По умолчанию количество уровней серого в цветовой карте составляет 256 в системах с 24-битным цветом и 64 или 32 в других системах. (Подробное объяснение см. в разделе «Отображение цветов»).
В некоторых случаях данные изображения, которые вы хотите отобразить в виде полутонового изображения, могут иметь область значений отображения, который находится вне обычной области значений тулбоксов (то есть [0, 1] для single
или double
массивы, [0, 255] для uint8
массивы, [0, 65535] для uint16
массивы, или [-32767, 32768] для int16
массивы). Например, если вы фильтруете полутоновое изображение, некоторые выходные данные могут оказаться вне области значений исходных данных.
Чтобы отобразить нетрадиционные данные о области значений в качестве изображения, можно задать область значений отображения непосредственно, используя этот синтаксис для обоих imshow
и imtool
функций.
imshow(I,'DisplayRange',[low high])
или
imtool(I,'DisplayRange',[low high])
Если вы используете пустую матрицу ([]
) для области значений отображения эти функции масштабируют данные автоматически, задавая low
и high
к минимальному и максимальному значениям в массиве.
Следующий пример фильтрует полутоновое изображение, создавая нетрадиционные данные о области значений. Пример вызывает imtool
отображение изображения в Image Viewer с помощью опции автоматического масштабирования. При выполнении этого примера обратите внимание на область значений отображения, заданный в правом нижнем углу Image Viewer окна.
I = imread('testpat1.png'); J = filter2([1 2;-1 -2],I); imtool(J,'DisplayRange',[]);
В MATLAB бинарное изображение имеет класс logical
. Бинарные изображения содержат только 0 и 1. Пиксели со значением 0 отображаются черными; пиксели со значением 1 отображаются белым цветом.
Примечание
Чтобы тулбокс интерпретировал изображение как двоичное, оно должно быть класса logical
. Полутоновые изображения, которые содержат только 0 и 1, не являются бинарными изображениями.
Чтобы отобразить бинарное изображение, вызовите imshow
функция или откройте приложение Image Viewer. Например, этот код считывает бинарное изображение в рабочее пространство MATLAB, а затем отображает изображение. В этой документации используется имя переменной BW
для представления бинарного изображения в рабочей области
BW = imread('circles.png'); imshow(BW)
Вы можете предпочитать инвертировать бинарные изображения при их отображении, так что 0 значений отображаются как белые, а 1 значение отображается как черное. Для этого используйте оператор NOT (~) в MATLAB. (На этом рисунке вокруг изображения рисуется рамка, показывающая контур изображения.) Для примера:
imshow(~BW)
Можно также отобразить бинарное изображение с помощью индексированного синтаксиса цветовой карты изображения. Например, следующая команда задает цветовую карту с двумя строками, которая отображает 0 красных и 1 синих.
imshow(BW,[1 0 0; 0 0 1])
Изображения Truecolor, также называемые изображениями RGB, представляют значения цветов непосредственно, а не через карту цветов. Изображение truecolor является массивом m -by- n -by-3. Для каждого пикселя (r,c
) на изображении цвет представлен триплетом (r,c,1:3
).
Чтобы отобразить изображение truecolor, вызовите imshow
функция или откройте приложение Image Viewer. Например, этот код считывает изображение truecolor в рабочее пространство MATLAB, а затем отображает изображение. В этой документации используется имя переменной RGB
для представления изображения truecolor в рабочей области
RGB = imread('peppers.png'); imshow(RGB)
Системы, которые используют 24 бита на пиксель экрана, могут отображать изображения truecolor непосредственно, потому что они выделяют 8 бит (256 уровней) каждый для красных, зеленых и синих цветовых плоскостей. В системах с меньшим количеством цветов imshow
отображает изображение с помощью комбинации цветового приближения и диафрагмы. Для получения дополнительной информации см. отображение цветов».
Примечание
Если вы отображаете цветное изображение и оно появляется в черно-белом цвете, проверьте, является ли изображение индексированным. С индексированными изображениями необходимо задать карту цвета, связанную с изображением. Для получения дополнительной информации см. раздел «Отображение индексированных изображений».