薄板样条函数Thin Plate Spline

TPS薄板样条函数是一种插值算法,用于图像变形(image warping)等,通过少量控制点就可以驱动图像进行变化

我在自己的课题中要用到的是基于2D插值,图像配准。两张图像中已知有N个匹配点,应用TPS可以将N个点形变到对应位置,同时给出整个图像的插值。当前已知同名点的坐标对应关系,但是利用全局单应性无法得到有效的一一对应,因此利用TPS将两幅图像上的同名点在配准的时候进一步可能的重合

给定基准影像上L个点\LARGE _{\left \{ xi,yi \right \}}\large _{i=1}^{L} 以及他们对应的另一幅影像的同名点作为\large _{vi,i=1,2,...,L}.

即TPS插值目标就是求解函数\large f(x,y)=v,并且使得弯曲能量函数最小。我们把插值函数想象成用力去弯折一块薄钢板,使这块钢板穿过给定的L个点,弯曲这块钢板所需的力或者能量可以表示为:

可以证明TPS的插值函数就是使得这个弯曲能量最小的函数,即在保证最平滑变换的情况下使得所有的控制点都经过这个弯曲面

再定义

其中\large \phi (s)为样条函数,其中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,有点错误,第二篇较为正统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值