# solutionset

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

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.

- Keywords
- manip, spatial, programming

##### 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.

##### 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.

##### Value

- A spatial window
(object of class
`"owin"`

, see`owin.object`

).

##### See Also

##### Examples

```
# 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))
```

*Documentation reproduced from package spatstat, version 1.23-5, License: GPL (>= 2)*