bdist.pixels | R Documentation |
Computes the distances from each pixel in a window to the boundary of the window.
bdist.pixels(w, ..., style=c("image", "matrix", "coords"), method=c("C", "interpreted"))
w |
A window (object of class |
... |
Arguments passed to |
style |
Character string (partially matched) determining the format of
the output: either |
method |
Choice of algorithm to use when |
This function computes, for each pixel u
in the
Frame containing the window w
, the shortest distance
d(u, w^c)
from u
to the complement of
w
. This value is zero for pixels lying outside w
,
and is positive for pixels inside w
.
If the window is a binary mask then the distance from each pixel
to the boundary is computed using the distance transform algorithm
distmap.owin
. The result is equivalent to
distmap(W, invert=TRUE)
.
If the window is a rectangle or a polygonal region,
the grid of pixels is determined by the arguments "\dots"
passed to as.mask
. The distance from each pixel to the
boundary is calculated exactly, using analytic geometry.
This is slower but more accurate than in the case of a binary mask.
For software testing purposes, there are two implementations
available when w
is a polygon: the default is method="C"
which is much faster than method="interpreted"
.
To compute the distance from each pixel to the bounding rectangular frame
Frame(W)
, use framedist.pixels
.
If style="image"
, a pixel image (object of class "im"
)
containing the distances from each pixel in the image raster
to the boundary of the window.
If style="matrix"
,
a matrix giving the distances.
Rows of this matrix correspond to
the y
coordinate and columns to the x
coordinate.
If style="coords"
, a list with three components
x,y,z
, where x,y
are vectors of length m,n
giving the x
and y
coordinates respectively,
and z
is an m \times n
matrix such that
z[i,j]
is the distance from (x[i],y[j])
to the
boundary of the window. Rows of this matrix correspond to the
x
coordinate and columns to the y
coordinate.
This result can be plotted with persp
, image
or contour
.
and \rolf
framedist.pixels
owin.object
,
erosion
,
bdist.points
,
bdist.tiles
,
distmap.owin
.
u <- owin(c(0,1),c(0,1))
d <- bdist.pixels(u, eps=0.01)
image(d)
d <- bdist.pixels(u, eps=0.01, style="matrix")
mean(d >= 0.1)
# value is approx (1 - 2 * 0.1)^2 = 0.64
opa <- par(mfrow=c(1,2))
plot(bdist.pixels(letterR))
plot(framedist.pixels(letterR))
par(opa)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.