Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

roipoly

多角形の関心領域 (ROI) の指定

説明

対話形式による多角形の作成

BW = roipoly は、現在の Figure に表示されたイメージに関連付けられた対話型多角形ツールを作成します。roipoly はマスクをバイナリ イメージとして返します。このとき、ROI 内部のピクセルを 1 に、ROI の外側のピクセルを 0 に設定します。

この構文やその他の対話型構文を使用すると、多角形選択ツールは操作が完了するまで MATLAB® コマンド ラインをブロックします。多角形選択ツールの使用方法の詳細については、対話型動作を参照してください。

BW = roipoly(I) は、Figure ウィンドウにグレースケールまたは RGB イメージ I を表示し、イメージに関連付けられた対話型多角形選択ツールを作成します。

頂点の指定による多角形の作成

BW = roipoly(I,xi,yi) は、多角形の頂点の (x, y) 座標を (xi, yi) として指定します。

BW = roipoly(xref,yref,I,xi,yi) は、xrefyref で定義されるワールド座標系で多角形の頂点の座標を指定します。多角形の頂点は、この座標系での (x, y) 座標 xi および yi を持っています。

追加出力オプションの指定

[BW,xi2,yi2] = roipoly(___) は、閉じた多角形の頂点の座標 xi2yi2 も返します。他の任意の構文の入力引数を使用できます。

[xrefout,yrefout,BW,xi2,yi2] = roipoly(___)xrefoutyrefout のイメージ範囲も返します。

出力引数を指定せずに roipoly(___) を呼び出すと、新しい Figure ウィンドウに結果のマスク イメージを表示します。

すべて折りたたむ

イメージをワークスペースに読み取ります。

I = imread('eight.tif');

マスクの多角形の頂点を定義します。

c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];

バイナリ マスク イメージを作成します。

BW = roipoly(I,c,r);

元のイメージと多角形マスクを表示します。

imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

figure
imshow(BW)

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

グレースケールまたは RGB イメージ。それぞれ、m 行 n 列の数値行列または m x n x 3 の数値配列として指定します。

多角形の頂点の x 座標。yi と同じ長さの数値ベクトルとして指定します。xref を使用してワールド座標系のイメージ範囲を指定した場合、xi はこの座標系になります。そうでない場合、xi は既定の座標系になります。

多角形の頂点の y 座標。xi と同じ長さの数値ベクトルとして指定します。yref を使用してワールド座標系のイメージ範囲を指定した場合、yi はこの座標系になります。そうでない場合、yi は既定の座標系になります。

ワールド座標の x 次元に沿ったイメージ範囲。[xmin xmax] 形式の 2 要素数値ベクトルとして指定します。xref の値はイメージ XData を設定します。

ワールド座標の y 次元に沿ったイメージ範囲。[ymin ymax] 形式の 2 要素数値ベクトルとして指定します。yref の値はイメージ YData を設定します。

出力引数

すべて折りたたむ

バイナリ イメージ。m 行 n 列の logical 行列として返されます。

データ型: logical

閉じた多角形の頂点の x 座標。yi2 と同じ長さの数値ベクトルとして返されます。ベクトルの最初と最後の要素は同じです。つまり多角形は閉じています。xref を使用してワールド座標系のイメージ範囲を指定した場合、xi2 はこの座標系になります。そうでない場合、xi2 は既定の座標系になります。

閉じた多角形の頂点の y 座標。xi2 と同じ長さの数値ベクトルとして返されます。ベクトルの最初と最後の要素は同じです。つまり多角形は閉じています。yref を使用してワールド座標系のイメージ範囲を指定した場合、yi2 はこの座標系になります。そうでない場合、yi2 は既定の座標系になります。

ワールド座標の x 次元に沿ったイメージ範囲。[xmin xmax] 形式の 2 要素数値ベクトルとして返されます。xref を使用してワールド座標系のイメージ範囲を指定した場合、xrefoutxref と等しくなります。その他の場合、xrefout は元のイメージ XData と等しくなります。

ワールド座標の y 次元に沿ったイメージ範囲。[ymin ymax] 形式の 2 要素数値ベクトルとして返されます。yref を使用してワールド座標系のイメージ範囲を指定した場合、yrefoutyref と等しくなります。その他の場合、yrefout は元のイメージ YData と等しくなります。

詳細

すべて折りたたむ

対話型動作

多角形選択ツールにより、マウスを使って対話型で多角形の頂点を選択し調整できます。

多角形ツールがアクティブな状態で、Figure 内のイメージ上にポインターを移動すると、ポインターが十字形 に変わります。マウスを使用して、多角形の頂点を選択することによって領域を指定できます。マウスを使用して多角形を移動したり、サイズを変更することができます。多角形の配置とサイズ変更が完了したら、領域内をダブルクリックするか、右クリックしてコンテキスト メニューから [マスクの作成] を選択してマスクを作成します。

図は、複数の頂点によって定義された多角形を示しています。次の表は、多角形ツールの対話型のすべての動作を示しています。

Selected polygon vertices appear as blue points connected by blue line segments.

対話型動作説明
多角形を閉じる(関心領域を完了する)。

次のいずれかの方法を使用してください。

  • 選択した多角形の最初の頂点にポインターを移動します。ポインターが円 に変わります。いずれかのマウス ボタンをクリックします。

  • 左マウス ボタンをダブルクリックします。この操作により、マウス ポインターの下の点に頂点が作られ、この頂点と最初の頂点をつなぐ直線が描画されます。

  • マウスを右クリックします。この操作により、選択された最後の頂点と最初の頂点をつなぐラインが描画されますが、マウスの下の点に新しい頂点は作成されません。

多角形全体の移動ポインターを領域内に移動します。ポインターが花形 に変わります。多角形をクリックしてイメージ上にドラッグします。
多角形の削除

Backspace キー、Escape キーまたは Delete キーを押すか、領域内で右クリックして、コンテキスト メニューから [キャンセル] を選択します。

メモ: ROI を削除すると、関数は空の値を返します。

頂点の移動(関心領域の変形)。ポインターを頂点上に移動します。ポインターが円 に変わります。頂点を新しい位置にクリック アンド ドラッグします。
新しい頂点の追加多角形のエッジにポインターを移動し、A キーを押します。ポインターの形状が に変わります。左マウス ボタンをクリックすると、エッジ上のその点に新しい頂点が作成されます。
頂点の削除(関心領域の変形)。ポインターを頂点上に移動します。ポインターが円 に変わります。右クリックしてコンテキスト メニューから [頂点の削除] を選択します。roipoly は、削除した頂点の近傍点である 2 つの頂点の間に新しい直線を描画します。
多角形の色の変更領域の境界内の任意の場所にポインターを移動し、右マウス ボタンをクリックします。コンテキスト メニューから [色の設定] を選択します。
頂点の座標の取得 ポインターを領域内に移動します。右クリックしてコンテキスト メニューから [位置のコピー] を選択し、クリップ ボードに現在の位置をコピーします。位置は、各頂点の x と y 座標が含まれる n 行 2 列の配列です。ここで、n は、選択された頂点の数です。

ヒント

  • roipoly は常に、閉じた多角形を生成します。閉じた多角形 (座標の最後の組は最初の組と同一) の入力頂点の位置を指定すると、出力座標ベクトルの長さは指定された点の数と同じになります。指定された点が閉じた多角形を表さない場合、roipoly は最初の点と同じ座標をもつ最後の点を追加します。この場合、出力座標のベクトルの長さは指定した点の数より 1 点分長くなります。

  • ROI 境界上のピクセルの分類の詳細については、Classify Pixels That Are Partially Enclosed by ROIを参照してください。

  • roipoly 構文のいずれかの場合、入力イメージ I を任意のイメージの行と列の次元を指定する、2 つの引数 m および n と置き換えることができます。たとえば、次のコマンドは 100 行 200 列のバイナリ マスクを作成します。

    c = [112 112 79 79];
    r = [37 66 66 37];
    BW = roipoly(100,200,c,r);
    

    mnroipoly の対話型形式で指定すると、mn 列の黒いイメージが表示されます。マウスを使用してこのイメージ内の多角形を指定します。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する