exponenta event banner

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

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

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

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

I = imread('testpat1.png');
J = filter2([1 2;-1 -2],I);
imtool(J,'DisplayRange',[]);

Отображать двоичные изображения

В MATLAB двоичное изображение имеет класс logical. Двоичные изображения содержат только 0 и 1. Пикселы со значением 0 отображаются черным цветом; пикселы со значением 1 отображаются белым цветом.

Примечание

Чтобы панель инструментов интерпретировала изображение как двоичное, оно должно иметь класс logical. Изображения в градациях серого, которые содержат только 0 и 1, не являются двоичными изображениями.

Для отображения двоичного изображения вызовите imshow или откройте приложение «Просмотр изображений». Например, этот код считывает двоичное изображение в рабочую область 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).

Чтобы отобразить изображение с трюэколором, вызовите imshow или откройте приложение Image Viewer. Например, этот код считывает изображение цвета в рабочую область MATLAB, а затем отображает изображение. В этой документации используется имя переменной RGB для представления цветного изображения в рабочей области

RGB = imread('peppers.png');
imshow(RGB)

Системы, использующие 24 бита на пиксель экрана, могут отображать изображения, окрашенные в цвет, непосредственно, поскольку они выделяют по 8 бит (256 уровней) для красной, зеленой и синей цветовых плоскостей. В системах с меньшим количеством цветов imshow отображает изображение, используя комбинацию цветовой аппроксимации и дизеринга. Дополнительные сведения см. в разделе Цвета отображения.

Примечание

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