TPS薄板样条函数是一种插值算法,用于图像变形(image warping)等,通过少量控制点就可以驱动图像进行变化
我在自己的课题中要用到的是基于2D插值,图像配准。两张图像中已知有N个匹配点,应用TPS可以将N个点形变到对应位置,同时给出整个图像的插值。当前已知同名点的坐标对应关系,但是利用全局单应性无法得到有效的一一对应,因此利用TPS将两幅图像上的同名点在配准的时候进一步可能的重合
给定基准影像上L个点 以及他们对应的另一幅影像的同名点作为.
即TPS插值目标就是求解函数,并且使得弯曲能量函数最小。我们把插值函数想象成用力去弯折一块薄钢板,使这块钢板穿过给定的L个点,弯曲这块钢板所需的力或者能量可以表示为:
可以证明TPS的插值函数就是使得这个弯曲能量最小的函数,即在保证最平滑变换的情况下使得所有的控制点都经过这个弯曲面
再定义
其中为样条函数,其中s为各个点之间的2-范数,即距离
phi(s)=s*s*log(s)
TPS插值函数有L+3个参数,而已知条件只有L个,因此需要添加三个约束条件,再求解
三个约束项,即可用于求解
将各个点的x分量和y分量分开求解,其中S为L*L矩阵,Q为L*3矩阵,O为3*3的零矩阵,u,v分别为对应同名点的x,y坐标值
求x对应的插值系数时,a矩阵有3个解,相应的求y的插值系数时,也有3个解,这6个自由度代表了控制点的仿射变换
即f(x,y)=仿射变换+delt(d)来实现整一个TPS变换
最后利用这L+3个解,就能求出新的TPS插值坐标点,即用来替换当前已知的非基准影像上的同名点
注意:这里的控制点必须是参考影像的控制点
文献:https://blog.csdn.net/kill201115/article/details/77575074
https://elonen.iki.fi/code/tpsdemo/
http://blog.sina.com.cn/s/blog_8f27ff8d0101qrii.html
第一篇博客里面的插值函数a系数矩阵少了x,y,有点错误,第二篇较为正统