Main Content

イメージの関心領域の塗りつぶし

この例では、regionfill を使用してイメージ内の関心領域 (ROI) を塗りつぶす方法を説明します。この例では関数 roipoly を使用して、マウスによる対話形式で関心領域を定義します。regionfill は多角形の境界上のピクセル値から領域へと内側に向かって滑らかに内挿します。この関数は、不要な細部やアーティファクトの削除などのイメージ編集に使用できます。塗りつぶし処理では領域内の値が背景に溶け込む値に置き換えられます。

テーブル上の 4 枚のコインのイメージを読み取って表示します。

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

塗りつぶす ROI を指定するためのマスク イメージを作成します。関数 roipoly を使用して領域を対話形式で指定します。roipoly を呼び出し、ポインターをイメージ上に移動します。ポインターの形が十字 に変わります。マウスのクリックによって多角形の頂点を指定して ROI を定義します。ROI のサイズと位置はマウスで変更可能です。

mask = roipoly(I);

Blue polygon ROI with several vertices that enclose one coin.

ダブルクリックで領域の定義を終了します。roipoly1 の値をもつピクセルで塗りつぶされた領域のバイナリ イメージを作成します。

マスク イメージを表示します。

figure
imshow(mask)

Binary mask image that is white inside the ROI defined by the polygon and black outside the ROI.

塗りつぶすイメージとマスク イメージを入力として指定して regionfill を使用し、領域を塗りつぶします。結果を表示します。イメージ内のコインが 1 つ少なくなっています。

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

Three coins remain in the image. The area within the ROI is approximately the same color and texture as the background.

参考

| | |