Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

viscircles

创建圆

说明

示例

viscircles(centers,radii) 在当前坐标区中绘制具有指定 centersradii 的圆。

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 坐标在第二列。坐标可以是整数(任何数值类型)或浮点值(类型为 doublesingle)。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

圆半径,指定为列向量,如 imfindcircles 返回的向量。radii(j) 处的半径值对应于圆心坐标为 centers(j,:) 的圆。radii 的值可以是非负整数(任何数值类型)或浮点值(类型为 doublesingle)。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

数据类型: double

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN

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

通过对比特征来增强绘制圆以提高可见性,指定为逻辑值 truefalse。如果您将该值设置为 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'

'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'不适用不适用不适用无颜色

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

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 中推出