Reset Values in Subset of Image

Reset the values in a subset of a pixel image.

manip, spatial
## S3 method for class '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 th
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.

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):

  1. iis a spatial object such as a window, a pixel image with logical values, or a point pattern; or
  2. i,jare indices for the matrixas.matrix(x); or
  3. ican be converted to a point pattern byas.ppp(i, W=as.owin(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=as.owin(x)). Again the values of the pixel image at the points of this pattern are changed.


  • The image x with 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 data.frame or to a point pattern.

See Also

im.object, [.im, [, ppp.object, as.ppp, owin.object

  • [<
# make up an image
 X <- setcov(unit.square())

 # a rectangular subset
 W <- owin(c(0,0.5),c(0.2,0.8))
 X[W] <- 2

 # a polygonal subset
 R <- affine(letterR, diag(c(1,1)/2), c(-2,-0.7))
 X[R] <- 3

 # a point pattern
 P <- rpoispp(20)
 X[P] <- 10

 # 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

 # matrix indexing using double indices
 X[1:257,1:10] <- 5

 # matrix indexing using a matrix of indices
 X[cbind(1:257,1:257)] <- 10
 X[cbind(257:1,1:257)] <- 10
Documentation reproduced from package spatstat, version 1.34-1, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.