Interpolate a Pixel Image
Interpolates the values of a pixel image at any desired location in the frame.
interp.im(Z, x, y=NULL, bilinear=FALSE)
Z |
Pixel image (object of class |
x,y |
Vectors of Cartesian coordinates.
Alternatively |
bilinear |
Logical value specifying the choice of interpolation rule.
If |
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
.
Vector of interpolated values, with NA
for points that lie
outside the domain of the image.
Adrian Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner r.turner@auckland.ac.nz, with a contribution from an anonymous user.
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) interp.im(V, 0.5, 0.5, bilinear=TRUE) # 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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.