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
factorcontaining the pixel values,
saymat <- factor(.....),
and then assign matrix dimensions to it bydim(mat) <- c(nr, nc)wherenr, ncare the numbers of rows and columns. The
resulting objectmatis both a factor and a vector. - Supply
matas a one-dimensional factor
and specify the argumentsxcolandyrowto determine the dimensions of the image. - Use the functions
cut.imoreval.imto 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.