exponenta event banner

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.

Примеры

свернуть все

Отображение оттенков серого, 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.

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

свернуть все

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

Типы данных: 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. imshow отображает изображение, но не сохраняет данные изображения в рабочей области MATLAB ®. Если файл содержит несколько изображений ,imshow отображает первое изображение в файле.

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

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

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

Пример: [50 250]

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

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

Укажите дополнительные пары, разделенные запятыми 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]. 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.

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

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

  • imshow не поддерживается при запуске MATLAB с помощью -nojvm вариант.

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

См. также

| | | | | (Панель инструментов обработки изображений)

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