Reset Values in Subset of Image
Reset the values in a subset of a pixel image.
## S3 method for class 'im': [(x, i, j) <- value
- A two-dimensional pixel image.
An object of class
- 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 th
- An integer or logical vector serving as the column index
if matrix indexing is being used. Ignored if
iis 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.
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
The subset to be changed is determined by the arguments
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 matrix
ican be converted to a point pattern by
as.ppp(i, W=as.owin(x)), and
iis not a matrix.
i is a spatial window (an object of class
the values of the image inside this window are changed.
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.
i does not satisfy any of the conditions above, then
the algorithm tries to interpret
i,j as indices for the matrix
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
Again the values of the pixel image at the points of
this pattern are changed.
- The image
xwith the values replaced.
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
or to a point pattern.
# 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)