ドキュメンテーション

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

imerode

構文

IM2 = imerode(IM,SE)
IM2 = imerode(IM,NHOOD)
IM2 = imerode(___,PACKOPT,M)
IM2 = imerode(___,SHAPE)
gpuarrayIM2 = imerode(gpuarrayIM,___)

説明

IM2 = imerode(IM,SE) は、グレースケール イメージ、バイナリ イメージまたはパックされたバイナリ イメージ IM を収縮し、結果のイメージ IM2 を返します。引数 SE は、構造化要素オブジェクトまたは構造化要素オブジェクトの配列で、関数 strel または offsetstrel で作成します。

IM が論理値で、構造化要素がフラットな場合、imerode は、バイナリ収縮を実行します。その他の場合、グレースケール収縮が実施されます。SE が構造化要素オブジェクトの配列の場合、imerode は、連続的に SE の中の個々の構造化要素を使用して、入力イメージの複数の収縮を実行します。

IM2 = imerode(IM,NHOOD) は、イメージ IM を収縮します。ここで、NHOOD は、構造化要素近傍を指定する 01 から構成される配列です。これは、構文 imerode(IM,strel(NHOOD)) と等価です。関数 imerode は、floor((size(NHOOD)+1)/2) で近傍の中心要素を決定します。

IM2 = imerode(___,PACKOPT,M)IM がパックされたバイナリ イメージかどうかを指定し、パックされている場合は、パックされていない元のイメージの行数 M を与えます。PACKOPT は次のいずれかの値をとることができます。既定値は、中かっこ ({}) で囲まれています。

説明

'ispacked'

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

{'notpacked'}

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

PACKOPT'ispacked' の場合、M の値を指定しなければなりません。

IM2 = imerode(___,SHAPE) は出力イメージのサイズを指定します。SHAPE は次のいずれかの値をとることができます。既定値は、中かっこ ({}) で囲まれています。

説明

{'same'}

入力イメージと同じサイズの出力イメージを作成します。PACKOPT の値が 'ispacked' の場合、SHAPE'same' でなければなりません。

'full'

すべての収縮処理を計算します。

gpuarrayIM2 = imerode(gpuarrayIM,___) は、GPU (グラフィックス処理装置)で処理を実行します。gpuarrayIM はグレースケール イメージまたはバイナリ イメージを含む gpuArray です。gpuarrayIM2 は入力イメージと同じクラスの gpuArray です。PACKOPT 構文は GPU ではサポートされていないので注意してください。この構文では Parallel Computing Toolbox™ が必要です。

コード生成 サポート: あり。

MATLAB Function ブロック サポート: あり。

クラス サポート

IM は、数値または論理値で、任意の次元にすることができます。IM が論理値で、構造化要素がフラットな場合、出力イメージは論理値になります。その他の場合、出力イメージは、入力と同じクラスになります。入力がパックされたバイナリの場合、出力もパックされたバイナリになります。

gpuarrayIMuint8 型または logical 型の gpuArray でなければなりません。gpuarray と併用する場合、構造化要素はフラットかつ 2 次元でなければなりません。出力は入力と同じクラスになります。

すべて折りたたむ

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

originalBW = imread('text.png');

フラットなライン状の構造化要素を作成します。

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

構造化要素を使用してイメージを収縮させます。

erodedBW = imerode(originalBW,se);

元のイメージと収縮されたイメージを表示します。

figure
imshow(originalBW)
figure
imshow(erodedBW)

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

originalI = imread('cameraman.tif');

非フラットな offsetstrel オブジェクトを作成します。

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

イメージを収縮します。

erodedI = imerode(originalI,se);

元のイメージと収縮されたイメージを表示します。

figure
imshow(originalI)
figure
imshow(erodedI)

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

originalBW = imread('text.png');

構造化要素を作成します。

se = strel('line',11,90);
erodedBW = imerode(gpuArray(originalBW),se);
figure, imshow(originalBW), figure, imshow(erodedBW)

GPUarray を作成してイメージを収縮します。

erodedBW = imerode(gpuArray(originalBW),se);

元のイメージと収縮されたイメージを表示します。

figure, imshow(originalBW), figure, imshow(erodedBW)

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

originalI = imread('cameraman.tif');

構造化要素を作成します。

se = strel('disk',5);

GPUarray を作成してイメージを収縮します。

erodedI = imerode(gpuArray(originalI),se);

元のイメージと収縮されたイメージを表示します。

figure
imshow(originalI)
figure
imshow(erodedI)

バイナリ ボリュームを作成します。

load mristack
BW = mristack < 100;

立方体の構造化要素を作成します。

se = strel('cube',3)
se = 

strel is a cube shaped structuring element with properties:

      Neighborhood: [3×3×3 logical]
    Dimensionality: 3

立方体の構造化要素を使用してボリュームを収縮します。

erodedBW = imerode(BW, se);

詳細

すべて折りたたむ

コード生成

この関数では MATLAB® Coder™ を使用した C コードの生成がサポートされています。汎用の MATLAB Host Computer ターゲット プラットフォームを選択した場合、プリコンパイルされたプラットフォーム固有の共有ライブラリを使用するコードが、この関数によって生成されます。共有ライブラリを使用するとパフォーマンスの最適化は維持されますが、コードを生成できるターゲット プラットフォームが限定されます。詳細は、「Image Processing Toolbox のコード生成について」を参照してください。

コード生成時には、以下の点に注意してください。

  • 入力イメージ IM は 2 次元または 3 次元でなければなりません。

  • 構造化要素引数 SE は単一の要素でなければなりません。構造化要素の配列はサポートされていません。構造化要素の配列を使用した場合と同じ結果を得るには、関数を順次呼び出します。

  • ターゲットが MATLAB Host Computer の場合、引数 PACKOPT および SHAPE はコンパイル時の定数でなければなりません。ターゲットがその他のプラットフォームの場合には、PACKOPT 構文はサポートされません。

MATLAB Function ブロック

この関数は Simulink の MATLAB Function ブロックで使用できます。

アルゴリズム

imerode は、構造化要素オブジェクトを分解できる場合、自動的に分解を利用します。また、分解された構造化要素オブジェクトを使用して、バイナリ膨張を行う場合、imerode は、自動的にパックされたバイナリ イメージを使い、高速化を行います。

ビット圧縮を使った収縮は、参考文献 [3] を参照してください。

参考文献

[1] Gonzalez, R. C., R. E. Woods, and S. L. Eddins, Digital Image Processing Using MATLAB, Gatesmark Publishing, 2009.

[2] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Vol. I, Addison-Wesley, 1992, pp. 158-205.

[3] van den Boomgard, R, and R. van Balen, "Methods for Fast Morphological Image Transforms Using Bitmapped Images," Computer Vision, Graphics, and Image Processing: Graphical Models and Image Processing, Vol. 54, Number 3, pp. 254-258, May 1992.

R2006a より前に導入

この情報は役に立ちましたか?