Main Content

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

imimposemin

説明

J = imimposemin(I,BW) は、モルフォロジー再構成を使用してグレースケール マスク イメージ I を変更し、バイナリ マーカー イメージ BW がゼロでない部分のみを局所的な最小値にします。

J = imimposemin(I,BW,conn) は、モルフォロジー再構成のピクセルの連結性を指定します。

すべて折りたたむ

この例では、ある領域を常に局所的な最小値にするようにイメージを変更する方法を説明します。

イメージを読み取り、それを表示します。次のイメージは、"マスク" イメージと呼ばれています。

mask = imread('glass.png');
imshow(mask)

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

マスク イメージと同じサイズのバイナリ イメージを作成し、バイナリ イメージの小領域を 1 に設定します。これらのピクセルは、局所的な最小値が挿入されるマスク イメージ内の位置を定義します。得られたイメージは、"マーカー" イメージと呼びます。

marker = false(size(mask));
marker(65:70,65:70) = true;

対象となるこれらのピクセルが元のイメージ上に位置する場所を示すため、マスクの上にマーカーを重ね合わせます。小さい白色の正方形は、スポットを意味します。次のコードは、本質的には、最小化演算を強制するものではありません。

J = mask;
J(marker) = 255;
figure
imshow(J)
title('Marker Image Superimposed on Mask')

Figure contains an axes object. The axes object with title Marker Image Superimposed on Mask contains an object of type image.

関数 imimposemin を使用して、入力イメージ上に地域的な最小値を強制的に配置します。ここで、元のイメージのマーカー領域以外の暗い領域がどのように明るくなるかに注意してください。

K = imimposemin(mask,marker);
figure
imshow(K)

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

次の演算では、強制的に最小にした部分を除いて、元のイメージの中のすべての極小値をどのように除去するかを示すために、元のイメージの中の局所的な最小値と処理イメージの中の局所的な最小値とを比較します。これらは、両方のイメージで、局所的な最小値のすべての位置を設定するバイナリ イメージを返す関数 imregionalmin を呼び出します。

BW = imregionalmin(mask);
figure
subplot(1,2,1)
imshow(BW)  
title('Regional Minima in Original Image')

BW2 = imregionalmin(K);
subplot(1,2,2)
imshow(BW2)
title('Regional Minima After Processing')

Figure contains 2 axes objects. Axes object 1 with title Regional Minima in Original Image contains an object of type image. Axes object 2 with title Regional Minima After Processing contains an object of type image.

入力引数

すべて折りたたむ

グレースケール マスク イメージ。任意の次元の数値配列として指定します。

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

バイナリ マーカー イメージ。グレースケール マスク イメージ I と同じサイズの数値配列または logical 配列として指定します。数値入力の場合、非ゼロのピクセルは 1 (true) であると見なされます。

データ型: 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

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

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

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

データ型: double | logical

出力引数

すべて折りたたむ

再構成イメージ。サイズとデータ型が I と同じ数値配列または logical 配列として返されます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する