Computes the integral of a pixel image.
integral(f, domain=NULL, ...)# S3 method for im
integral(f, domain=NULL, weight=NULL, ...)
A single numeric or complex value (or a vector of such values
if domain
is a tessellation).
A pixel image (object of class "im"
) with pixel values
that can be treated as numeric or complex values.
Optional. Window specifying the domain of integration. Alternatively a tessellation.
Ignored.
Optional. A pixel image (object of class "im"
)
or a function(x,y)
giving a numerical weight
to be applied to the integration.
Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner r.turner@auckland.ac.nz and Ege Rubak rubak@math.aau.dk.
The function integral
is generic, with methods
for "im"
, "msr"
, "linim"
and "linfun"
.
The method integral.im
treats the pixel image f
as a function of
the spatial coordinates, and computes its integral.
The integral is calculated
by summing the pixel values and multiplying by the area of one pixel.
The pixel values of f
may be numeric, integer, logical or
complex. They cannot be factor or character values.
The logical values TRUE
and FALSE
are converted to
1
and 0
respectively, so that the integral of a logical
image is the total area of the TRUE
pixels, in the same units
as unitname(x)
.
If domain
is a window (class "owin"
) then the integration
will be restricted to this window. If domain
is a tessellation
(class "tess"
) then the integral of f
in each
tile of domain
will be computed.
If weight
is given, it should be a pixel image or a function of
coordinates f
will be multiplied by the corresponding value of weight
.
Effectively, the result is the integral of weight * f
.
eval.im
,
[.im
# approximate integral of f(x,y) dx dy
f <- function(x,y){3*x^2 + 2*y}
Z <- as.im(f, square(1))
integral(Z)
# correct answer is 2
# integrate over the subset [0.1,0.9] x [0.2,0.8]
W <- owin(c(0.1,0.9), c(0.2,0.8))
integral(Z, W)
# weighted integral
integral(Z, weight=function(x,y){x})
Run the code above in your browser using DataLab