メインコンテンツ

imdilate

説明

J = imdilate(I,SE) は、構造化要素 SE を使用して、グレースケール イメージ、バイナリ イメージ、またはパックされたバイナリ イメージ I の膨張処理を行います。

J = imdilate(I,nhood) は、イメージ I を膨張処理します。ここで、nhood は、構造化要素近傍を指定する 01 から構成される行列です。

この構文は、imdilate(I,strel(nhood)) と等価です。

J = imdilate(___,packopt)I がパックされたバイナリ イメージであるかどうかを指定します。

J = imdilate(___,shape) は出力イメージのサイズを指定します。

すべて折りたたむ

バイナリ イメージをワークスペースに読み取ります。

BW = imread("text.png");

垂直線状の構造化要素を作成します。

se = strel("line",11,90);

垂直線の構造化要素を使用してイメージを膨張させます。

BW2 = imdilate(BW,se);

元のイメージと膨張したイメージを比較します。

imshow(BW)
title("Original")

Figure contains an axes object. The hidden axes object with title Original contains an object of type image.

imshow(BW2)
title("Dilated")

Figure contains an axes object. The hidden axes object with title Dilated contains an object of type image.

グレースケール イメージをワークスペースに読み取ります。

originalI = imread("cameraman.tif");

非フラットなボール形状の構造化要素を作成します。

se = offsetstrel("ball",5,5);

イメージを膨張します。

dilatedI = imdilate(originalI,se);

元のイメージと膨張したイメージを表示します。

imshowpair(originalI,dilatedI,"montage")

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

2 つの点を含む 3 次元論理ボリュームを作成します。

BW = false(100,100,100);
BW(25,25,25) = true;
BW(75,75,75) = true;

球状の構造化要素を使用して 3 次元ボリュームを膨張します。

se = strel("sphere",25);
dilatedBW = imdilate(BW,se);

膨張したイメージ ボリュームを表示します。

isosurface(dilatedBW,0.5)
axis equal

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

入力引数

すべて折りたたむ

入力イメージ。任意の次元のグレースケール イメージ、バイナリ イメージまたはパックされたバイナリ イメージとして指定します。

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

構造化要素。スカラー strel オブジェクトまたは offsetstrel オブジェクトとして指定します。SE は、strel オブジェクトまたは offsetstrel オブジェクトの配列にすることもできます。この場合、imdilate は各構造化要素を続けて使用して入力イメージの膨張を複数実行します。

imdilatelogical データ型のイメージを除くすべてのイメージに対してグレースケールの膨張処理を実行します。この場合、構造化要素はフラットでなければなりません。imdilate はバイナリ膨張を実行します。

構造化要素近傍。01 から成る行列として指定します。

例: [0 1 0; 1 1 1; 0 1 0]

パックされたバイナリ イメージのインジケーター。次のいずれかに指定します。

説明

"notpacked"

I は、通常の配列として取り扱われます。

"ispacked"

I は、bwpack で出力されるパックされたバイナリ イメージとして取り扱われます。I は 2 次元の uint32 配列で、SE はフラットな 2 次元構造化要素でなければなりません。shape の値は "same" でなければなりません。

データ型: char | string

出力イメージのサイズ。次のいずれかに指定します。

説明

"same"

出力イメージは入力イメージと同じサイズです。packopt の値が "ispacked" の場合、shape"same" でなければなりません。

"full"

すべての膨張処理を計算します。

データ型: char | string

出力引数

すべて折りたたむ

膨張されたイメージ。グレースケール イメージ、バイナリ イメージまたはパックされたバイナリ イメージとして返されます。入力イメージ I がパックされたバイナリの場合、J もパックされたバイナリになります。J のデータ型は I と同じです。

詳細

すべて折りたたむ

ヒント

  • イメージ I の次元が構造化要素の次元より高い場合、関数 imdilate は、高次元のすべての平面に対して同じモルフォロジー膨張を適用します。

    この動作を使用して、RGB イメージのモルフォロジー膨張を行うことができます。カラー チャネル別に処理を行うには、RGB イメージの 2 次元構造化要素を指定します。

  • 構造化要素近傍を指定した場合、imdilate は、floor((size(nhood)+1)/2) によって nhood の中心要素を決定します。

  • imdilate は、構造化要素オブジェクト (存在する場合) の分解を自動的に利用しています。また、分解された構造化要素オブジェクトを使用してバイナリ膨張を行う場合、imdilate は、自動的にバイナリ イメージ パックを行って膨張処理を高速化します[3]

参照

[1] Gonzalez, Rafael C., Richard E. Woods, and Steven L. Eddins. Digital Image Processing Using MATLAB. Third edition. Knoxville: Gatesmark Publishing, 2020.

[2] Haralick, Robert M., and Linda G. Shapiro. Computer and Robot Vision. 1st ed. USA: Addison-Wesley Longman Publishing Co., Inc., 1992, pp. 158-205.

[3] Boomgaard, Rein van den, and Richard van Balen. “Methods for Fast Morphological Image Transforms Using Bitmapped Binary Images.” CVGIP: Graphical Models and Image Processing 54, no. 3 (May 1, 1992): 252–58. https://doi.org/10.1016/1049-9652(92)90055-3.

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する