メインコンテンツ

visboundaries

領域境界のプロット

説明

visboundaries(BW) は現在の座標軸にバイナリ イメージ BW の領域の境界を描画します。BW は、logical true のピクセルが前景領域に属し、logical false のピクセルが背景を構成する 2 次元バイナリ イメージです。visboundariesbwboundaries を使用してイメージ内の境界ピクセルの位置を特定します。

visboundaries(B)B で指定される領域境界を描画します。ここで、B は領域の境界ピクセルの位置を格納する cell 配列であり、bwboundaries の最初の出力に構造が類似しています。

visboundaries(ax,___) は、ax によって指定された座標軸に領域の境界を描画します。最初の入力引数 ax に続けて、前述の構文における入力引数の任意の組み合わせを指定します。

visboundaries(___,Name,Value) は、名前と値の引数を使用して境界の追加プロパティを指定します。

h = visboundaries(___) は、境界のハンドル h を返します。

すべて折りたたむ

イメージを読み取ります。

BW = imread('blobs.png');

境界を計算します。

B = bwboundaries(BW);

イメージを表示し、境界をイメージにプロットします。

imshow(BW)
hold on
visboundaries(B)

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

イメージを読み取り、それを表示します。

I = imread('toyobjects.png');
imshow(I)
hold on

動的輪郭 (Snakes) アルゴリズムを使用してイメージをセグメント化します。最初に、セグメント化するオブジェクトの近くに初期輪郭位置を指定します。

mask = false(size(I));
mask(50:150,40:170) = true;

元のイメージ上に初期の輪郭を青で表示します。

visboundaries(mask,'Color','b');

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

'edge' メソッドと 200 回の反復を使用してイメージをセグメント化します。

bw = activecontour(I,mask,200,'edge');

最終的な輪郭を元のイメージ上に赤で表示します。

visboundaries(bw,'Color','r');
title('Blue - Initial Contour, Red - Final Contour');

Figure contains an axes object. The hidden axes object with title Blue - Initial Contour, Red - Final Contour contains 5 objects of type line, image.

入力引数

すべて折りたたむ

バイナリ イメージ。logical 配列として指定します。

データ型: logical

境界ピクセルの位置。cell 配列として指定します。各セルには、Q 行 2 列の行列が含まれています。ここで Q は対応する領域の境界ピクセルの数です。これらの Q 行 2 列の配列の各行には、境界ピクセルの行座標と列座標が含まれています。

データ型: cell

境界を描画するイメージ。axes オブジェクトとして指定します。

データ型: double

名前と値の引数

すべて折りたたむ

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

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

例: visboundaries(bw,'Color','b');

境界の色。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 進数カラー コードを取得します。

例: 'Color','r'

例: 'Color','green'

例: 'Color',[0 0 1]

例: 'Color','#FF8800'

境界のエッジのライン スタイル。'LineStyle' と次の表で示すライン指定子のいずれかで構成されるコンマ区切りのペアとして指定します。

ライン スタイル説明結果として得られるライン
"-"実線

Sample of solid line

"--"破線

Sample of dashed line

":"点線

Sample of dotted line

"-."一点鎖線

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

"none"ラインなしラインなし

例: 'LineStyle','-.'

境界に使用するライン幅。正の数値として指定します。この値はポイント単位で指定します。1 ポイントは 1/72 インチです。

例: 'LineWidth',4

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

描画された境界を高コントラストの特徴を使用して強調し、さまざまな背景での視認性を改善します。数値または logical の 1 (true) または 0 (false) として指定します。

例: 'EnhanceVisibility',true

データ型: logical

出力引数

すべて折りたたむ

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

バージョン履歴

R2015a で導入