Extract Subset of Image
Extract a subset or subregion of a pixel image.
## S3 method for class 'im': [(x, i, drop=TRUE, \dots)
- A two-dimensional pixel image.
An object of class
- Object defining the subregion or subset to be extracted.
Either a spatial window (an object of class
"owin") or a point pattern (an object of class
- Logical value.
wthat lie outside the spatial domain of the image
Xreturn a pixel value of
drop=FALSE, and are omitted if
This function extracts a subset of the pixel values in a
pixel image. (To reassign the pixel values, see
X must be an object of class
"im" representing a pixel image defined inside a
rectangle in two-dimensional space (see
The subset to be extracted is determined by the argument
i is a spatial window (an object of class
the values of the image inside this window are extracted
(after first clipping the window to the spatial domain of the image
if necessary). If
i is a point pattern (an object of class
"ppp"), then the values of the pixel image at the points of
this pattern are extracted.
At locations outside the spatial domain of the image,
the pixel value is undefined, and is taken to be
The logical argument
drop determines whether such
values will be returned or omitted.
It also influences the format of the return value.
i is a point pattern,
X[i, drop=FALSE] is a numeric vector
containing the pixel values at each of the points of the pattern.
Its length is equal to the number of points in the pattern
It may contain
NAs corresponding to points which lie outside
the spatial domain of the image
X[i, drop=TRUE] contains only those
pixel values which are not
NA. It may be shorter.
i is a spatial window
X[i, drop=FALSE] is another pixel image
of the same dimensions as
X obtained by
setting all pixels outside the window
i to have value
NA. When the result is displayed by
plot.im the effect
is that the pixel image
X is clipped to the window
i is a spatial window which is not a rectangle
i$type != "rectangle") then
is a numeric vector containing the pixel values for all pixels
that lie inside the window
i is a rectangle (a spatial window
i$type = "rectangle") then
is a pixel image. The spatial domain of this image is the
i with the spatial domain of
- Either a pixel image or a vector of pixel values. See Details.
# make up an image X <- setcov(unit.square()) plot(X) # a rectangular subset W <- owin(c(0,0.5),c(0.2,0.8)) Y <- X[W] plot(Y) # a polygonal subset data(letterR) R <- affine(letterR, diag(c(1,1)/2), c(-2,-0.7)) Y <- X[R, drop=FALSE] plot(Y) # a point pattern P <- rpoispp(20) Y <- X[P]