逆双线性插值(任意四边形中的插值) | 您所在的位置:网站首页 › 双线性变换是一种分段线性变换 › 逆双线性插值(任意四边形中的插值) |
前面介绍了在二维矩形区域进行插值的双线性插值,如果要在一个任意四边形中进行插值,可以用逆双线性插值(Inverse Bilinear Interpolation)。 虽然叫逆双线性插值,其实思路和双线性插值是一样的: 首先由A点和B点的值插值得到P点的值: 然后由D点和C点的值插值得到Q点的值: 最后由P点和Q点的值插值得到X点的值: 因此有 其中u和v为相应的插值系数,只要得到u和v,就可以得到f(X)。求两个未知数需要两个方程,X点的坐标(x,y)分别满足
方便起见,我们定义向量 则通过方程(1)得到 代入方程(2)得 这是一个一元二次方程,其各阶系数为: 当X在四边形ABCD内部时, 然后从两个解中选取在[0,1]区间内的v值,再根据v计算出u,最终求出f(X)。 注意当AB和CD平行时,G=0,从而k2=0,方程退化为线性方程 从而v=-k0/k1。 参考文章中有代码可以借鉴。
参考文章: inverse bilinear interpolation http://www.iquilezles.org/www/articles/ibilinear/ibilinear.htm Quadrilateral Interpolation, Part 2 http://reedbeta.com/blog/quadrilateral-interpolation-part-2/#inversion 纹理四边形插值2--逆双线性插值(InvBilinear Interpolation) https://gameinstitute.qq.com/community/detail/121581
|
CopyRight 2018-2019 实验室设备网 版权所有 |