| Replace.im {spatstat.geom} | R Documentation |
Reset Values in Subset of Image
Description
Reset the values in a subset of a pixel image.
Usage
## S3 replacement method for class 'im'
x[i, j, ..., drop=TRUE] <- value
Arguments
x |
A two-dimensional pixel image.
An object of class |
i |
Object defining the subregion or subset to be replaced.
Either a spatial window (an object of class |
j |
An integer or logical vector serving as the column index
if matrix indexing is being used. Ignored if |
... |
Ignored. |
drop |
Logical value specifying what happens when |
value |
Vector, matrix, factor or pixel image containing the replacement values. Short vectors will be recycled. |
Details
This function changes some of the pixel values in a
pixel image. The image x must be an object of class
"im" representing a pixel image defined inside a
rectangle in two-dimensional space (see im.object).
The subset to be changed is determined by the arguments i,j
according to the following rules (which are checked in this order):
-
iis a spatial object such as a window, a pixel image with logical values, or a point pattern; or -
i,jare indices for the matrixas.matrix(x); or -
ican be converted to a point pattern byas.ppp(i, W=Window(x)), andiis not a matrix.
If i is a spatial window (an object of class "owin"),
the values of the image inside this window are changed.
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 changed.
If i does not satisfy any of the conditions above, then
the algorithm tries to interpret i,j as indices for the matrix
as.matrix(x). Either i or j may be missing or blank.
If none of the conditions above are met, and if i is not
a matrix, then i is converted into a point pattern
by as.ppp(i, W=Window(x)).
Again the values of the pixel image at the points of
this pattern are changed.
If i and j are both missing, as in the call
x[] <- value, then all pixel values in x
are replaced by value:
-
If
drop=TRUE(the default), then this replacement applies only to pixels whose values are currently defined (i.e. where the current pixel value is notNA). Ifvalueis a vector, then its length must equal the number of pixels whose values are currently defined. -
If
drop=FALSEthen the replacement applies to all pixels inside the rectangleFrame(x). Ifvalueis a vector, then its length must equal the number of pixels in the entire rectangle.
Value
The image x with the values replaced.
Warning
If you have a 2-column matrix containing the x,y coordinates
of point locations, then to prevent this being interpreted as an
array index, you should convert it to a data.frame
or to a point pattern.
Author(s)
Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner rolfturner@posteo.net and Ege Rubak rubak@math.aau.dk.
See Also
im.object,
[.im,
[,
ppp.object,
as.ppp,
owin.object
Examples
# make up an image
X <- setcov(unit.square())
plot(X)
# a rectangular subset
W <- owin(c(0,0.5),c(0.2,0.8))
X[W] <- 2
plot(X)
# a polygonal subset
R <- affine(letterR, diag(c(1,1)/2), c(-2,-0.7))
X[R] <- 3
plot(X)
# a point pattern
X[cells] <- 10
plot(X)
# change pixel value at a specific location
X[list(x=0.1,y=0.2)] <- 7
# matrix indexing --- single vector index
X[1:2570] <- 10
plot(X)
# matrix indexing using double indices
X[1:257,1:10] <- 5
plot(X)
# matrix indexing using a matrix of indices
X[cbind(1:257,1:257)] <- 10
X[cbind(257:1,1:257)] <- 10
plot(X)
# Blank indices
Y <- as.im(letterR)
plot(Y)
Y[] <- 42 # replace values only inside the window 'R'
plot(Y)
Y[drop=FALSE] <- 7 # replace all values in the rectangle
plot(Y)
Z <- as.im(letterR)
Z[] <- raster.x(Z, drop=TRUE) # excludes NA
plot(Z)
Z[drop=FALSE] <- raster.y(Z, drop=FALSE) # includes NA
plot(Z)