Learn R Programming

spatstat (version 1.56-1)

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)

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

Value

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

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
# NOT RUN {
  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