メインコンテンツ

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 を作成し、次に、各反復で一連の円を描画して、毎回座標軸をクリアするループ処理を行います。

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.

入力引数

すべて折りたたむ

円の中心の座標。2 列の数値行列として指定します。円の中心の x 座標は最初の列にあり、y 座標は 2 列目にあります。

円の半径。正の数値、または centers と同じ長さの正の数値の列ベクトルとして指定します。radii が正の数値の場合、viscircles はすべての円を同じ半径で描画します。radii が列ベクトルの場合、viscircles は各円 centers(j,:) を対応する半径 radii(j) で描画します。

円の描画対象とする座標軸は、gca または axes によって返される Axes オブジェクトとして指定します。

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: viscircles(centers,radii,Color="b") は、blue の色の省略名を使用して、青い円のエッジを指定します。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: viscircles(centers,radii,"Color","b") は、blue の色の省略名を使用して、青い円のエッジを指定します。

描画された円を高コントラストの特徴を使用して強調し、視認性を改善します。数値または logical の 1 (true) または 0 (false) として指定します。値を true に設定すると、viscircles は色付きの円の下に高コントラストの色の円を描画します。

データ型: logical

境界の色。RGB 3 成分、16 進数カラー コード、色の名前、または色の省略名として指定します。

カスタム色の場合、RGB 3 成分または 16 進数カラー コードを指定します。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度は範囲 [0,1] に含まれていなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、その後に 16 進数 (0 から F までの範囲) が 3 桁または 6 桁続く、string スカラーまたは文字ベクトルです。値の大文字と小文字は区別されません。そのため、カラー コード "#FF8800""#ff8800""#F80"、および "#f80" は等価です。

あるいは、一部の一般的な色を名前で指定できます。次の表に、名前付きの色のオプション、等価な RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
"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"該当なし該当なし該当なし色なし

次の表に、ライト テーマとダーク テーマにおけるプロットの既定のカラー パレットを示します。

パレットパレット カラー

"gem" — ライト テーマの既定

R2025a より前: ほとんどのプロットでは既定でこれらの色が使用されます。

Sample of the "gem" color palette

"glow" — ダーク テーマの既定

Sample of the "glow" color palette

orderedcolors 関数と rgb2hex 関数を使用して、これらのパレットの RGB 3 成分と 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、それを 16 進数カラー コードに変換します。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して RGB 3 成分を取得します。

R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して 16 進数カラー コードを取得します。

例: 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 ポイントは 1/72 インチです。

データ型: double

出力引数

すべて折りたたむ

描画された円。hggroup オブジェクトとして返されます。座標軸 ax が指定されている場合、h はその座標軸の子です。それ以外の場合、h は現在の座標軸の子です。

バージョン履歴

R2012a で導入

すべて展開する