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 greyscale values
for a rectangular grid of pixels.
Note carefully that the entry 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)
.
To make a factor-valued image, note that
Rhas a quirky way of handling matrices with
factor-valued entries. The command matrix
cannot be used
directly, because it destroys factor information.
To make a factor-valued image, do one of the following:
- Create a
factor
containing the pixel values,
saymat <- factor(.....)
,
and then assign matrix dimensions to it bydim(mat) <- c(nr, nc)
wherenr, nc
are the numbers of rows and columns. The
resulting objectmat
is both a factor and a vector. - Supply
mat
as a one-dimensional factor
and specify the argumentsxcol
andyrow
to determine the dimensions of the image. - Use the functions
cut.im
oreval.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
.