Morphological Dilation

Perform morphological dilation of a window, a line segment pattern or a point pattern

spatial, math
dilation(w, r, …)
 # S3 method for owin
dilation(w, r, …, polygonal=NULL, tight=TRUE)
 # S3 method for ppp
dilation(w, r, …, polygonal=TRUE, tight=TRUE)
 # S3 method for psp
dilation(w, r, …, polygonal=TRUE, tight=TRUE)

A window (object of class "owin" or a line segment pattern (object of class "psp") or a point pattern (object of class "ppp").


positive number: the radius of dilation.

extra arguments passed to as.mask controlling the pixel resolution, if the pixel approximation is used; or passed to disc if the polygonal approximation is used.


Logical flag indicating whether to compute a polygonal approximation to the dilation (polygonal=TRUE) or a pixel grid approximation (polygonal=FALSE).


Logical flag indicating whether the bounding frame of the window should be taken as the smallest rectangle enclosing the dilated region (tight=TRUE), or should be the dilation of the bounding frame of w (tight=FALSE).


The morphological dilation of a set \(W\) by a distance \(r > 0\) is the set consisting of all points lying at most \(r\) units away from \(W\). Effectively, dilation adds a margin of width \(r\) onto the set \(W\).

If polygonal=TRUE then a polygonal approximation to the dilation is computed. If polygonal=FALSE then a pixel approximation to the dilation is computed from the distance map of w. The arguments "\dots" are passed to as.mask to control the pixel resolution.

When w is a window, the default (when polygonal=NULL) is to compute a polygonal approximation if w is a rectangle or polygonal window, and to compute a pixel approximation if w is a window of type "mask".


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

See Also

erosion for the opposite operation.

dilationAny for morphological dilation using any shape.

owin, as.owin

  • dilation
  • dilation.owin
  • dilation.ppp
  • dilation.psp
  plot(dilation(redwood, 0.05))

  plot(dilation(letterR, 0.2))
  plot(letterR, add=TRUE, lwd=2, border="red")

  X <- psp(runif(10), runif(10), runif(10), runif(10), window=owin())
  plot(dilation(X, 0.1))
  plot(X, add=TRUE, col="red")

# }
Documentation reproduced from package spatstat, version 1.64-1, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.