Main Content

strel

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

説明

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

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

Disk shaped structuring element with a radius of 3 pixels

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

作成

説明

任意の近傍形状

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

2 次元幾何学的近傍形状

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

SE = strel("disk",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 ピクセルの正方形の構造化要素を作成します。

3 次元幾何学的近傍形状

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)。ここで、h は、nhood の各非ゼロ要素と関連付けられた高さの値を格納する nhood と同じサイズの行列です。

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

入力引数

すべて展開する

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

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

構造化要素の半径。正の整数として指定します。

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

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

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

  • 球状の場合、r は、球体の原点から端までの距離です。

データ型: double

形状の近似に使用される周期的なラインの構造化要素の数。046、または 8 に指定します。構造化要素で近似を使用すると (n > 0)、円板の近似を使用するモルフォロジー演算がはるかに高速で実行されます。

n の値動作
n > 0strel は、n 個の周期的なライン状の構造化要素のシーケンスを使用して形状を近似します。場合によっては、strel は近似で追加の 2 つのラインの構造化要素を使用する必要があります。この場合、分解構造化要素の実際の数は n+2 です。
n = 0strel は近似を使用しません。構造化要素メンバーは、中心が原点から r を超えないすべてのピクセルを含みます。

データ型: double

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

データ型: double

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

データ型: double

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

データ型: double

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

データ型: double

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

データ型: double

プロパティ

すべて展開する

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

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

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

半径 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)

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

ヒント

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

アルゴリズム

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

参照

[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 より前に導入

すべて展開する

参考

トピック