image warping question interpolation of scattered data

Hi all,

I’m working on writing some CUDA software to remap the pixels of an image to new floating point coordinate destinations
and then interpolating between them at a grid of integer values so as to retrieve a new image which is distorted in the
way specified by the new floating point coordinate destinations. (I think this is called ‘image warping’ ?)

The problem I have is to find a good way to start, I would normally always use texture memory to interpolate in 2D, but
texture memory requires the new coordinates to be integers and this will rarely be the case…

In summary, I would like to do the same as the matlab command ‘triscatteredinterp’, but on the GPU (as the matlab command
requires about 1.5 second to complete).

Thanks for any tips,

Eluri

hi, for image warping (‘forward warping’) see the paper

“Fast GPU-based image warping and inpainting for frame interpolation” at
http://www.joanneum.at/index.php?id=63&no_cache=1&tx_publicationlibrary_pi1[showUid]=6013

or the slides at
http://www.nvidia.com/content/GTC-2010/pdfs/2029_GTC2010.pdf

‘reverse warping’ is simpler and usually done with texture lookups (bilinear interpolation is ‘for free’ with texture images)

best, hannes

Thanks for the prompt response,

I checked the information you gave me, but if I understand correctly, what that software does is to reallocate some pixels and then
‘paint’ in between the moved pixels. What I would like to do, is to reallocate all of the pixels. If I understand correctly, texture
memory interpolation doesn’t allow non-integer controle points, does it? I was hoping there would be some way around this…

Eluri