visboundaries

Постройте контуры областей

Описание

пример

visboundaries(BW) рисует контуры областей в бинарном изображении BW на текущей системе координат. BW является 2-D бинарным изображением, где пиксели являются логическими true относятся к области переднего плана и пикселям, которые являются логическими false образуют фон. visboundaries использование bwboundaries для поиска местоположения граничного пикселя на изображении.

visboundaries(B) рисует контуры областей, заданные B, где B - массив ячеек, содержащий координатные пиксельные положения областей, подобный по структуре первому выходу из bwboundaries.

visboundaries(ax,___) рисует контуры областей по осям, заданным ax.

пример

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

h = visboundaries(___) возвращает указатель h, для контуров.

Примеры

свернуть все

Чтение изображения.

BW = imread('blobs.png');

Вычислите контуры.

B = bwboundaries(BW);

Отобразите изображение и постройте контуры изображения.

imshow(BW)
hold on
visboundaries(B)

Figure contains an axes. The axes contains 3 objects of type line, image.

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

I = imread('toyobjects.png');
imshow(I)
hold on

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

mask = false(size(I));
mask(50:150,40:170) = true;

Отображение начального контура на оригинальное изображение синего цвета.

visboundaries(mask,'Color','b');

Figure contains an axes. The axes contains 3 objects of type line, image.

Сегментируйте изображение с помощью 'edge' метод с использованием 200 итераций.

bw = activecontour(I,mask,200,'edge');

Отображение последнего контура на оригинальное изображение красным цветом.

visboundaries(bw,'Color','r');
title('Blue - Initial Contour, Red - Final Contour');

Figure contains an axes. The axes with title Blue - Initial Contour, Red - Final Contour contains 5 objects of type line, image.

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

свернуть все

Бинарное изображение, заданное как логический массив.

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

Местоположения краевых пикселей, заданные как массив ячеек. Каждая камера содержит матрицу Q -by-2, где Q - количество краевых пикселей для соответствующей области. Каждая строка этих Q -by-2 матриц содержит координаты строки и столбца пограничного пикселя.

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

Изображение, на котором можно нарисовать контуры, заданное как объект осей.

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

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

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

Пример: visboundaries(bw,'Color','b');

Цвет контура, заданный как триплет RGB, шестнадцатеричный код цвета, название цвета или короткое название цвета.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использует на многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: visboundaries(bw,'Color','r');

Пример: visboundaries(bw,'Color','green');

Пример: visboundaries(bw,'Color',[0 0 1]);

Пример: visboundaries(bw,'Color','#FF8800');

Стиль линии граничного ребра, заданный как разделенная разделенными запятой парами, состоящая из 'LineStyle' и любой спецификатор линий в таблице ниже.

Стиль линииОписаниеРезультирующая линия
'-'Сплошная линия

'--'Штриховая линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Нет линииНет линии

Пример: visboundaries(bw,'LineStyle','-.');

Ширина линии, используемой для контура, задается в виде положительного числа. Задайте это значение в точках, где одна точка = 1/72 дюйма.

Пример: visboundaries(bw,'LineWidth',4);

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

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

Пример: visboundaries(bw,'EnhanceVisibility',true);

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

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

свернуть все

Граничная линия, возвращенная как hggroup объект. h является дочерним элементом осей ax если задано, в противном случае h является дочерним элементом текущей системы координат.

Введенный в R2015a