
Reset the values in a subset of a pixel image.
# S3 method for im
[(x, i, j) <- value
A two-dimensional pixel image.
An object of class "im"
.
Object defining the subregion or subset to be replaced.
Either a spatial window (an object of class "owin"
), or a
pixel image with logical values, or a point pattern (an object
of class "ppp"
), or any type of index that applies to a
matrix, or something that can be converted to a point pattern
by as.ppp
(using the window of x
).
An integer or logical vector serving as the column index
if matrix indexing is being used. Ignored if i
is
appropriate to some sort of replacement other than
matrix indexing.
Vector, matrix, factor or pixel image containing the replacement values. Short vectors will be recycled.
The image x
with the values replaced.
If you have a 2-column matrix containing the data.frame
or to a point pattern.
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):
i
is a spatial object such as a window,
a pixel image with logical values, or a point pattern; or
i,j
are indices for the matrix as.matrix(x)
; or
i
can be converted to a point pattern
by as.ppp(i, W=Window(x))
,
and i
is 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.
# NOT RUN {
# 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
data(letterR)
R <- affine(letterR, diag(c(1,1)/2), c(-2,-0.7))
X[R] <- 3
plot(X)
# a point pattern
P <- rpoispp(20)
X[P] <- 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)
# }
Run the code above in your browser using DataLab