Learn R Programming

spatstat.geom (version 3.3-2)

closing: Morphological Closing

Description

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

Usage

closing(w, r, ...)

# S3 method for owin closing(w, r, ..., polygonal=NULL)

# S3 method for ppp closing(w, r, ..., polygonal=TRUE)

# S3 method for psp closing(w, r, ..., polygonal=TRUE)

Value

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

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

...

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

Author

Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner rolfturner@posteo.net and Ege Rubak rubak@math.aau.dk.

Details

The morphological closing (Serra, 1982) of a set \(W\) by a distance \(r > 0\) is the set of all points that cannot be separated from \(W\) by any circle of radius \(r\). That is, a point \(x\) belongs to the closing \(W*\) if it is impossible to draw any circle of radius \(r\) that has \(x\) on the inside and \(W\) on the outside. The closing \(W*\) contains the original set \(W\).

For a small radius \(r\), the closing operation has the effect of smoothing out irregularities in the boundary of \(W\). For larger radii, the closing operation smooths out concave features in the boundary. For very large radii, the closed set \(W*\) becomes more and more convex.

The algorithm applies dilation followed by erosion.

References

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

See Also

opening for the opposite operation.

dilation, erosion for the basic operations.

owin, as.owin for information about windows.

Examples

Run this code
  v <- closing(letterR, 0.25)
  plot(v, main="closing")
  plot(letterR, add=TRUE)

  plot(closing(cells, 0.1))
  points(cells)

Run the code above in your browser using DataLab