Main Content

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

roifill

(非推奨) グレースケール イメージで指定された関心領域 (ROI) 多角形を塗りつぶす

roifill は推奨されません。代わりに regionfill を使用してください。regionfill で多角形を対話形式で定義する場合は、regionfillroipoly または drawpolygon と共に使用してから、createMask を使用します。

説明

グレースケール イメージで指定された関心領域 (ROI) の多角形を塗りつぶすには、関数 roifill を使用します。roifill は、ラプラス方程式を解くことで、多角形の境界上のピクセル値から内側に向かって滑らかに内挿します。境界ピクセルは変更されません。roifill を使用すると、イメージのオブジェクトの消去などを行うことができます。

J = roifill は、現在の Figure に表示されたイメージに関連付けられた対話型多角形選択ツールを作成します。この構文やその他の対話型構文を使用すると、多角形選択ツールは操作が完了するまで MATLAB® コマンド ラインをブロックします。roifill は選択された多角形を塗りつぶし、塗りつぶされたイメージ J を返します。

多角形選択ツールを使用して ROI を定義し、塗りつぶす方法の詳細については、対話型動作を参照してください。

J = roifill(I) は、Figure ウィンドウにイメージ I を表示し、イメージに関連付けられた対話型多角形ツールを作成します。

J = roifill(I,mask) は、マスク内の非ゼロ ピクセルに対応する、I 内の領域を塗りつぶします。複数の領域が存在する場合、roifill は各領域で個別に内挿を行います。

J = roifill(I,xi,yi) は、既定の空間座標系の X-Y 座標 xi および yi で定義される頂点を持つ多角形を塗りつぶします。

J = roifill(x,y,I,xi,yi) は、ベクトル x および y を使用して既定ではない空間座標系を定義します。多角形の頂点は、この座標系での座標 xi および yi を持っています。

[J,BW] = roifill(___) は、I の内挿された領域に対応するピクセルが 1 で、それ以外が 0 のバイナリ イメージ BW を返します。

また、[x2,y2,J,BW,xi2,yi2] = roifill(___) は、イメージ XDataYDatax2y2 に、多角形座標を xi2yi2 に返します。

出力引数を指定せずに roifill(___) を呼び出すと、塗りつぶされたイメージが新しい Figure ウィンドウに表示されます。

すべて折りたたむ

グレースケール イメージを読み取り、それを表示します。

I = imread('eight.tif');
imshow(I)

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

イメージ内のいずれかのコインを完全に囲む多角形の x 座標と y 座標を指定します。

x = [222 272 300 270 221 194];
y = [21 21 75 121 121 75];

関数 regionfill を使用して多角形を塗りつぶします。

J = regionfill(I,x,y);

塗りつぶしたイメージを表示します。

imshow(J)
title('Filled Image with One Fewer Coin')

Figure contains an axes object. The axes object with title Filled Image with One Fewer Coin contains an object of type image.

入力引数

すべて折りたたむ

グレースケール イメージ。数値行列として指定します。

データ型: single | double | int16 | uint8 | uint16

マスク。入力イメージ I と同じサイズの数値行列または logical 行列として指定します。

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

多角形の頂点の x または y 座標。同じ長さの数値ベクトルとして指定します。x および y 引数を使用して、既定ではない座標系を指定した場合、xiyi はこの座標系の座標を指定します。それ以外の場合、xiyi は既定の座標系の座標を指定します。

ワールド X-Y 座標のイメージ範囲。[min max] 形式の 2 要素数値ベクトルとして指定します。x の 2 つの要素は、イメージ I の最初と最後の列の x 座標 (水平) を与えます。y の 2 つの要素は、I の最初と最後の行の y 座標 (垂直) を与えます。

出力引数

すべて折りたたむ

塗りつぶされたイメージ。数値行列として返されます。

データ型: single | double | int16 | uint8 | uint16

バイナリ イメージ。入力イメージ I と同じサイズの logical 行列として返されます。

データ型: logical

多角形の頂点の x または y 座標。数値ベクトルとして指定します。mask 引数を使用して多角形 ROI を指定する場合、xiyi は空です。

ワールド X-Y 座標のイメージ範囲。[min max] 形式の 2 要素数値ベクトルとして返されます。イメージ範囲の xy を指定すると、x2y2 はこれらの値と等しくなります。その他の場合、x2y2 は元のイメージ XDataYData と等しくなります。

詳細

すべて折りたたむ

対話型動作

対話型構文を使用して roifill を呼び出すと、多角形選択ツールが開き、マウスを使って対話型で多角形の頂点を選択し調整できます。

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

図は、複数の頂点によって定義された多角形を示しています。

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

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

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

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

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

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

多角形の削除

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

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

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

バージョン履歴

R2006a より前に導入