Learn R Programming

spatstat (version 1.31-3)

opening: Morphological Opening

Description

Perform morphological opening of a window, a line segment pattern or a point pattern.

Usage

opening(w, r, ...)

## S3 method for class 'owin': opening(w, r, \dots, polygonal=NULL)

## S3 method for class 'ppp': opening(w, r, \dots)

## S3 method for class 'psp': opening(w, r, \dots)

Arguments

w
A window (object of class "owin" or a line segment pattern (object of class "psp") or a point pattern (object of class "ppp").
r
positive number: the radius of the opening.
...
extra arguments passed to as.mask controlling the pixel resolution, if a pixel approximation is used
polygonal
Logical flag indicating whether to compute a polygonal approximation to the erosion (polygonal=TRUE) or a pixel grid approximation (polygonal=FALSE). Ignored if gpclib is disabled.

Value

  • If r > 0, an object of class "owin" representing the opened region. If r=0, the result is identical to w.

Details

The morphological opening (Serra, 1982) of a set $W$ by a distance $r > 0$ is the subset of points in $W$ that can be separated from the boundary of $W$ by a circle of radius $r$. That is, a point $x$ belongs to the opening if it is possible to draw a circle of radius $r$ (not necessarily centred on $x$) that has $x$ on the inside and the boundary of $W$ on the outside. The opened set is a subset of W.

For a small radius $r$, the opening operation has the effect of smoothing out irregularities in the boundary of $W$. For larger radii, the opening operation removes promontories in the boundary. For very large radii, the opened set is empty.

The algorithm applies erosion followed by dilation.

Polygonal calculations require the gpclib package which is subject to licence restrictions. It is enabled by spatstat.options(gpclib=TRUE). See licence.polygons.

References

Serra, J. (1982) Image analysis and mathematical morphology. Academic Press.

See Also

closing for the opposite operation.

dilation, erosion for the basic operations. owin, as.owin for information about windows.

Examples

Run this code
if(spatstat.options("gpclib")) {
    v <- opening(letterR, 0.3)
  } else {
    v <- opening(letterR, 0.3, dimyx=256, polygonal=FALSE)
  }
  plot(letterR, type="n", main="opening")
  plot(v, add=TRUE, col="grey")
  plot(letterR, add=TRUE)

Run the code above in your browser using DataLab