Main Content

viscircles

创建圆

说明

viscircles(centers,radii) 在当前坐标区中绘制具有指定 centersradii 的圆。您可以使用 imfindcircles 函数来查找图像中圆的圆心和半径。

示例

viscircles(ax,centers,radii)ax 指定的坐标区中绘制圆。

viscircles(___,Name=Value) 使用名称-值参量来指定圆的其他属性。

h = viscircles(___) 返回所绘制的圆的句柄 h

示例

全部折叠

将图像读入工作区中并显示它。

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

Figure contains an axes object. The hidden axes object 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 object. The hidden axes object contains 3 objects of type line, image.

在暗圆的边缘周围绘制红色虚线。

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

Figure contains an axes object. The hidden axes object 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 object. The axes object with title k = 5 contains 2 objects of type line.

输入参数

全部折叠

圆心坐标,指定为两列数值矩阵。圆心的 x 坐标在第一列,y 坐标在第二列。

圆半径,指定为正数或由正数组成的列向量,长度与 centers 相同。当 radii 是一个正数时,viscircles 以相同半径绘制所有圆。当 radii 是一个列向量时,viscircles 按圆心 centers(j,:) 及其对应的半径 radii(j) 绘制每个圆。

要在其中绘制圆的坐标区,指定为由 gcaaxes 返回的 Axes 对象。

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量后,但对各个参量对组的顺序没有要求。

示例: viscircles(centers,radii,Color="b") 使用蓝色的短颜色名称指定蓝色圆边。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: viscircles(centers,radii,"Color","b") 使用蓝色的短颜色名称指定蓝色圆边。

通过对比特征来增强绘制圆以提高可见性,指定为数值或逻辑 1 (true) 或 0 (false)。如果您将该值设置为 true,则 viscircles 会在彩色圆下方绘制一个对比圆。

数据类型: logical

边界的颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短颜色名称。

对于自定义颜色,指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符串标量或字符向量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围在 0F 之间。这些值不区分大小写。因此,颜色代码 "#FF8800""#ff8800""#F80""#f80" 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了一些命名颜色选项、其等效 RGB 三元组及十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"不适用不适用不适用无颜色

以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

示例: viscircles(centers,radii,Color="r");

示例: viscircles(centers,radii,Color="green");

示例: viscircles(centers,radii,Color=[0 0 1]);

示例: viscircles(centers,radii,Color="#FF8800");

圆边的线型,指定为下表中的任一线条设定符。

线型描述表示的线条
"-"实线

Sample of solid line

"--"虚线

Sample of dashed line

":"点线

Sample of dotted line

"-."点划线

Sample of dash-dotted line, with alternating dashes and dots

"none"无线条无线条

圆边的宽度,指定为正数。线宽用磅来表示,每磅等于 1/72 英寸。

数据类型: double

输出参量

全部折叠

绘制的圆,以 hggroup 对象形式返回。如果指定,则 h 是坐标区 ax 的子坐标区,否则 h 是当前坐标区的子坐标区。

版本历史记录

在 R2012a 中推出

全部展开