Computes the distance from each pixel to the nearest line segment in the given line segment pattern.
# S3 method for psp
distmap(X, …, extras=TRUE, clip=FALSE)
A line segment pattern (object of class "psp"
).
Arguments passed to as.mask
to control pixel resolution.
Logical value specifying whether to compute the
additional attributes "index"
and "bdry"
described in Details.
Logical value specifying whether the resulting pixel image
should be clipped to the window of X
.
A pixel image (object of class "im"
) whose greyscale values
are the values of the distance map.
The return value has attributes "index"
and "bdry"
which are also pixel images.
The ``distance map'' of a line segment pattern \(X\) is the function
\(f\) whose value f(u)
is defined for any two-dimensional
location \(u\) as the shortest distance from \(u\) to \(X\).
This function computes the distance map of the line segment pattern X
and returns the distance map as a pixel image. The greyscale value
at a pixel \(u\) equals the distance from \(u\)
to the nearest line segment of the pattern X
.
Distances are computed using analytic geometry.
The result is a pixel image. If clip=TRUE
(the default), the
pixel values are defined only inside the original window of X
,
and are NA
outside this window.
If clip=FALSE
, the pixel values are defined at every pixel in
Frame(X)
. Computation is faster when clip=FALSE
.
Additionally, if extras=TRUE
, the return value
has two attributes, "index"
and "bdry"
, which are
also pixel images. The grey values in "bdry"
give the
distance from each pixel to the bounding rectangle of the image.
The grey values in "index"
are integers identifying which
line segment of X
is closest.
Computation is faster when extras=FALSE
.
This is a method for the generic function distmap
.
Note that this function gives the exact distance from the
centre of each pixel to the nearest line segment.
To compute the exact distance from the points in a point pattern
to the nearest line segment, use distfun
or one of the
low-level functions nncross
or project2segment
.
distmap
,
distmap.owin
,
distmap.ppp
,
distfun
,
nncross
,
nearestsegment
,
project2segment
.
# NOT RUN {
a <- psp(runif(20),runif(20),runif(20),runif(20), window=owin())
Z <- distmap(a)
plot(Z)
plot(a, add=TRUE)
# }
Run the code above in your browser using DataLab