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.