Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

visboundaries

領域境界のプロット

説明

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

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

visboundaries(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. The axes 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. The axes 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. The axes 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

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: 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'

'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 3 成分と 16 進数カラー コードを示します。

RGB 3 成分16 進数カラー コード外観
[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'

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

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

例: visboundaries(bw,'Color',[0 0 1]);

例: visboundaries(bw,'Color','#FF8800');

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

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

'--'破線

':'点線

'-.'一点鎖線

'none'ラインなしラインなし

例: visboundaries(bw,'LineStyle','-.');

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

例: visboundaries(bw,'LineWidth',4);

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

対照的な特徴を使用して、描画された境界を強調し、さまざまな背景での視認性を改善します。true または false の論理フラグとして指定します。

例: visboundaries(bw,'EnhanceVisibility',true);

データ型: logical

出力引数

すべて折りたたむ

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

R2015a で導入