ドキュメンテーション

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

バイナリ マスクの作成

Image Processing Toolbox™ ではバイナリ マスクを生成する 4 つの手法をサポートします。バイナリ マスクは元のイメージの関心領域 (ROI) を定義します。値が 1 のマスク ピクセルは、その画像ピクセルが ROI に属していることを示します。値が 0 のマスク ピクセルは、その画像ピクセルが背景の一部であることを示します。

バイナリ イメージをマスクとして使用するには、フィルター処理されるイメージと同じサイズでなければなりません。それ以外の制限はありません。

グレースケール イメージからのバイナリ マスクの作成

各ピクセルが関心領域に属するか背景に属するかを分類することで、グレースケール画像からマスクを作成できます。たとえば、グレースケール イメージ I をフィルター処理して、0.5 より大きなピクセル値のみを選択するとします。この場合は、次のコマンドで適切なマスクを作成できます。

BW = (I > 0.5)

ROI 関数を使用したバイナリ マスクの作成

この例では、いずれかの ROI 作成関数 (drawcircle など) とマスク作成関数 createMask を使用して、バイナリ マスクを作成する方法を説明します。

イメージをワークスペースに読み取って表示します。

img = imread('pout.tif');
h_im = imshow(img);

いずれかの ROI 作成関数を使用してイメージ上に ROI を作成します。

circ = drawcircle('Center',[113,66],'Radius',60);

createMask を使用して ROI からバイナリ マスクを作成します。関数 createMask は、入力イメージと同じサイズのバイナリ イメージを返します。ROI 内部のピクセルは 1 に設定され、それ以外のピクセルは 0 に設定されます。

BW = createMask(circ);
imshow(BW)

色値に基づいたバイナリ マスクの作成

関数 roicolor を使用して色の範囲や強度の範囲に基づく ROI を定義できます。

関連付けられたイメージを使用しないバイナリ マスクの作成

関数 poly2mask を使用して、関連付けられたイメージなしでバイナリ マスクを作成できます。createMask メソッドとは異なり、poly2mask は、入力イメージを必要としません。ROI を囲む図形の頂点を 2 つのベクトルで指定し、返されるバイナリ マスクのサイズを指定します。たとえば、次の例では、pout.tif イメージ内の ROI のフィルター処理に使用できるバイナリ マスクを作成します。

c = [123 123 170 170]; 
r = [160 210 210 160];
m = 291;  % height of pout image
n = 240;  % width of pout image
BW = poly2mask(c,r,m,n);
imshow(BW)