A thin plate spline radial basis function network may be used to interpolate non-uniformly spaced data. The surface (or line or hypersurface) is fit exactly to the given control points, with the surface in between acting similar to thin sheet of metal.
An example is given using a frame of data from the Radiohead "House of Cards" video dataset, if which the point cloud is interpolated onto a uniform grid for plotting with the surf function.
A simpler example is also included.
See blog.nutaksas.com for more details.
Travis Wiens (2020). Thin Plate Spline Network with Radiohead Example (https://www.mathworks.com/matlabcentral/fileexchange/20823-thin-plate-spline-network-with-radiohead-example), MATLAB Central File Exchange. Retrieved .
Thanks for sharing, I like the examples.
Some constructive criticism:
You should really consider vectorizing this. In Matlab, whenever possible, avoid loops.
I just got a 66 fold reduction in computation time on the Radiohead example with N_t 3000 and N_grid 250. (From 626 s to 9.45 s)
Also, it is easy to generalize TPS to m-dimensional values in an n-dimensional domain. That is what makes the method so powerful IMO.
Works very well to subtract irregular background in a noisy image. Thanks!
Very clean code
A very good example of a powerful technique. The function network may be used to generate a grid for other types of analysis.
Removed GPL per Mathworks' requirements.