Learn R Programming

spatstat (version 1.55-0)

interp.im: Interpolate a Pixel Image

Description

Interpolates the values of a pixel image at any desired location in the frame.

Usage

interp.im(Z, x, y=NULL)

Arguments

Z

Pixel image (object of class "im") with numeric or integer values.

x,y

Vectors of Cartesian coordinates. Alternatively x can be a point pattern and y can be missing.

Value

Vector of interpolated values, with NA for points that lie outside the domain of the image.

Details

A value at each location (x[i],y[i]) will be interpolated using the pixel values of Z at the four surrounding pixel centres, by simple bilinear interpolation.

At the boundary (where (x[i],y[i]) is not surrounded by four pixel centres) the value at the nearest pixel is taken.

The arguments x,y can be anything acceptable to xy.coords.

Examples

Run this code
# NOT RUN {
   opa <- par(mfrow=c(1,2))
   # coarse image
   V <- as.im(function(x,y) { x^2 + y }, owin(), dimyx=10)
   plot(V, main="coarse image", col=terrain.colors(256))

   # lookup value at location (0.5,0.5)
   V[list(x=0.5,y=0.5)]
   # interpolated value at location (0.5,0.5)
   interp.im(V, 0.5, 0.5)
   # true value is 0.75

   # how to obtain an interpolated image at a desired resolution
   U <- as.im(interp.im, W=owin(), Z=V, dimyx=256)
   plot(U, main="interpolated image", col=terrain.colors(256))
   par(opa)
# }

Run the code above in your browser using DataLab