Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

imreconstruct

モルフォロジー再構成

説明

J = imreconstruct(marker,mask) は、イメージ mask の下で、イメージ marker のモルフォロジー再構成を行い、その再構成を J に返します。marker の要素は、mask の対応する要素以下でなければなりません。marker の値が mask の対応する要素よりも大きい場合、imreconstruct はその値を mask のレベルに切り下げてから処理を開始します。

J = imreconstruct(marker,mask,conn) は、指定した連結性 conn を使用してモルフォロジー再構成を行います。

すべて折りたたむ

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

I = imread('snowflakes.png');
imshow(I)

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

イメージのコントラストを調整してマスク イメージを作成し、結果を表示します。

mask = adapthisteq(I);
imshow(mask)

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

モルフォロジー収縮を使用して、イメージ内の高い強度のオブジェクトを識別するマーカー イメージを作成し、結果を表示します。

se = strel('disk',5);
marker = imerode(mask,se);
imshow(marker)

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

マスク内で高い強度のオブジェクトを識別するマーカー イメージを使用して、マスク イメージでモルフォロジー オープニングを実行します。結果を表示します。

obr = imreconstruct(marker,mask);
imshow(obr,[])

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

論理イメージをワークスペースに読み取って表示します。これがマスク イメージになります。

mask = imread('text.png');
figure
imshow(mask)

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

セグメンテーションで抽出するオブジェクトをイメージ内で識別するマーカー イメージを作成します。この例では、"watershed" という語の "w" を識別します。

marker = false(size(mask));
marker(13,94) = true;

マーカー イメージを使用して、マスク イメージのセグメンテーションを実行します。

im = imreconstruct(marker,mask);
figure
imshow(im)

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

入力引数

すべて折りたたむ

入力イメージ。数値配列または logical 配列として指定します。

例: se = strel('disk',5); marker = imerode(mask,se);

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

マスク イメージ。サイズとデータ型が marker と同じ数値配列または logical 配列として指定します。

例: mask = imread('text.png');

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

ピクセルの連結性。次の表のいずれかの値を指定します。既定の連結性は 2 次元イメージでは 8、3 次元イメージでは 26 です。

平均

2 次元連結性

4

ピクセルのエッジの部分が接触している場合、ピクセルは連結されます。ピクセルの近傍は水平方向または垂直方向に隣接するピクセルです。

3-by-3 pixel neighborhood with four pixels connected to the center pixel

現在のピクセルを灰色で示します。

8

ピクセルのエッジまたはコーナーが接触している場合、ピクセルは連結されます。ピクセルの近傍は水平方向、垂直方向または対角方向に隣接するピクセルです。

3-by-3 pixel neighborhood with 8 pixels connected to the center pixel

現在のピクセルを灰色で示します。

3 次元連結性

6

面が接触している場合、ピクセルは連結されます。ピクセルの近傍は次のように隣接するピクセルです。

  • 次のいずれかの方向: 奥、手前、左、右、上および下

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces of the center pixel

現在のピクセルを灰色で示します。

18

面またはエッジが接触している場合、ピクセルは連結されます。ピクセルの近傍は次のように隣接するピクセルです。

  • 次のいずれかの方向: 奥、手前、左、右、上および下

  • 右下または上の奥など、2 つの方向の組み合わせ

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces and 12 pixels connected to the edges of the center pixel

現在のピクセルは立方体の中心です。

26

面、エッジまたはコーナーが接触している場合、ピクセルは連結されます。ピクセルの近傍は次のように隣接するピクセルです。

  • 次のいずれかの方向: 奥、手前、左、右、上および下

  • 右下または上の奥など、2 つの方向の組み合わせ

  • 右上の奥または左下の奥など、3 つの方向の組み合わせ

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces, 12 pixels connected to the edges, and 8 pixels connected to the corners of the center pixel

現在のピクセルは立方体の中心です。

高次元の場合、imreconstruct は既定値 conndef(ndims(marker),'maximal') を使用します。

連結性は、01 から成る 3 × 3 × ... × 3 行列を指定し、任意の次元に対してより一般的に定義することもできます。1 の値を持つ要素は、conn の中心要素に対する近傍の位置を定義します。conn は、その中心要素に関して対称でなければなりません。詳細については、カスタム連結性の定義を参照してください。

データ型: double | logical

出力引数

すべて折りたたむ

再構成イメージ。入力イメージに応じて、入力イメージと同じサイズの数値配列または logical 配列として返されます。

ヒント

  • モルフォロジー再構成は、いくつかの他の Image Processing Toolbox™ の関数 imclearborderimkeepborderimextendedmaximextendedminimfillimhmaximhmin、および imimposemin に対するアルゴリズムの基になっています。

  • パフォーマンスに関する注意事項: この関数は、logicaluint8uint16single および double の各データ型に対し、ハードウェアの最適化を利用してより速やかな実行ができます。ハードウェア最適化では、markermask が 2 次元イメージで、conn4 または 8 である必要があります。

アルゴリズム

imreconstruct は、[1] で説明した高速のハイブリッド グレースケール再構成アルゴリズムを使用します。

参照

[1] Vincent, L., "Morphological Grayscale Reconstruction in Image Analysis: Applications and Efficient Algorithms," IEEE Transactions on Image Processing, Vol. 2, No. 2, April, 1993, pp. 176-201.

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する