ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

roipoly

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

構文

BW = roipoly
BW = roipoly(I)
BW = roipoly(I, c, r)
BW = roipoly(x, y, I, xi, yi)
[BW, xi, yi] = roipoly(...)
[x, y, BW, xi, yi] = roipoly(...)

説明

roipoly を使用して多角形の関心領域 (ROI) を指定します。roipoly は、マスクされたフィルター処理用マスクとして使用できるバイナリ イメージを返します。

BW = roipoly は、ターゲット イメージと呼ばれる、現在の Figure に表示されるイメージに関連付けられた対話型多角形ツールを作成します。多角形ツールがアクティブな状態で、Figure 内のイメージ上にポインターを移動すると、ポインターが十字形 に変わります。マウスを使用して、多角形の頂点を選択することによって領域を指定できます。マウスを使用して多角形を移動したり、サイズを変更することができます。次の図は、複数の頂点によって定義された多角形を示しています。次の表は、多角形ツールの対話型のすべての動作を示しています。

多角形の配置とサイズ変更が完了したら、領域内をダブルクリックするか、右クリックしてコンテキスト メニューから [Create mask] を選択してマスクを作成します。roipoly は、I と同じサイズのバイナリ イメージ BW としてマスクを返します。マスク イメージで、roipoly は、領域内のピクセルを 1 に設定し、領域外のピクセルを 0 に設定します。

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

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

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

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

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

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

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

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

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

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

BW = roipoly(I) は、イメージ I を表示し、イメージに関連付けられた対話型多角形ツールを作成します。

BW = roipoly(I, c, r) は、ベクトル cr によって表される多角形によって指定された ROI を返します。これらのベクトルは各頂点の列と行のインデックスをそれぞれ指定します。c および r は同じサイズでなければなりません。

BW = roipoly(x, y, I, xi, yi) は、xy を使用して、既定の設定以外の空間座標系を確立します。xi および yi は、この座標系の場所として多角形の頂点を指定する同じ長さのベクトルです。

[BW, xi, yi] = roipoly(...) は、xiyi の多角形の頂点の xy 行の座標を返します。

    メモ:   roipoly は常に、閉じた多角形を生成します。指定された点は、閉じた多角形 (座標の最後の組は最初の組と同一) を表し、xiyi の長さは指定された点の数と同じになります。指定された点が閉じた多角形を表さない場合、roipoly は最初の点と同じ座標をもつ最後の点を追加します (この場合、xiyi の長さは指定した点の数より 1 点分長くなります)。

[x, y, BW, xi, yi] = roipoly(...) は、xyXData および YDataBW 内のマスク イメージ、xiyi の多角形座標を返します。

クラス サポート

入力イメージ I のクラスは、uint8uint16int16single または double です。出力イメージ BWlogical クラスです。その他すべての入力と出力のクラスは double です。

roipoly を使用して、入力イメージ I と同じサイズのマスク イメージ BW を作成します。roifilt2 の例では、この例を継続して、イメージ内の指定された領域をフィルター処理します。roipoly の使用例、特に対話型構文については、もう 1 つの例 「イメージの関心領域の塗りつぶし」を参照してください。

I = imread('eight.tif');
c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];
BW = roipoly(I,c,r);
figure, imshow(I)
figure, imshow(BW)

ヒント

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

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

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

R2006a より前に導入

この情報は役に立ちましたか?