Learn R Programming

spatstat (version 1.48-0)

rotmean: Rotational Average of a Pixel Image

Description

Compute the average pixel value over all rotations of the image about the origin, as a function of distance from the origin.

Usage

rotmean(X, ..., origin, padzero=TRUE, Xname, result=c("fv", "im"))

Arguments

X
A pixel image.
...
Ignored.
origin
Optional. Origin about which the rotations should be performed. Either a numeric vector or a character string as described in the help for shift.owin.
padzero
Logical. If TRUE (the default), the value of X is assumed to be zero outside the window of X. If FALSE, the value of X is taken to be undefined outside the window of X.
Xname
Optional name for X to be used in the function labels.
result
Character string specifying the kind of result required: either a function object or a pixel image.

Value

An object of class "fv" or "im".

Details

This command computes, for each possible distance $r$, the average pixel value of the pixels lying at distance $r$ from the origin. Kernel smoothing is used to obtain a smooth function of $r$.

If result="fv" (the default) the result is a function object of class "fv" giving the mean pixel value of X as a function of distance from the origin.

If result="im" the result is a pixel image, with the same dimensions as X, giving the mean value of X over all pixels lying at the same distance from the origin as the current pixel.

If padzero=TRUE (the default), the value of X is assumed to be zero outside the window of X. The rotational mean at a given distance $r$ is the average value of the image X over the entire circle of radius $r$, including zero values outside the window if the circle lies partly outside the window. If padzero=FALSE, the value of X is taken to be undefined outside the window of X. The rotational mean is the average of the X values over the subset of the circle of radius $r$ that lies entirely inside the window.

Examples

Run this code
  if(interactive()) {
    Z <- setcov(square(1))
    plot(rotmean(Z))
    plot(rotmean(Z, result="im"))
  } else {
    Z <- setcov(square(1), dimyx=32)
    f <- rotmean(Z)
  }

Run the code above in your browser using DataLab