Computes the distances from each pixel in a window to the boundary of the window.

`bdist.pixels(w, …, style="image", method=c("C", "interpreted"))`

w

A window (object of class `"owin"`

).

…

Arguments passed to `as.mask`

to determine
the pixel resolution.

style

Character string determining the format of
the output: either `"matrix"`

, `"coords"`

or
`"image"`

.

method

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 \(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`

.

This function computes, for each pixel \(u\)
in the window `w`

, the shortest distance
\(d(u, W^c)\) from \(u\)
to the boundary of \(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"`

.

`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 # }