spatstat (version 1.16-1)

opening: Morphological Opening


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


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)


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 the opening.
extra arguments passed to as.mask controlling the pixel resolution, if a pixel approximation is used
Logical flag indicating whether to compute a polygonal approximation to the erosion (polygonal=TRUE) or a pixel grid approximation (polygonal=FALSE).


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


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.


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.


Run this code
  v <- opening(letterR, 0.3, dimyx=256)
  plot(v, main="opening")
  plot(letterR, add=TRUE)

Run the code above in your browser using DataCamp Workspace