Отображение различных типов изображений

Если вам нужна помощь в определении типа изображения, с которым вы работаете, смотрите Типы изображений в Тулбоксе.

Отображение индексированных изображений

Чтобы отобразить индексированное изображение с помощью либо 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

Изображения 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 отображает изображение с помощью комбинации цветового приближения и диафрагмы. Для получения дополнительной информации см. отображение цветов».

Примечание

Если вы отображаете цветное изображение и оно появляется в черно-белом цвете, проверьте, является ли изображение индексированным. С индексированными изображениями необходимо задать карту цвета, связанную с изображением. Для получения дополнительной информации см. раздел «Отображение индексированных изображений».