# strel

Morphological structuring element

## Description

A `strel`

object represents a flat morphological
*structuring element*, which is an essential part of
morphological dilation and erosion operations.

A flat structuring element is a binary valued neighborhood, either 2-D or
multidimensional, in which the `true`

pixels are included in the
morphological computation, and the `false`

pixels are not. The center
pixel of the structuring element, called the *origin*, identifies the
pixel in the image being processed. Use the `strel`

function
(described below) to create a flat structuring element. You can use flat structuring
elements with both binary and grayscale images. The following figure illustrates a flat
structuring element.

To create a nonflat structuring element, use `offsetstrel`

.

## Creation

### Syntax

### Description

#### Arbitrary Neighborhood Shape

`SE = strel(`

creates a flat
structuring element with specified neighborhood
`nhood`

)`nhood`

.

#### 2-D Geometric Neighborhood Shapes

`SE = strel("diamond",`

creates
a diamond-shaped structuring element, where `r`

)`r`

specifies
the distance from the structuring element origin to the points of the
diamond.

`SE = strel("disk",`

creates a
disk-shaped structuring element, where `r`

)`r`

specifies the
radius.

`SE = strel("octagon",`

creates
an octagonal structuring element, where `r`

)`r`

specifies the
distance from the structuring element origin to the sides of the octagon, as
measured along the horizontal and vertical axes. `r`

must
be a nonnegative multiple of 3.

`SE = strel("rectangle",`

creates a rectangular structuring element of size
`[m n]`

)*m*-by-*n*.

#### 3-D Geometric Neighborhood Shapes

`SE = strel("cube",`

creates a
3-D cubic structuring element whose width is `w`

)`w`

pixels.

`SE = strel("cuboid",`

creates a 3-D cuboidal structuring element of size
`[m n p]`

)*m*-by-*n*-by-*p*
pixels.

**Compatibility**

The following syntaxes still work, but `offsetstrel`

is the preferred way
to create these nonflat structuring element shapes:

`SE = strel("arbitrary",nhood,h)`

, where`h`

is a matrix of the same size as`nhood`

containing the height values associated with each nonzero element of`nhood`

.`SE = strel("ball",r,h,n)`

### Input Arguments

## Properties

## Object Functions

## Examples

## Tips

Structuring elements that do not use approximations (

`n`

= 0) are not suitable for computing granulometries.

## Algorithms

For all of the geometrical shapes, structuring elements are constructed using a family
of techniques known collectively as *structuring element
decomposition*. The principle is that dilation by some large structuring
elements can be computed faster by dilation with a sequence of smaller structuring
elements. For example, dilation by an 11-by-11 square structuring element can be
accomplished by dilating first with a 1-by-11 structuring element and then with an
11-by-1 structuring element. This results in a theoretical performance improvement of a
factor of 5.5, although in practice the actual performance improvement is somewhat less.
Structuring element decompositions used for the `"disk"`

shape is an
approximations—all other decompositions are exact.

## References

[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.

## Extended Capabilities

## Version History

**Introduced before R2006a**