Revision c9b2c621c3bff55aaa77646dc1ba7316765cd7e4 authored by Adrian Baddeley on 25 April 2013, 00:00:00 UTC, committed by Gabor Csardi on 25 April 2013, 00:00:00 UTC
1 parent f86606a
erosion.Rd
\name{erosion}
\alias{erosion}
\alias{erosion.owin}
\alias{erosion.ppp}
\alias{erosion.psp}
\title{Morphological Erosion}
\description{
Perform morphological erosion of a window, a line segment pattern
or a point pattern.
}
\usage{
erosion(w, r, \dots)
\method{erosion}{owin}(w, r, shrink.frame=TRUE, \dots,
strict=FALSE, polygonal=NULL)
\method{erosion}{ppp}(w, r,\dots)
\method{erosion}{psp}(w, r,\dots)
}
\arguments{
\item{w}{
A window (object of class \code{"owin"}
or a line segment pattern (object of class \code{"psp"})
or a point pattern (object of class \code{"ppp"}).
}
\item{r}{positive number: the radius of erosion.}
\item{shrink.frame}{logical: if \code{TRUE}, erode the bounding
rectangle as well.}
\item{\dots}{extra arguments to \code{\link{as.mask}}
controlling the pixel resolution, if pixel approximation is used.}
\item{strict}{Logical flag determining the fate of boundary pixels,
if pixel approximation is used. See details.}
\item{polygonal}{
Logical flag indicating whether to compute a polygonal
approximation to the erosion (\code{polygonal=TRUE}) or
a pixel grid approximation (\code{polygonal=FALSE}).
Ignored if \code{gpclib} is disabled.
}
}
\value{
If \code{r > 0}, an object of class \code{"owin"} representing the
eroded region (or \code{NULL} if this region is empty).
If \code{r=0}, the result is identical to \code{w}.
}
\details{
The morphological erosion of a set \eqn{W} by a distance \eqn{r > 0}
is the subset
consisting of all points \eqn{x \in W}{x in W} such that the
distance from \eqn{x} to the boundary of \eqn{W} is greater than
or equal to \eqn{r}. In other words it is the result of trimming
a margin of width \eqn{r} off the set \eqn{W}.
If \code{polygonal=TRUE} then a polygonal approximation
to the erosion is computed.
If \code{polygonal=FALSE} then a pixel approximation
to the erosion is computed from the distance map of \code{w}.
The arguments \code{"\dots"} are passed to \code{\link{as.mask}}
to control the pixel resolution.
The erosion consists of all pixels whose distance
from the boundary of \code{w} is strictly greater than \code{r} (if
\code{strict=TRUE}) or is greater than or equal to \code{r} (if
\code{strict=FALSE}).
When \code{w} is a window, the default (when \code{polygonal=NULL})
is to compute a polygonal approximation if
\code{w} is a rectangle or polygonal window, and to compute a
pixel approximation if \code{w} is a window of type \code{"mask"}.
Polygonal calculations require the \code{gpclib}
package which is subject to licence restrictions.
It is enabled by \code{spatstat.options(gpclib=TRUE)}.
See \code{\link{licence.polygons}}.
If \code{shrink.frame} is false, the resulting window is given the
same outer, bounding rectangle as the original window \code{w}.
If \code{shrink.frame} is true, the original bounding rectangle
is also eroded by the same distance \code{r}.
To simply compute the area of the eroded window,
use \code{\link{eroded.areas}}.
}
\seealso{
\code{\link{dilation}} for the opposite operation.
\code{\link{owin}},
\code{\link{as.owin}},
\code{\link{eroded.areas}}
}
\examples{
w <- owin(c(0,1),c(0,1))
v <- erosion(w, 0.1)
# returns rectangle [0.1, 0.9] x [0.1,0.9]
\dontrun{
v <- erosion(w, 0.6)
# erosion is empty
}
}
\author{Adrian Baddeley
\email{Adrian.Baddeley@csiro.au}
\url{http://www.maths.uwa.edu.au/~adrian/}
and Rolf Turner
\email{r.turner@auckland.ac.nz}
}
\keyword{spatial}
\keyword{math}
Computing file changes ...