# im

##### Create a Pixel Image Object

Creates an object of
class `"im"`

representing a two-dimensional pixel image.

##### Usage

```
im(mat, xcol=seq(ncol(mat)), yrow=seq(nrow(mat)), lev=levels(mat),
unitname=NULL)
```

##### Arguments

- mat
- matrix or vector containing the pixel values of the image.
- xcol
- vector of $x$ coordinates for the pixel gid
- yrow
- vector of $y$ coordinates for the pixel grid
- lev
- possible factor levels, if
`mat`

should be interpreted as a factor. - unitname
- Optional. Name of unit of length. Either a single character string, or a vector of two character strings giving the singular and plural forms, respectively.

##### Details

This function creates an object of class `"im"`

representing
a two-dimensional pixel image. See `im.object`

for details of this class.

The matrix `mat`

contains the `mat[i,j]`

gives the pixel value at the location `(xcol[j],yrow[i])`

.
That is, the **row** index of the matrix `mat`

corresponds
to increasing **y** coordinate, while the column index of `mat`

corresponds to increasing **x** coordinate.
Thus `yrow`

has one entry for each row of `mat`

and `xcol`

has one entry for each column of `mat`

.
Under the usual convention in R, a correct
display of the image would be obtained by transposing the matrix, e.g.
`image.default(xcol, yrow, t(mat))`

, if you wanted to do it by hand.

The entries of `mat`

may be numeric (real or integer), complex,
logical, character, or factor values.
If `mat`

is not a matrix, it will be converted into
a matrix with `nrow(mat) = length(yrow)`

and
`ncol(mat) = length(xcol)`

.

Rdoes not allow a matrix to have
factor-valued entries. So to make a factor-valued image from raw data,
you must supply `mat`

as a factor vector and specify the arguments
`xcol`

and `yrow`

to determine the dimensions of the image.
See the examples. (Alternatively you can use the functions
`cut.im`

or `eval.im`

to make factor-valued
images from other images).

For a description of the methods available for pixel image objects,
see `im.object`

.

To convert other kinds of data to a pixel image (for example,
functions or windows), use `as.im`

.

##### Warnings

The internal representation of images is likely to change in future
releases of `as.matrix.im`

or `[.im`

.

##### See Also

##### Examples

```
vec <- rnorm(1200)
mat <- matrix(vec, nrow=30, ncol=40)
whitenoise <- im(mat)
whitenoise <- im(mat, xcol=seq(0,1,length=40), yrow=seq(0,1,length=30))
whitenoise <- im(vec, xcol=seq(0,1,length=40), yrow=seq(0,1,length=30))
plot(whitenoise)
# FACTOR-VALUED IMAGES:
cutvec <- cut(mat, 3)
# although mat was a matrix, cutvec is a vector, with factor values
cutwhite <- im(cutvec, xcol=seq(0,1,length=40), yrow=seq(0,1,length=30))
# cutwhite is a factor-valued image
plot(cutwhite)
```

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