R: Evaluate Expression Involving Pixel Images

eval.im {spatstat.geom} | R Documentation

## Evaluate Expression Involving Pixel Images

### Description

Evaluates any expression involving one or more pixel images, and returns a pixel image.

### Usage

      eval.im(expr, envir, harmonize=TRUE, warn=TRUE)

### Arguments

`expr` | An expression.
`envir` | Optional. The environment in which to evaluate the expression, or a named list containing pixel images to be used in the expression.
`harmonize` | Logical. Whether to resolve inconsistencies between the pixel grids.
`warn` | Logical. Whether to issue a warning if the pixel grids were inconsistent.

### Details

This function is a wrapper to make it easier to perform pixel-by-pixel calculations in an image.

Pixel images in spatstat are represented by objects of class `"im"` (see `im.object`). These are essentially matrices of pixel values, with extra attributes recording the pixel dimensions, etc.

Suppose `X` is a pixel image. Then `eval.im(X+3)` will add 3 to the value of every pixel in `X`, and return the resulting pixel image.

Suppose `X` and `Y` are two pixel images with compatible dimensions: they have the same number of pixels, the same physical size of pixels, and the same bounding box. Then `eval.im(X + Y)` will add the corresponding pixel values in `X` and `Y`, and return the resulting pixel image.

In general, `expr` can be any expression in the R language involving (a) the names of pixel images, (b) scalar constants, and (c) functions which are vectorised. See the Examples.

First `eval.im` determines which of the variable names in the expression `expr` refer to pixel images. Each such name is replaced by a matrix containing the pixel values. The expression is then evaluated. The result should be a matrix; it is taken as the matrix of pixel values.

The expression `expr` must be vectorised. There must be at least one pixel image in the expression.

All images must have compatible dimensions. If `harmonize=FALSE`, images that are incompatible will cause an error. If `harmonize=TRUE`, images that have incompatible dimensions will be resampled so that they are compatible; if `warn=TRUE`, a warning will be issued.

### Value

An image object of class `"im"`.

### Author(s)

Adrian Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner r.turner@auckland.ac.nz

### See Also

`im.apply` for operations similar to `apply`, such as taking the sum of a list of images.

`as.im`, `compatible.im`, `harmonise.im`, `im.object`

### Examples

      # test images
      X <- as.im(function(x,y) { x^2 - y^2 }, unit.square())
      Y <- as.im(function(x,y) { 3 * x + y }, unit.square())

      eval.im(X + 3)
      eval.im(X - Y)
      eval.im(abs(X - Y))
      Z <- eval.im(sin(X * pi) + Y)

      ## Use of 'envir': bei.extra is a list with components 'elev' and 'grad'
      W <- eval.im(atan(grad) * 180/pi, bei.extra)

[Package spatstat.geom version 2.2-0 Index]