exponenta event banner

viscircles

Описание

пример

viscircles(centers,radii) рисует круги с указанными centers и radii на текущие оси.

viscircles(ax,centers,radii) рисует окружности на осях, указанных ax.

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

h = viscircles(___) возвращает дескриптор, h, к нарисованным кругам.

Примеры

свернуть все

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

A = imread('circlesBrightDark.png');
imshow(A)

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

Определите диапазон радиуса.

Rmin = 30;
Rmax = 65;

Найдите все яркие круги на изображении в радиусе.

[centersBright, radiiBright] = imfindcircles(A,[Rmin Rmax],'ObjectPolarity','bright');

Найдите все темные круги на изображении в радиусе.

[centersDark, radiiDark] = imfindcircles(A,[Rmin Rmax],'ObjectPolarity','dark');

Нарисуйте синие линии вокруг краев ярких кругов.

viscircles(centersBright, radiiBright,'Color','b');

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

Нарисуйте красные пунктирные линии по краям темных кругов.

viscircles(centersDark, radiiDark,'LineStyle','--');

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

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

figure
colors = {'b','r','g','y','k'}; 
 
for k = 1:5
    % Create 5 random circles to display,
    X = rand(5,1);
    Y = rand(5,1);
    centers = [X Y];
    radii = 0.1*rand(5,1);
 
    % Clear the axes.
    cla
 
    % Fix the axis limits.
    xlim([-0.1 1.1])
    ylim([-0.1 1.1])
 
    % Set the axis aspect ratio to 1:1.
    axis square
 
    % Set a title.
    title(['k = ' num2str(k)])
 
    % Display the circles.
    viscircles(centers,radii,'Color',colors{k});
              
    % Pause for 1 second.
    pause(1)
end

Figure contains an axes. The axes with title k = 5 contains 2 objects of type line.

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

свернуть все

Координаты центров окружности, указанные как Pоколо-2 матрица, такая как полученная из imfindcircles. Координаты X центров окружности находятся в первом столбце, а координаты Y - во втором столбце. Координаты могут быть целыми числами (любого числового типа) или значениями с плавающей запятой (типа double или single).

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

Радиус окружности, заданный как вектор столбца, например, возвращаемый imfindcircles. Значение радиуса при radii(j) соответствует окружности с координатами центра centers(j,:). Значения radii могут быть неотрицательными целыми числами (любого числового типа) или значениями с плавающей запятой (типа double или single).

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

Оси для построения кругов, заданные как объект-маркер, возвращаемый gca или axes.

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

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

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

Пример: viscircles(centers,radii,'Color','b') определяет края синего круга, используя короткое имя цвета для синего.

Дополнять нарисованные круги контрастными элементами для улучшения видимости, задаваемой как логическое значение true или false. Если задано значение true, то viscircles рисует контрастный круг под цветным кругом.

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

Цвет границы, определяемый как триплет 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'

Пример: viscircles(centers,radii,'Color','r');

Пример: viscircles(centers,radii,'Color','green');

Пример: viscircles(centers,radii,'Color',[0 0 1]);

Пример: viscircles(centers,radii,'Color','#FF8800');

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

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

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

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

'-.'Пунктирная линия

'none'Без строкиБез строки

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

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

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

свернуть все

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

Представлен в R2012a