im.apply | R Documentation |
Returns a pixel image obtained by applying a function to the values of corresponding pixels in several pixel images.
im.apply(X, FUN, ..., fun.handles.na=FALSE, check=TRUE, verbose=TRUE)
X |
A list of pixel images (objects of class |
FUN |
A function that can be applied to vectors, or a character string giving the name of such a function. |
... |
Additional arguments to |
fun.handles.na |
Logical value specifying what to do when the data include
|
check |
Logical value specifying whether to check that the images in
|
verbose |
Logical value specifying whether to print informative messages. |
The argument X
should be a list of pixel images
(objects of class "im"
). If the images do not have
identical pixel grids, they will be converted to a common
grid using harmonise.im
.
At each pixel location, the values of the images in X
at that pixel will be extracted as a vector. The function
FUN
will be applied to this vector. The result (which should be
a single value) becomes the pixel value of the resulting image.
The argument fun.handles.na
specifies what to do
when some of the pixel values are NA
.
If fun.handles.na=FALSE
(the default),
the function FUN
is never applied to data that include
NA
values; the result is defined to be NA
whenever
the data contain NA
.
If fun.handles.na=TRUE
, the function FUN
will be applied to
all pixel data, including those which contain NA
values.
A pixel image (object of class "im"
).
The computation is performed efficiently
using matrix operations where possible,
by constructing a large matrix containing all the pixel data for all images.
However, if this matrix would exceed the maximum permitted size of matrices
(as given in spatstat.options("maxmatrix")
),
then the calculation is performed on smaller sub-images,
and this is reported in a message if verbose=TRUE
.
.
eval.im
for algebraic operations with images.
# list of two pixel images
Y <- solapply(bei.extra, scaletointerval)
plot(Y)
im.apply(Y, max)
im.apply(Y, sum)
## Example with incompatible patterns of NA values
B <- owin(c(438, 666), c(80, 310))
Y[[1]][B] <- NA
opa <- par(mfrow=c(2,2))
plot(Y[[1]])
plot(Y[[2]])
#' Default action: NA -> NA
plot(im.apply(Y, mean))
#' Use NA handling in mean.default
plot(im.apply(Y, mean, na.rm=TRUE, fun.handles.na=TRUE))
par(opa)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.