ドキュメンテーション

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

regionfill

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

構文

J = regionfill(I,mask)
J = regionfill(I,x,y)

説明

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

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

すべて折りたたむ

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

I = imread('eight.tif');

イメージ内のいずれかのコインを完全に囲む多角形を指定します。この例では、多角形の頂点の x 座標と y 座標 (列と行) を使用して領域を指定します。

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

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

J = regionfill(I,x,y);

元のイメージと塗りつぶされたイメージを並べて表示します。

figure
subplot(1,2,1)
imshow(I)
title('Original image')
subplot(1,2,2)
imshow(J)
title('Image with one less coin')

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

I = imread('eight.tif');

すべてのコインを覆うマスク イメージを作成します。

mask = I < 200;

マスク イメージの穴を塗りつぶします。

mask = imfill(mask,'holes');

マスク イメージのノイズを削除します。

mask = imerode(mask,strel('disk',10));
mask = imdilate(mask,strel('disk',20));

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

J = regionfill(I,mask);

元のイメージの横にマスク イメージと塗りつぶされたイメージを表示します。

figure
subplot(1,3,1)
imshow(I)
title('Original image')
subplot(1,3,2)
imshow(mask)
title('Mask of pixels to fill')
subplot(1,3,3)
imshow(J)
title('Resulting image')

入力引数

すべて折りたたむ

入力グレースケール イメージ。実数で非スパースの2 次元数値配列として指定します。I は 3 行 3 列以上の配列でなければなりません。

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

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

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

データ型: logical

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

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

データ型: double

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

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

データ型: double

出力引数

すべて折りたたむ

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

ヒント

  • regionfill では、roifill がサポートする、関心領域 (ROI) を指定するための対話型構文はサポートされていません。ROI を対話形式で定義するには、roipolyregionfill を使用します。

アルゴリズム

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

R2015a で導入

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