メインコンテンツ

regionfill

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

説明

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

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

すべて折りたたむ

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

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

Figure contains an axes object. The hidden 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 hidden axes object with title Filled Image with One Fewer Coin contains an object of type image.

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

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

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

関数 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]');

Figure contains an axes object. The hidden axes object contains 2 objects of type image, images.roi.polygon.

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

mask = createMask(roi);
imshow(mask)

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

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

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

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

入力引数

すべて折りたたむ

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

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

マスク イメージ。I と同じサイズの logical 行列または数値行列として指定します。数値入力の場合、非ゼロのピクセルは 1 (true) であると見なされます。

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

多角形の頂点の x 座標。数値ベクトルとして指定します。xy と同じ長さとする必要があります。

例: [222 272 300 270 221 194];

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

多角形の頂点の y 座標。数値ベクトルとして指定します。yx と同じ長さとする必要があります。

例: [21 21 75 121 121 75];

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

出力引数

すべて折りたたむ

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

ヒント

アルゴリズム

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

拡張機能

すべて展開する

バージョン履歴

R2015a で導入

すべて展開する