Learn R Programming

spatstat (version 1.23-1)

solutionset: Evaluate Logical Expression Involving Pixel Images and Return Region Where Expression is True

Description

Given a logical expression involving one or more pixel images, find all pixels where the expression is true, and assemble these pixels into a window.

Usage

solutionset(..., envir)

Arguments

...
An expression in the Rlanguage, involving one or more pixel images.
envir
Optional. The environment in which to evaluate the expression.

Value

  • A spatial window (object of class "owin", see owin.object).

Details

Given a logical expression involving one or more pixel images, this function will find all pixels where the expression is true, and assemble these pixels into a spatial window.

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(abs(X) > 3) will find all the pixels in X for which the pixel value is greater than 3 in absolute value, and return a window containing all these pixels.

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 find all pixels for which the pixel value of X is greater than the corresponding pixel value of Y, and return a window containing these pixels. In general, expr can be any logical expression involving (a) the names of pixel images, (b) scalar constants, and (c) functions which are vectorised. See the Examples.

The expression expr is evaluated by eval.im. The expression expr must be vectorised. There must be at least one pixel image in the expression. All images must have compatible dimensions.

See Also

im.object, owin.object, eval.im, levelset

Examples

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

  W <- solutionset(abs(X) > 0.1)
  W <- solutionset(X > Y)
  W <- solutionset(X + Y >= 1)

  area.owin(solutionset(X < Y))

Run the code above in your browser using DataLab