Отобразите различные типы изображения

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

Отобразите индексируемые изображения

Чтобы отобразить индексируемое изображение, с помощью или imshow или imtool, задают и матрицу изображений и палитру. Эта документация использует имя переменной X, чтобы представлять индексируемое изображение в рабочей области и map, чтобы представлять палитру.

imshow(X,map)

или

imtool(X,map)

Для каждого пикселя в X эти функции отображают цвет, сохраненный в соответствующей строке map. Если данные о матрице изображений имеют класс double, значение 1 точка к первой строке в палитре, значение 2 точки к второй строке, и так далее. Однако, если данные о матрице изображений имеют класс uint8 или uint16, значение 0 (нулей) указывает на первую строку в палитре, значение 1 точка к второй строке, и так далее. Это смещение обработано автоматически функциями imshow и imtool.

Если палитра содержит большее количество цветов, чем изображение, функции игнорируют дополнительные цвета в палитре. Если палитра содержит меньше цветов, чем изображение требует, функции устанавливают все пиксели изображения по пределам способности палитры к последнему цвету в палитре. Например, если изображение класса, uint8 содержит 256 цветов, и вы отображаете его с палитрой, которая содержит только 16 цветов, все пиксели со значением 15 или выше отображена с последним цветом в палитре.

Отобразите полутоновые изображения

Чтобы отобразить полутоновое изображение, вызовите функцию imshow или откройте приложение Image Viewer. Эта документация использует имя переменной I, чтобы представлять полутоновое изображение в рабочей области.

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

Если I является double, пиксельное значение 0,0 отображено столь же черное, пиксельное значение 1,0 отображено, столь же белые, и промежуточные пиксельные значения отображены как оттенки серого. Если I является uint8, то пиксельное значение 255 отображено как белое. Если я - uint16, то пиксельное значение 65 535 отображено как белое.

Полутоновые изображения подобны индексируемым изображениям, в которых каждый использует 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's. Пиксели со значением 0 отображены как черные; пиксели со значением 1 отображены как белые.

Примечание

Для тулбокса, чтобы интерпретировать изображение как двоичный файл, это должен иметь класс logical. Полутоновые изображения, которые, оказывается, содержат только 0 и 1's, не являются двухуровневыми изображениями.

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

BW = imread('circles.png');
imshow(BW)

Измените цвета отображения двухуровневого изображения

Вы можете предпочесть инвертировать двухуровневые изображения, когда вы отображаете их, так, чтобы 0 значений были отображены столь же белые, и 1 значение отображено как черное. Для этого используйте НЕ (~) оператор в MATLAB. (В этой фигуре поле чертится вокруг изображения, чтобы показать границу изображения.), Например:

imshow(~BW)

Можно также отобразить двухуровневое изображение с помощью индексируемого синтаксиса палитры изображений. Например, следующая команда задает палитру 2D строки, которая отображает 0, столь же красный и 1's как синий.

imshow(BW,[1 0 0; 0 0 1])

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

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

Примечание

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