\name{Image} \alias{Image} \alias{Image-class} \alias{Grayscale} \alias{TrueColor} \alias{Color} \alias{is.Image} \alias{as.Image} \alias{print.Image} \alias{median.Image} \alias{quantile.Image} \alias{colorMode} \alias{colorMode<-} \alias{getNumberOfFrames} \alias{imageData} \alias{imageData<-} \alias{colormode} \alias{Ops,Image,Image-method} \alias{Ops,numeric,Image-method} \alias{Ops,Image,numeric-method} \alias{[,Image,ANY,ANY,ANY-method} \alias{[,Image-method} \alias{show,Image-method} \alias{image,Image-method} \alias{hist,Image-method} \title{Image class} \description{ The package \code{EBImage} uses the class \code{Image} to store and process images. Images are stored as multi-dimensional arrays containing the pixel intensities. The class \code{Image} extends the base class \code{array} and uses the \code{colormode} slot to store how the color information of the multi-dimensional data is handled. The \code{colormode} slot could be either \code{Grayscale} or \code{Color}. In both modes, the two first dimensions of the underlying array are understood to be the spatial dimensions of the image. In the \code{Grayscale} mode, the remaining dimensions contain other images. In the the \code{Color} mode, the third dimension contains the red, green and blue channels of the image and the remaining dimensions contain other images. The color mode \code{TrueColor} exists but is deprecated. All methods of the package \code{EBImage} works either with \code{Image} objects or multi-dimensional arrays but in the latter case, the color mode is assumed to be \code{Grayscale}. } \usage{ Image(data, dim, colormode) as.Image(x) is.Image(x) colorMode(y) colorMode(y) <- value imageData(y) imageData(y) <- value getNumberOfFrames(y, type='total') } \arguments{ \item{data}{A vector or array containing the pixel intensities of an image. If missing, a default 1x1 null array is used.} \item{dim}{A vector containing the final dimensions of an \code{Image} object. If missing, equals to \code{dim(data)}.} \item{colormode}{A numeric or a character string containing the color mode which could be either \code{Grayscale} or \code{Color}. If missing, equals to \code{Grayscale}.} \item{x}{An R object.} \item{y}{An \code{Image} object or an array.} \item{value}{For \code{colorMode}, a numeric or a character string containing the color mode which could be either \code{Grayscale} or \code{Color}. For \code{imageData}, an \code{Image} object or an array.} \item{type}{A character string containing \code{total} or \code{render}. If missing, equals to \code{total}.} } \value{ \code{Image} and \code{as.Image} return a new \code{Image} object. \code{is.Image} returns TRUE if \code{x} is an \code{Image} object and FALSE otherwise. \code{colorMode} returns the color mode of \code{y} and \code{colorMode<-} changes the color mode of \code{y}. \code{imageData} returns the array contained in an \code{Image} object. } \details{ Depending of \code{type}, \code{getNumberOfFrames} returns the total number of frames contained in the object \code{y} or the number of renderable frames. The total number of frames is independent of the color mode and is equal to the product of all the dimensions except the two first ones. The number of renderable frames is equal to the total number of frames in the \code{Grayscale} color mode and is equal to the product of all the dimensions except the three first ones in the \code{Color} color mode. } \seealso{ \code{\link{readImage}}, \code{\link{display}} } \author{ Oleg Sklyar, \email{osklyar@ebi.ac.uk}, 2005-2007 } \examples{ s1 = exp(12i*pi*seq(-1, 1, length=300)^2) y = Image(outer(Im(s1), Re(s1))) if (interactive()) display(normalize(y)) x = Image(rnorm(300*300*3),dim=c(300,300,3), colormode='Color') if (interactive()) display(x) w = matrix(seq(0, 1, len=300), nc=300, nr=300) m = abind(w, t(w), along=3) z = Image(m, colormode='Color') if (interactive()) display(normalize(z)) y = Image(c('red', 'violet', '#ff51a5', 'yellow'), dim=c(71, 71)) if (interactive()) display(y) ## colorMode example x = readImage(system.file('images', 'nuclei.tif', package='EBImage')) x = x[,,1:3] if (interactive()) display(x, title='Cell nuclei') colorMode(x)=Color if (interactive()) display(x, title='Cell nuclei in RGB') }