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

1
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.

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.

Value

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

Author(s)

\adrian \rolf

and \ege

Examples

1
2
3
4
5
6
7
8
  if(interactive()) {
    Z <- setcov(square(1))
    plot(rotmean(Z))
    plot(rotmean(Z, result="im"))
  } else {
    Z <- setcov(square(1), dimyx=32)
    f <- rotmean(Z)
  }

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.