Создайте круг
viscircles(___,
использует аргументы пары "имя-значение", чтобы задать дополнительные свойства кругов.Name,Value
)
возвращает указатель, h
= viscircles(___)h
, к нарисованным кругам.
Прочтите изображение в рабочую область и отобразите его.
A = imread('circlesBrightDark.png');
imshow(A)
Задайте область значений радиуса.
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');
Нарисуйте красные штриховые линии по краям темных кругов.
viscircles(centersDark, radiiDark,'LineStyle','--');
The 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
centers
- Координаты центров окружностейКоординаты центров окружностей, заданные как P
-by- 2
матрица, такая как полученная из imfindcircles
. x -координаты центров окружностей находятся в первом столбце, а y -координаты - во втором столбце. Координаты могут быть целыми числами (любого числового типа) или значениями с плавающей точкой (типа double
или single
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
radii
- Радиусы окружностейРадиусы окружности, заданные как вектор-столбец, такое как возвращаемое imfindcircles
. Значение радиуса в radii(j)
соответствует кругу с центральными координатами centers(j,:)
. Значения radii
могут быть неотрицательными целыми числами (любого числового типа) или значениями с плавающей точкой (типа double
или single
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
viscircles(centers,radii,'Color','b')
задает ребра синего круга, используя короткое название цвета для синего.'EnhanceVisibility'
- Увеличение нарисованных кругов с контрастными функциями для улучшения видимостиtrue
(по умолчанию) | false
Увеличение нарисованных кругов с контрастными функциями для улучшения видимости, заданное как логическое значение true
или false
. Если вы задаете значение true
, затем viscircles
рисует контрастный круг ниже цветного круга.
Типы данных: logical
'Color'
- Цвет контура'red'
(по умолчанию) | триплет RGB | шестнадцатеричный код цвета | название цвета | короткое название цветаЦвет контура, заданный как триплет 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'
Стиль линии ребра окружности, заданный как разделенная разделенными запятой парами, состоящая из 'LineStyle'
и любой спецификатор линий в таблице ниже.
Стиль линии | Описание | Результирующая линия |
---|---|---|
'-' | Сплошная линия |
|
'--' | Штриховая линия |
|
':' | Пунктирная линия |
|
'-.' | Штрих-пунктирная линия |
|
'none' | Нет линии | Нет линии |
'LineWidth'
- Ширина ребра круга2
(по умолчанию) | положительное числоШирина ребра круга, задается положительное число. Ширина линии выражается в точках, где каждая точка равна 1/72 дюйма.
Типы данных: double
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.