integral.im | R Documentation |
Computes the integral of a pixel image.
## S3 method for class 'im'
integral(f, domain=NULL, weight=NULL, ...)
f |
A pixel image (object of class |
domain |
Optional. Window specifying the domain of integration. Alternatively a tessellation. |
... |
Ignored. |
weight |
Optional. A pixel image (object of class |
The function integral
is generic, with methods
for spatial objects
("im"
, "msr"
, "linim"
, "linfun"
)
and one-dimensional functions ("density"
, "fv"
).
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 x
and y
returning numerical values.
Then each pixel value of f
will be multiplied by the corresponding value of weight
.
Effectively, the result is the integral of weight * f
.
A single numeric or complex value (or a vector of such values
if domain
is a tessellation).
.
integral
,
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})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.