
Computes the distances from each pixel in a window to the boundary of the window.
bdist.pixels(w, …, style="image", method=c("C", "interpreted"))
A window (object of class "owin"
).
Arguments passed to as.mask
to determine
the pixel resolution.
Character string determining the format of
the output: either "matrix"
, "coords"
or
"image"
.
Choice of algorithm to use when w
is polygonal.
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 from each pixel in the image raster
to the boundary of the window. Rows of this matrix correspond to
the
If style="coords"
, a list with three components
x,y,z
, where x,y
are vectors of length z
is an z[i,j]
is the distance from (x[i],y[j])
to the
boundary of the window. Rows of this matrix correspond to the
persp
, image
or contour
.
This function computes, for each pixel w
, the shortest distance
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"
.
owin.object
,
erosion
,
bdist.points
,
bdist.tiles
,
distmap.owin
.
# NOT RUN {
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
# }
Run the code above in your browser using DataLab