ドキュメンテーション

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

strel

モルフォロジー構造化要素

説明

strel オブジェクトは、モルフォロジー膨張演算および収縮演算の本質的な部分となるフラットなモルフォロジー "構造化要素" を表します。

フラットな構造化要素は 2 次元または多次元のバイナリ値の近傍であり、true のピクセルがモルフォロジー計算に組み込まれ、false のピクセルは除外されます。構造化要素の中心ピクセルは "原点" と呼ばれ、処理されるイメージ内のピクセルを識別します。関数 strel (後述) を使用してフラットな構造化要素を作成します。バイナリ イメージおよびグレースケール イメージのフラットな構造化要素を使用できます。次の図はフラットな構造化要素を示しています。

非フラットな構造化要素を作成するには、offsetstrel を使用します。

作成

説明

SE = strel(nhood) は、指定された近傍 nhood を持つフラットな構造化要素を作成します。

構文 SE = strel('arbitrary',nhood) を使用して、指定された近傍を持つフラットな構造化要素を作成することもできます。

SE = strel('diamond',r) は、菱形の形状の構造化要素を作成します。ここで、r は、構造化要素の原点から菱形の点までの距離を指定します。

SE = strel('disk',r,n) は、円板型の構造化要素を作成します。ここで、r は半径を指定し、n は円板形状の近似に使用するラインの構造化要素の数を指定します。構造化要素で近似を使用すると、円板の近似を使用するモルフォロジー演算がはるかに高速で実行されます。

SE = strel('octagon',r) は、八角形の構造化要素を作成します。ここで、r は水平軸と垂直軸に沿って測定された、構造化要素の原点から八角形の辺までの距離を指定します。r は非負で 3 の倍数でなければなりません。

SE = strel('line',len,deg) は、近傍の中心に対して対称で、およその長さ len と角度 deg を持つ線形の構造化要素を作成します。

SE = strel('rectangle',[m n]) は、サイズ [m n] の四角形の構造化要素を作成します。

SE = strel('square',w) は、幅が w ピクセルの正方形の構造化要素を作成します。

SE = strel('cube',w) は、幅が w ピクセルの 3 次元立方体の構造化要素を作成します。

SE = strel('cuboid',[m n p]) は、サイズ [m n p] の 3 次元直方体の構造化要素を作成します。

SE = strel('sphere',r) は、半径が r ピクセルの球状の 3 次元構造化要素を作成します。

互換性

以下の構文も引き続き動作しますが、これらの非フラットな構造化要素の形状を作成する方法としては、offsetstrel を推奨します。

  • SE = strel('arbitrary',nhood,h)

  • SE = strel('ball',r,h,n)

以下の構文は引き続き動作しますが、使用は推奨されません。

  • SE = strel('pair',offset)

  • SE = strel('periodicline',p,v)

入力引数

すべて展開する

近傍。任意の次元の数値配列として指定します。nhood のすべての非ゼロ ピクセルは、モルフォロジー演算の近傍に属します。nhood の中心 (または原点) は、floor((size(nhood) + 1)/2) よって指定された中心要素です。

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

x-y 平面での構造化要素の半径。正の整数として指定します。

  • 円板型の場合、r は、円板の原点から端までの距離です。

  • 菱形の形状の場合、r は、構造化要素の原点から菱形の点までの距離です。

  • 八角形の形状の場合、r は、水平軸と垂直軸に沿って測定された、構造化要素の原点から八角形の辺までの距離です。r は 3 の倍数でなければなりません。

データ型: double

形状の近似に使用される周期的なラインの構造化要素の数。046、または 8 に指定します。n が 0 より大きい場合、円板型の構造化要素は、n 個の周期的なラインの構造化要素のシーケンスで近似されます。n0 の場合、strel は近似を使用せず、構造化要素メンバーは、中心が原点から r を超えないすべてのピクセルを含みます。構造化要素で近似を使用すると (n > 0)、円板の近似を使用するモルフォロジー演算がはるかに高速で実行されます。strel は近似で追加の 2 つのラインの構造化要素を使用する必要がある場合もあります。この場合、使用される分解構造化要素の数は n+2 です。

n の値動作
n > 0strel は、n (場合によっては n+2) 個の周期的なライン状の構造化要素のシーケンスを使用して形状を近似します。
n = 0strel は近似を使用しません。構造化要素メンバーは、中心が原点から r を超えないすべてのピクセルを含みます。また、対応する高さの値は、rh によって指定された楕円の方程式から決定されます。

データ型: double

線形の構造化要素の長さ。正の数値として指定します。len は、ラインの両端にある構造化要素メンバーの中心間のおよその距離です。

データ型: double

線形の構造化要素の角度 (度単位)。数値スカラーとして指定します。角度は横軸から反時計回りの方向に測定します。

データ型: double

四角形の構造化要素のサイズ。正の整数の 2 要素ベクトルとして指定します。この構造化要素には m 個の行と n 個の列があります。

データ型: double

正方形または立方体の構造化要素の幅。正の整数として指定します。

データ型: double

直方体の構造化要素のサイズ。正の整数の 3 要素ベクトルとして指定します。この構造化要素には m 個の行、n 個の列、および p 個の平面があります。

データ型: double

プロパティ

すべて展開する

構造化要素近傍。logical 配列として指定します。

データ型: 論理値

構造化要素の次元。非負のスカラーとして指定します。

データ型: double

オブジェクト関数

imdilateイメージの膨張
imerodeイメージの収縮
imcloseイメージにモルフォロジー クロージングを行う
imopenイメージのモルフォロジー オープニング
imbothatボトム ハット フィルター処理
imtophatトップ ハット フィルター処理
bwhitmissバイナリ ヒットミス演算
decompose分解した構造化要素のシーケンスを返す
reflect構造化要素の対称形の作成
translate構造化要素の平行移動

すべて折りたたむ

11 行 11 列の正方形の構造化要素を作成します。

SE = strel('square', 11)
SE = 
strel is a square shaped structuring element with properties:

      Neighborhood: [11x11 logical]
    Dimensionality: 2

長さが 10、角度が 45 度のライン状の構造化要素を作成します。

SE = strel('line', 10, 45)
SE = 
strel is a line shaped structuring element with properties:

      Neighborhood: [7x7 logical]
    Dimensionality: 2

構造化要素を表示します。

SE.Neighborhood
ans = 7x7 logical array

   0   0   0   0   0   0   1
   0   0   0   0   0   1   0
   0   0   0   0   1   0   0
   0   0   0   1   0   0   0
   0   0   1   0   0   0   0
   0   1   0   0   0   0   0
   1   0   0   0   0   0   0

半径 15 ピクセルの円板型の構造化要素を作成します。

SE3 = strel('disk', 15)
SE3 = 
strel is a disk shaped structuring element with properties:

      Neighborhood: [29x29 logical]
    Dimensionality: 2

円板型の構造化要素を表示します。

figure
imshow(SE3.Neighborhood)

半径 15 ピクセルの 3 次元の球状の構造化要素を作成します。

SE = strel('sphere', 15)
SE = 
strel is a sphere shaped structuring element with properties:

      Neighborhood: [31x31x31 logical]
    Dimensionality: 3

構造化要素を表示します。

figure
isosurface(SE.Neighborhood)

ヒント

  • 近似を使用しない (n =0) 構造化要素は粒度分布の計算に適していません。

アルゴリズム

'arbitrary' を除くすべての形状では、構造化要素は "構造化要素分解" と総称して呼ばれるテクニックの集合を使用して構築されます。原理は、一部の大きな構造化要素による膨張は、小さい構造化要素のシーケンスを使用した膨張によって計算が高速になるということです。たとえば、11 行 11 列の正方形構造化要素による膨張は、1 行 11 列の構造化要素を使用してから 11 行 1 列の構造化要素を使用して膨張することによって達成できます。これにより、実際の性能がそれほど向上しない場合でも、5.5 の因子の理論上の性能が向上されます。'disk' 形状で使用される構造化要素分解は、近似であり、その他すべての分解は完全一致になります。

互換性の考慮事項

すべて展開する

R2017b での動作変更

参照

[1] 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. 252–254, May 1992.

[2] Adams, R., "Radial Decomposition of Discs and Spheres," Computer Vision, Graphics, and Image Processing: Graphical Models and Image Processing, Vol. 55, Number 5, pp. 325–332, September 1993.

[3] Jones, R., and P. Soille, "Periodic lines: Definition, cascades, and application to granulometrie," Pattern Recognition Letters, Vol. 17, pp. 1057–1063, 1996.

拡張機能

参考

トピック

R2006a より前に導入