2D image warping via thin-plate splines #2429

Borda opened this Issue Jan 3, 2017 · 4 comments


None yet

3 participants

Borda commented Jan 3, 2017 edited


Regarding the Requested feature and mail question Thin-plate spline interpolation
I would like to open discussion about implementing this feature...

Once I was using the scipy.interpolate.Rbf(..., function='thin-plate')
Do you think to be suitable to use it also here?

sciunto commented Jan 4, 2017

Ping @zpincus (You are mentioned in our wiki).

@sciunto sciunto added the new feature label Jan 4, 2017
sciunto commented Jan 4, 2017 edited

We need to evaluate performances. I used Rbf for other purposes and it was very slow (at least, for my application).

Borda commented Jan 4, 2017

I do not say it is fast, but on another hand it is better to have it even slow but compatible with other skimage warping methods... and later on think about the speed-up.

zpincus commented Jan 4, 2017

Here is a reasonably simple implementation of thin-plate spline image warping I wrote ten years ago or so. It follows the notation from Bookstein's original paper, if that helps.

It's not fast to define the transform, so there's an option to compute a downscaled transform and then interpolate linearly. Perhaps reimplementing in cython could speed things up, but this is at least a decent stab at a numpy-vectorized approach.

PS. If anyone wants to use this as a basis for a skimage implementation, I will be happy to relicense from GPL to whatever.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment