Main Content

バイナリ マスクとしての ROI の指定

バイナリ マスクはイメージの関心領域 (ROI) を定義します。マスク ピクセル値 1 は、そのイメージ ピクセルが ROI に属することを示します。マスク ピクセル値 0 は、そのイメージ ピクセルが背景の一部であることを示します。

用途によって、ROI はピクセルの連続するグループで構成される場合と、不連続なグループで構成される場合があります。連続領域は、連結ピクセルの単一のグループです。連続 ROI は、路上のイメージ内の 1 台の車、医用画像内の体内組織など、イメージ内の単一のオブジェクトを表している可能性があります。不連続 ROI は、たとえば、航空写真内の水面に該当するすべてのピクセルや、医用画像内の腫瘍状のすべての細胞を表している可能性があります。

Image Processing Toolbox™ は、バイナリ マスクを作成するための多数のオプションをサポートしています。以下に、網羅的ではありませんが、よく使用される方法をいくつか抜粋します。

しきい値処理を使用したマスクの作成

イメージからマスクを作成する方法としてよく使われるのは、各ピクセルを、そのピクセルの強度値に基づいて分類する方法です。たとえば、関心領域内のピクセルは背景よりも明るく見えたり、背景とは異なる色が付いていたりする場合があります。さまざまな関数やアプリによって、グレースケール イメージ、インデックス付きイメージ、カラー イメージにしきい値処理を適用できます。

操作説明サンプル出力 (入力イメージ、バイナリ マスク、マスクされた ROI)
単一のしきい値

ROI は、強度が指定されたしきい値を上回る (または、下回る) グレースケール ピクセルで構成されます。数学的な演算、または imbinarize などの関数を使用して ROI を表すバイナリ マスクを作成できます。

例については、不均一な照度の補正と前景オブジェクトの解析を参照してください。

Grayscale image of a flower and binary mask using the imbinarize function. Bright pixels such as the flower petals belong to the ROI.

強度値またはインデックス値の範囲ROI は、強度の値が一定の範囲内にあるグレースケール ピクセルで構成されます。数学的な演算または関数 roicolor を使用して ROI を表すバイナリ マスクを作成できます。この関数はインデックス付きイメージもサポートします。インデックス付きイメージのマスクは、カラーマップ内の色に対応する特定のインデックス値でピクセルを指定します。

Grayscale image of a flower and binary mask using the roicolor function. Pixels with midrange intensity values, such as the leaves, belong to the ROI.

カラー値の範囲ROI は、カラー イメージ内のピクセルで構成されます。このカラー イメージのカラー チャネルの値は一定の範囲内にあります。色のしきい値アプリを使用して RGB イメージからバイナリ マスクを作成できます。このアプリでは、さまざまな色空間に基づいて 3 つのカラー チャネルの値の範囲を対話的に選択できます。

Color Thresholder app with interactive controls for selecting ranges of color values in the RGB color space using sliders and a 3-D color cloud.

グレースケールでの塗りつぶし

ROI は、強度値が類似している連結ピクセルで構成されます。シード ポイントと許容誤差を指定します。関数 grayconnected または イメージの領域分割アプリを使用してグレースケール イメージの塗りつぶし操作を実行します。イメージの領域分割アプリを使用してカラー イメージに塗りつぶし操作を実行します。

Flood fill mask showing all pixels connected to a seed pixel in the center of a bright petal.

カラーでの塗りつぶし

ROI は、カラー値が類似している連結ピクセルで構成されます。シード ポイントと許容誤差を指定します。イメージの領域分割アプリを使用してカラー イメージに塗りつぶし操作を実行します。

Image Segmenter app showing a preview of the flood fill region over the original image, with interactive controls for the seed point and tolerance.

位置に基づくマスクの作成

イメージ内のピクセルの位置に基づいて ROI を指定できます。たとえば、自分で描画した ROI 形状の内側のピクセルで構成される ROI や、位置を配列のインデックスで指定する四角形パッチの内側のピクセルで構成される ROI を定義できます。

操作説明サンプル出力 (入力イメージ、バイナリ マスク、マスクされた ROI)
ROI オブジェクトを使用して幾何学的またはフリーハンドの形状を作成する

ROI は、幾何学的形状または手書きの形状の内側に位置するすべてのピクセルで構成されます。まず、ROI オブジェクトを作成し、その後、関数 createMask を使用してバイナリ マスクを作成します。形状は対話的に描画できます。形状は、多角形の頂点、フリーハンドのウェイポイント、円の半径や中心など、既知の位置制約からプログラムで作成することもできます。詳細については、ROI の形状の作成を参照してください。

例については、ROI 関数を使用したバイナリ マスクの作成を参照してください。

Binary mask created using an AssistedFreehand object following the boundaries of an ROI

多角形ツールを使用して多角形の形状を作成する

ROI は、多角形の形状の内側にあるすべてのピクセルで構成されます。形状は、多角形ツールで関数 roipoly を使用して対話的に描画できます。この関数は、バイナリ マスクを直接返します。

Binary mask created by drawing a polygon around the ROI

多角形座標からマスクを作成する

ROI は、多角形の内側に位置するすべてのピクセルで構成されます。関数 roipoly を使用して多角形の頂点を指定することによって、または関数 poly2mask を使用して頂点とマスクのターゲット サイズを指定することによってバイナリ マスクを作成できます。poly2mask は入力イメージを必要としません。

Binary mask created by specifying the (x,y) coordinates of six vertices surrounding the ROI

自動または半自動のセグメンテーション アルゴリズムを使用したマスクの作成

イメージ セグメンテーション アルゴリズムの中には、イメージ内の特徴に基づいて ROI を予測したり、ROI の位置のおおまかな推定をしたりするものがあります。たとえば、動的輪郭法は指定されたマスクをオブジェクト境界に対して繰り返し調整します。自動または半自動のセグメンテーション アルゴリズムの利点は、不明確でも初期位置推定があれば、複雑な ROI 境界を高い忠実度で検出できることです。

イメージの領域分割アプリおよびボリュームの領域分割アプリでは、自動および半自動のセグメンテーション手法を有効にできます。また、ツールボックス内のさまざまな関数を使用して、イメージを ROI と背景にセグメント化することができます。使用可能なセグメンテーション手法の詳細については、イメージのセグメンテーションを参照してください。

操作説明サンプル出力 (入力イメージ、バイナリ マスク、マスクされた ROI)
グラフ カットグラフ カット アルゴリズムはグラフに基づく反復セグメンテーションを使用して ROI を推定します。ROI と背景の両方に対してシード ピクセルを使用して ROI の指定と調整を行います。グラフ カットの機能は、関数 grabcut およびイメージの領域分割アプリで有効にします。

Binary mask using graph cut. Pixels with colors similar to selected seed pixels, such as petals and leaves, belong to the ROI.

レイジー スナッピングレイジー スナッピング アルゴリズムはグラフに基づくセグメンテーションを使用して ROI を推定します。ROI と背景の両方に対して初期マスクまたはピクセル座標を指定します。レイジー スナッピングの機能は、関数 lazysnapping で有効にします。

Binary mask created by specifying one rectangular foreground mask and one rectangular background mask.

動的輪郭動的輪郭 (Snakes) アルゴリズムは領域拡張法を使用して ROI を推定します。オブジェクト境界の周囲に初期マスクを指定します。動的輪郭の機能は、関数 activecontour およびイメージの領域分割アプリで有効にします。

Initial mask and intermediate states of the evolution towards the ROI boundary

参考

| |

関連するトピック