Main Content

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

regionfill

内側方向の内挿を使用したイメージ内の指定領域の塗りつぶし

説明

J = regionfill(I,mask) は、mask で指定されたイメージ I の領域を塗りつぶします。mask の非ゼロ ピクセルは塗りつぶすイメージ I のピクセルを指定します。regionfill を使用すると、イメージ内のオブジェクトを削除したり、近傍を使用して無効なピクセル値を置き換えることができます。

J = regionfill(I,x,y) は、xy で指定された頂点をもつ多角形に対応するイメージ I の領域を塗りつぶします。

すべて折りたたむ

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

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

イメージ内のいずれかのコインを完全に囲む多角形の 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')

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

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

関数 drawpolygon を使用して、2 つのコインを完全に囲む多角形 ROI の頂点を指定します。名前と値のペアの引数 'Position' に、多角形の頂点の x 座標と y 座標を指定します。多角形を対話的に描画する場合は、名前と値のペアの引数 'Position' を省略します。

x = [68 296 296 113 68];
y = [12 12 120 120 66];
roi = drawpolygon(gca,'Position',[x;y]');

ROI が true で背景が false のマスク イメージを作成します。マスクを表示します。

mask = createMask(roi);
imshow(mask)

マスク イメージを使用して、入力イメージの領域を塗りつぶします。塗りつぶしたイメージを表示します。

J = regionfill(I,mask);
imshow(J)

入力引数

すべて折りたたむ

グレースケール イメージ。サイズが 3 行 3 列以上の 2 次元数値行列として指定します。

例: I = imread('eight.tif');

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

マスクのバイナリ イメージ。I と同じサイズの logical 配列として指定します。

データ型: logical

多角形の頂点の X 座標。数値ベクトルとして指定します。x の長さは y と同じ長さでなければなりません。

例: x = [222 272 300 270 221 194];

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

多角形の頂点の Y 座標。数値ベクトルとして指定します。x の長さは y と同じ長さでなければなりません。

例: y = [21 21 75 121 121 75];

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

出力引数

すべて折りたたむ

塗りつぶされたグレースケール イメージ。2 次元数値配列として返されます。J のサイズとクラスは I と同じになります。

ヒント

アルゴリズム

regionfill は、領域の外側の境界にあるピクセル値から内側に向かって滑らかに内挿します。regionfill は、領域の離散ラプラシアンを計算し、ディリクレの境界値問題を解きます。

R2015a で導入