imshow

Отобразите изображение

Описание

пример

imshow(I) отображает полутоновое изображение I на рисунке. imshow использует область значений отображения по умолчанию для типа данных изображения и оптимизирует свойства рисунка, осей и объекта изображения для отображения изображения.

imshow(I,[low high]) отображает полутоновое изображение I, задающая область значений отображения как двухэлементный вектор, [low high]. Для получения дополнительной информации смотрите DisplayRange параметр.

пример

imshow(I,[]) отображает полутоновое изображение Iмасштабирование отображения на основе области значений значений пикселей в I. imshow использует [min(I(:)) max(I(:))] в качестве области значений отображения. imshow отображает минимальное значение в I как черный, а максимальное значение как белый. Для получения дополнительной информации смотрите DisplayRange параметр.

пример

imshow(RGB) отображает изображение truecolor RGB на рисунке.

пример

imshow(BW) отображает бинарное изображение BW на рисунке. Для бинарных изображений, imshow отображает пиксели со значением 0 (нуль) как черный и 1 как белый.

пример

imshow(X,map) отображает индексированное изображение X с помощью палитры map. Матрица палитры может иметь любое количество строк, но она должна иметь ровно 3 столбца. Каждая строка интерпретируется как цвет с первым элементом, определяющим интенсивность красного, второго зеленого и третьего синего. Интенсивность цвета может быть задана на интервале [0, 1].

пример

imshow(filename) отображает изображение, сохраненное в графическом файле, заданном filename.

imshow(___,Name,Value) отображает изображение, используя пары "имя-значение" для управления аспектами операции.

himage = imshow(___) возвращает объект изображения, созданный imshow.

imshow(I,RI) отображает изображение I со связанным 2-D пространственным объектом привязки RI.

imshow(X,RX,map) отображает индексированное изображение X со связанным 2-D пространственным объектом привязки RX и палитры map.

Примеры

свернуть все

Отобразите полутоновое, RGB (truecolor), индексированное или бинарное изображение с помощью imshow. MATLAB ® включает файл TIF с именем corn.tif, который содержит три изображения: полутоновое изображение, индексированное изображение и изображение truecolor (RGB). Этот пример создает бинарное изображение из полутонового изображения.

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

Считайте полутоновое изображение из corn.tif файл в рабочее пространство MATLAB. Полутоновая версия изображения является третьим изображением в файле.

corn_gray = imread('corn.tif',3);

Отобразите полутоновое изображение с помощью imshow.

imshow(corn_gray)

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

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

Чтение индексированного изображения из corn.tif файл в рабочее пространство MATLAB. Индексированная версия изображения является первым изображением в файле.

[corn_indexed,map] = imread('corn.tif',1);

Отобразите индексированное изображение с помощью imshow.

imshow(corn_indexed,map)

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

Отображение изображения RGB

Чтение изображения RGB из corn.tif файл в рабочее пространство MATLAB. RGB-версия изображения является вторым изображением в файле.

[corn_rgb] = imread('corn.tif',2);

Отображение изображения RGB с помощью imshow.

imshow(corn_rgb)

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

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

Считайте полутоновое изображение из corn.tif файл в рабочее пространство MATLAB и используйте пороговое значение, чтобы преобразовать его в бинарное изображение. Полутоновая версия изображения является третьим изображением в файле.

[corn_gray] = imread('corn.tif',3);

Определите среднее значение пикселей в полутоновом изображении.

meanIntensity = mean(corn_gray(:));

Создайте бинарное изображение по порогу, используя среднее значение интенсивности в качестве порога.

corn_binary = corn_gray > meanIntensity;

Отобразите бинарное изображение с помощью imshow.

imshow(corn_binary)

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

Отображение изображения, сохраненного в файле.

imshow('peppers.png');

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

Считайте выборку индексированного изображения, corn.tif, в рабочую область, а затем отобразить ее.

[X,map] = imread('corn.tif');
imshow(X,map)

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

Измените палитру для изображения с помощью colormap функция и установка целевых осей в качестве первого входного параметра. Используйте исходную палитру без красного компонента.

newmap = map;
newmap(:,1) = 0;
colormap(gca,newmap)

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

Чтение изображения truecolor (RGB) в рабочую область. Тип данных изображения uint8.

RGB = imread('peppers.png');

Извлеките зеленый канал изображения. Зеленый канал является второй цветовой плоскостью.

G = RGB(:,:,2);
imshow(G)

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

Создайте фильтр, который обнаруживает горизонтальные ребра на изображении.

filt = [-1 -1 -1;0 0 0;1 1 1];

Фильтрация зеленого канала изображения с помощью filter2 функция. Результатом является изображение типа данных double, с минимальным значением -422 и максимальным значением 656. Пиксели с большой величиной на отфильтрованном изображении указывают на сильные ребра.

edgeG = filter2(filt,G);

Отобразите отфильтрованное изображение с помощью imshow с отображением по умолчанию область значений. Для изображений типа данных doubleдисплей по умолчанию область значений [0, 1]. Изображение выглядит черно-белым, поскольку отфильтрованные значения пикселей превышают область значений [0, 1].

imshow(edgeG)

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

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

imshow(edgeG,[])

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

Считайте полутоновое изображение из corn.tif файл в рабочую область. Полутоновая версия изображения является вторым изображением в файле.

corn_gray = imread('corn.tif',2);

Выберите небольшую фрагмент изображения. Отобразите детальное изображение с 100% -ным увеличением с помощью imshow.

corn_detail = corn_gray(1:100,1:100);
imshow(corn_detail)

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

Отобразите изображение с 1000% -ным увеличением при помощи 'InitialMagnification' аргумент пары "имя-значение". По умолчанию inshow выполняет интерполяцию пиксельных значений по ближайшему соседу. Изображение имеет блокирующие программные продукты.

imshow(corn_detail,'InitialMagnification',1000)

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

Отобразите изображение с 1000% -ным увеличением, задавая метод билинейной интерполяции. Изображение выглядит более плавным.

imshow(corn_detail,'InitialMagnification',1000,'Interpolation',"bilinear")

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

Чтение изображения в рабочую область.

I = imread('pout.tif');

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

figure
imshow(I)

Создайте пространственный объект привязки, сопоставленный с изображением. Используйте объект привязки, чтобы задать пределы X и оси Y в мировой системе координат.

RI = imref2d(size(I));
RI.XWorldLimits = [0 3];
RI.YWorldLimits = [2 5];

Отобразите изображение, задав пространственный объект привязки. Обратите внимание на изменение пределов по осям X и оси Y

figure
imshow(I,RI)

Входные параметры

свернуть все

Входное полутоновое изображение, заданное как матрица. Полутоновое изображение может быть любым типом числовых данных.

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

Входное изображение truecolor, заданное как массив m -by- n -by-3.

Если вы задаете изображение truecolor типа данных single или double, тогда значения должны быть в области значений [0, 1]. Если значения пикселей находятся вне этой области значений, то можно использовать rescale функция для масштабирования значений пикселей в область значений [0, 1]. 'DisplayRange' аргумент не влияет, когда входное изображение является truecolor.

Типы данных: single | double | uint8 | uint16

Входное бинарное изображение, заданное как матрица.

Типы данных: logical

Индексированное изображение, заданное как 2-D массив действительных числовых значений. Значения в X являются ли индексы в палитру, заданную map.

Типы данных: single | double | uint8 | logical

Палитра, заданная как массив c -by-3 типа single или double в области значений [0 1], или массив типа c -by-3 uint8. Каждая строка задает значение цвета RGB.

Типы данных: single | double | uint8

Имя файла, заданное как вектор символов. Изображение должно считываться по imread. The imshow функция отображает изображение, но не хранит данные изображения в MATLAB® рабочей области. Если файл содержит несколько изображений, imshow отображает первое изображение в файле.

Пример: imshow('peppers.png')

Типы данных: char

Область значений отображения полутонового изображения, заданный как двухэлементный вектор. Для получения дополнительной информации см. Раздел DisplayRange' аргумент пары "имя-значение".

Пример: [50 250]

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

2-D пространственный объект привязки, сопоставленный с входным изображением, задается как imref2d объект.

2-D пространственный объект привязки, сопоставленный с индексированным изображением, заданный как imref2d объект.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: imshow('board.tif','Border','tight')

Рамочное пространство окна рисунка, заданное как разделенная разделенными запятой парами, состоящая из 'Border' и любой из них 'tight' или 'loose'. Когда установлено значение 'loose', окно рисунка включает пространство вокруг изображения на рисунке. Когда установлено значение 'tight', окно рисунка не включает никаких пространств вокруг изображения на рисунке.

Если изображение очень маленькое или если рисунок содержит другие объекты, помимо изображения и его осей, imshow может использовать границу независимо от того, как этот параметр установлен.

Пример: imshow('board.tif','Border','tight')

Типы данных: char

Палитра, заданная как разделенная разделенными запятой парами, состоящая из 'Colormap' и матрицу c -by-3 со значениями в области значений [0, 1]. imshow используется для установки палитры осей. Используйте этот параметр для просмотра полутоновых изображений в ложном цвете. Если вы задаете пустую палитру ([]), затем imshow игнорирует этот параметр.

Примечание

Начиная с R2016b, imshow изменяет палитру для осей, содержащих изображение вместо рисунка.

Пример: newmap = copper; imshow('board.tif','Colormap',newmap)

Типы данных: double

Отобразите область значений полутонового изображения в виде двухэлементного вектора вида [low high]. The imshow функция отображает значение low (и любое значение, меньше low) черного цвета, и оно отображает значение high (и любое значение, больше high) как белый. Значения между low и high отображаются как промежуточные оттенки серого цвета, используя значение по умолчанию для уровней серого цвета.

Если вы задаете пустую матрицу ([]), затем imshow использует область значений отображения [min(I(:)) max(I(:))]. Другими словами, минимальное значение в I является черным, а максимальное значение - белым.

Если вы не задаете области значений отображения, то imshow выбирает область значений отображения по умолчанию на основе типа данных изображения.

  • Если I - целый тип, затем DisplayRange по умолчанию задает минимальное и максимальное представимые значения для этого целочисленного класса. Для примера отображение по умолчанию область значений для uint16 массивы - [0, 65535].

  • Если I является типом данных single или double, затем по умолчанию отображается область значений [0, 1].

Примечание

Включение имени параметра опционально, за исключением случаев, когда изображение задано именем файла. Синтаксис imshow(I,[low high]) эквивалентно imshow(I,'DisplayRange',[low high]). Если вы звоните imshow с именем файла, затем необходимо задать 'DisplayRange' параметр.

Пример: imshow(I,'DisplayRange',[0 80]);

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

Начальное увеличение отображения изображения, заданное как разделенная разделенными запятой парами, состоящая из 'InitialMagnification' и числовой скаляр или 'fit'. Если установлено значение 100, затем imshow отображает изображение со 100% -ным увеличением (по одному пикселю экрана для каждого пикселя изображения). Если установлено значение 'fit', затем imshow масштабирует все изображение, чтобы поместиться в окне.

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

Если изображение отображается на рисунке с его 'WindowStyle' значение свойства установлено в 'docked', затем imshow отображение изображения при наибольшем увеличении, которое подходит для рисунка.

Примечание: Если вы задаете положение осей, imshow игнорирует любое указанное начальное увеличение и по умолчанию выбирает 'fit' поведение.

Когда вы используете imshow с 'Reduce' параметр, начальное увеличение должно быть 'fit'.

В MATLAB Online™, 'InitialMagnification' установлено в 'fit' и не может быть изменен.

Пример: h = imshow(I,'InitialMagnification','fit');

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

Метод интерполяции, используемый при масштабировании изображения, заданный как разделенная разделенными запятой парами, состоящая из 'Interpolation' и одно из этих значений.

ЗначениеОписание
'nearest'Интерполяция по ближайшему соседу (по умолчанию). Значение пикселя, расположенного в (x, y), является значением пикселя, который находится ближе всего к (x, y) в оригинальном изображении.
'bilinear'Билинейная интерполяция. Значение пикселя, расположенного в (x, y), является взвешенным средним значением окружающих пикселей в оригинальное изображение.

Метод интерполяции применяется к начальному увеличению и при увеличении или изменении масштаба отображаемого изображения.

Родительские оси объекта изображения, заданные как разделенная разделенными запятой парами, состоящая из 'Parent' и Axes объект или UIAxes объект. Используйте 'Parent' аргумент имя-значение для создания пользовательского интерфейса, который дает вам управление Figure и Axes свойства.

Индикатор для субдискретизации изображения, заданный как разделенная разделенными запятой парами, состоящая из 'Reduce' и любой из них true, false, 1, или 0. Этот аргумент действителен только, когда вы используете его с именем файла TIFF. Используйте Reduce аргумент для отображения обзоров очень больших изображений.

Типы данных: logical

Пределы оси X недефектной системы координат, заданные как разделенная разделенными запятой парами, состоящая из 'XData' и двухэлементный вектор. Этот аргумент устанавливает ненужную пространственную систему координат путем определения изображения XData. Значение может иметь более двух элементов, но imshow использует только первый и последний элементы.

Пример: 'XData',[100 200]

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

Пределы оси Y недефектной системы координат, заданные как разделенная разделенными запятой парами, состоящая из 'YData' и двухэлементный вектор. Значение может иметь более двух элементов, но imshow использует только первый и последний элементы.

Пример: 'YData',[100 200]

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

Выходные аргументы

свернуть все

Изображение, созданное imshow, заданный как объект изображения.

Совет

  • Чтобы изменить палитру после создания изображения, используйте colormap команда. Задайте оси, которые содержат изображение в качестве первого входного параметра и палитры, которую вы хотите в качестве второго входного параметра. Для получения примера смотрите Изменение Палитры Отображаемых Изображений.

  • Можно отобразить несколько изображений с различными палитрами на одном рисунке, используя imshow с tiledlayout и nexttile функций.

  • Можно создать ось поверх осей, созданных imshow при помощи hold on команда после вызова imshow.

  • Если у вас есть Image Processing Toolbox™, то вы можете использовать приложение Image Viewer как интегрированное окружение для отображения изображений и выполнения распространенных задач обработки изображений.

  • Если у вас есть Image Processing Toolbox, то можно задать настройки тулбокса, которые изменяют поведение imshow при помощи iptsetpref функция.

  • The imshow функция не поддерживается, когда вы запускаете MATLAB со -nojvm опция.

Расширенные возможности

Представлено до R2006a