本文主要是介绍cubic convolution interpolation (三次卷积插值),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
算法来源:Cubic convolution interpolation for digital image processing
文章只对一维情形进行分析,二维类似。
许多插值函数能够写成形式(其中是插值点,u是基函数(文章中叫插值核),h是采样间隔,是参数)
通过插值,用来近似。
cubic convolution interpolation 中插值核u定义为子区间(-2,-1),(-1,0),(0,1),(1,2)上的分块三次多项式,并且在(-2,2)外为0。插值核必须是对称的(我也不知为啥),这就意味着,u有如下形式:
插值核必须有(这是基函数定义吧,为了方便计算,如果不这么定义的话,cj计算就比较麻烦)。因此有
因此,u必须满足:u(0)=1,u(1) = u(2)=0,且连续,即满足以下方程:
更进一步假设u'连续,得:
这里有七个方程,但是有八个未知量,所以至少有一个自由变量。[1]中采用。在这篇paper里面,将选择一个,使得有更高阶的近似(假设设原函数至少存在三阶连续导数)。
先假设,则,解出u为:
假设x是任意一个点,它的值将由插值得到。设,令
由于,插值函数能够被写成:
进一步,由于u在(-2,2)外为0,且0<s<1,(5)可写为:
将(4)知:
代入(6),得到:
假设在存在三阶连续导数。由泰勒公式得到(注意是大O):
类似的:
将这三个式子代入(7),得到:
由于, 将进行Taylor展开,得到:
(12) - (11)得到:
为了使得能够以更高阶地近似,则有,这就得出.这时有:
最终得到:
下面分析边界条件。可以看到前面的结果用了,但是,现实情况中采样是有限的,在边界的时候,这些值是不知道的,这就使我们必须处理好边界。
假设所有采样点位于[a,b]中且.我们要做的,就是估计和。按照前面的公式(6),的插值为:
将(15)代入,得到:
(对比的泰勒展开)要使得g是f的三阶近似,即,就必须有的系数为0.
由此得到:。接下来要验证确实有。
将
代入(18),有
将f,在各位置进行Taylor展开,得到:
代入(20)得到:
由:
两式相减,得到确实有
同样的,可以得到:
我们计算出和后,就可用插值函数对各点求插值了。
二维情形的插值函数为:
边界条件:
[1] Rifman S S. Digital rectification of ERTS multispectral imagery[J]. 1973.
这篇关于cubic convolution interpolation (三次卷积插值)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!