转自:http://www.cnblogs.com/yingying0907/archive/2012/11/21/2780092.html

內插是数学领域数值分析中的通过已知的离散数据求未知数据的过程或方法。

根据若干离散的数据数据,得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合。这个过程叫做拟合。內插是曲线必须通过已知点的拟合。

1.线性插值

已知坐标 (x0, y0) 与 (x1, y1),要得到 [x0, x1] 区间内某一位置 x 在直线上的值。

由于 x 值已知,所以可以从公式得到 y 的值

已知 y 求 x 的过程与以上过程相同,只是 x 与 y 要进行交换。

例如,

原来的数值序列:0,10,20,30,40 
线性插值一次为:0,5,10,15,20,25,30,35,40 
即认为其变化(增减)是线形的,可以在坐标图上画出一条直线 。

线性插值经常用于补充表格中的间隔部分。

两值之间的线性插值基本运算在计算机图形学中的应用非常普遍,以至于在计算机图形学领域的行话中人们将它称为 lerp。所有当今计算机图形处理器的硬件中都集成了线性插值运算,并且经常用来组成更为复杂的运算:例如,可以通过三步线性插值完成一次双线性插值运算。由于这种运算成本较低,所以对于没有足够数量条目的光滑函数来说,它是实现精确快速查找表的一种非常好的方法。

在一些要求较高的场合,线性插值经常无法满足要求。在这种场合,可以使用多项式插值或者样条插值来代替。

线性插值可以扩展到有两个变量的函数的双线性插值。双线性插值经常作为一种粗略的抗混叠滤波器使用,三线性插值用于三个变量的函数的插值。线性插值的其它扩展形势可以用于三角形与四面体等其它类型的网格运算。

2.双线性插值

在地球物理中,会经常用到双线性插值(Bilinear interpolation)。比如,模拟生成的地表均匀网格上的速度场或者同震位移场。要与GPS观测点上的观测同震位移场进行比较。就必须将均匀网格点的值插值到GPS太站上。这就需要用到双线性插值。

双线性插值

In mathematics, bilinear interpolation is an extension of linear interpolation for interpolating functions of two variables(e.g, x andy) on a regular grid. The interpolated function should not use the term of x2 or y2, but xy, which is the bilinear form of x and y.

其核心思想是在两个方向分别进行一次线性插值

Thekey idea is to perform linear interpolation first in one direction, and then again in the other direction.Although each step is linear in the sampled values and in the position, the interpolation as a whole is not linear but rather quadratic in the sample location (details below).

红色的数据点与待插值得到的绿色点

假如我们想得到未知函数 f 在点 P = (x, y) 的值,假设我们已知函数 f 在 Q11 = (x1, y1)、Q12 = (x1, y2), Q21 = (x2, y1) 以及 Q22 = (x2, y2) 四个点的值。

首先在 x 方向进行线性插值,得到

然后在 y 方向进行线性插值,得到

这样就得到所要的结果 f(x, y),

如果选择一个坐标系统使得 f 的四个已知点坐标分别为 (0, 0)、(0, 1)、(1, 0) 和 (1, 1),那么插值公式就可以化简为

或者用矩阵运算表示为

与这种插值方法名称不同的是,这种插值方法并不是线性的,它的形式是

它是两个线性函数的乘积。看到了吧,双线性插值并不是线性。

Contrary to what the name suggests, the bilinear interpolant is not linear

另外,插值也可以表示为

对于单位正方形,

在这两种情况下,常数的数目都对应于给定的 f 的数据点数目。

线性插值的结果与插值的顺序无关。首先进行 y 方向的插值,然后进行 x 方向的插值,所得到的结果是一样的。

双线性插值的一个显然的三维空间延伸是三线性插值

3.三线性插值

  三线性插值是在三维离散采样数据的张量积网格上进行线性插值的方法。这个张量积网格可能在每一维度上都有任意不重叠的网格点,但并不是三角化的有限元分析网格。这种方法通过网格上数据点在局部的矩形棱柱上线性地近似计算点 (x,y,z) 的值。

  • 三线性插值在一次n=1三维D=3(双线性插值的维数:D=2,线性插值:D=1)的参数空间中进行运算,这样需要(1 + n)D = 8个与所需插值点相邻的数据点。
  • 三线性插值等同于三维张量的一阶B样条插值。
  • 三线性插值运算是三个线性插值运算的张量积。

  实例

  在一个步距为1的周期性立方网格上,取xd,yd,zd 为待计算点,距离小于 x,y,z, 的最大整数的差值,即,

  

  

  

  首先沿着z轴插值,得到:

  

  

  

  

  然后,沿着y轴插值,得到:

  w1 = i1(1 − yd) + i2yd

  w2 = j1(1 − yd) + j2yd

  最后,沿着x轴插值,得到:

  IV = w1(1 − xd) + w2xd
  这样就得到该点的预测值。

  三线性插值的结果与插值计算的顺序没有关系,也就是说,按照另外一种维数顺序进行插值,例如沿着 x、 y、z 顺序插值将会得到同样的结果。这也与张量积的交换律完全一致。

参考链接:线性插值法,双线性插值,三线性插值

转载于:https://www.cnblogs.com/rongfangliu/p/5399282.html

[转]线性插值双线性插值三线性插值相关推荐

  1. 双线性插值与三线性插值

    双线性插值:原图像中4个像素点灰度值计算得到新图像中1个像素点灰度值.(双:两个维度进行计算) 三线性插值:原图像中8个像素点灰度值计算得到新图像中1个像素点灰度值.(三:三个维度进行计算) 双三次插 ...

  2. 图形学笔记(八)着色2 —— 纹理映射、重心坐标、双线性插值、Mipmap、三线性插值、各向异性过滤、纹理的应用(环境贴图、法线贴图等)

    图形学笔记(七)着色 -- Blinn-Phone 反射模型.着色频率.渲染管线.GPU 图形学笔记(九)几何 --几何表示方法(CSG.距离函数.水平集 .点云.网格(obj格式)).贝塞尔曲线(面 ...

  3. 三线性插值(Trilinear Interpolation)详解

    x0表示在x下方一个方格点,x1表示在x上方的一个方格点,对于y0.y1.z0.z1是同样的意思. xd.yd.zd表示x.y.z在较小相关坐标的差值(这是维基百科中的解释,我认为他相当于是一个权值) ...

  4. 三线性插值(三维线性插值)

    三线性插值(trilinear interpolation)主要是用于在一个3D的立方体中,通过给定顶点的数值然后计算立方体中其他点的数值的线性插值方法. 具体推导过程见参考资料1,这里直接给出最终公 ...

  5. 线性插值, 双线性插值讲解

    1 线性插值(Linear Interpolation): 原理:已知一组(x, y)数据点,如[(x0, y0), (x1, y1), ......, (xn, yn)],通过在每一对点之间建立直线 ...

  6. python时间序列进行线性插值_Python实现线性插值和三次样条插值

    (1).函数 y = sin(x) (2).数据准备 #数据准备 X=np.arange(-np.pi,np.pi,1) #定义样本点X,从-pi到pi每次间隔1 Y= np.sin(X)#定义样本点 ...

  7. 线性插值与矢量线性插值动画_看完这篇文章,不要再说不懂动画了

    动画是WebGL的心脏.正是因为有了动画,一个静态的WebGL场景才会变成栩栩如生的真实体验,让场景更加生动形象.WebGL并没有太多预置制作动画的方法,然而Three.js拥有一些非常专业的动画库弥 ...

  8. 图像的down-samplig 和up-sampling

    图像的down-samplig 和up-sampling 一 down-samplig 和up-sampling 介绍 二 图像语义分割中的上采样(subsampling)和下采样(Upsamplin ...

  9. 线性插值(双线性)(三线性)

    转自:http://www.legalsoft.com.cn/docs/docs/17/267.html 当你做纹理映射的时候,是否经常会注意到屏幕上显示出的那些明显锯齿,而且你用的纹理像素化得太明显 ...

  10. 直观理解线性插值(linear interpolation)和双线性插值(Bilinear interpolation)

    这里面主要介绍了线性插值和双线性插值的思想和过程,根据文中介绍的思路,方便大家理解. 线性插值(linear interpolation) 如下图有A,B两点,A(x0,y0),B(x1,y1).在A ...

最新文章

  1. 样本不平衡不均衡数据处理
  2. 如何为“选择”框创建占位符?
  3. Matlab之if-else-end分枝语句
  4. 模拟一:STEMA 考试选择题模拟练习试卷(初级组)及答案 + 自我解题笔记
  5. Requests库实战(一)---网页采集器
  6. 对unicode数据进行部分replace
  7. expdp导出 schema_[转载]导入导出:impdpexpdp
  8. BUG(0):用某位表示特定属性
  9. 【经验】聊自己非计算机专业做程序员的经验
  10. 微信小程序入门9-微信开放平台unionId机制介绍
  11. 基于51单片机的12864液晶显示4X4矩阵键盘程序仿真
  12. 松下服务器显示18号报警,松下伺服报警代码预览表
  13. Excel复制单元格样式
  14. python计算身份证最后一位数字代表什么_一个计算身份证号码校验位的Python小程序...
  15. neo4j springboot 日志_springBoot 与neo4j的简单整合示例
  16. K8S多节点二进制部署
  17. Oracle 分组数据
  18. 艾伟:一个让人遗忘的角落—Exception(二)
  19. 华米科技的2S+OS时代
  20. windows 7 x64 下的 System Call

热门文章

  1. Linux 卸载及删除磁盘分区
  2. 我了解的软件测试基本概念
  3. “滴血查癌”女主角被判入狱11年:公司估值曾达90亿美元 一朝覆灭
  4. 美区苹果id关闭双重认证_苹果帐号在双重认证的情况下被更改受信任手机号,导致帐号被锁,且无法解锁...
  5. android 实现层叠列表,RecyclerView进阶之层叠列表(下)
  6. XP系统计算机桌面图标不见,win10桌面计算机图标不见了怎么办
  7. C语言实现摄氏、华氏温度转换
  8. 量化投资学习-21:板块一起大跌,却轮动上涨的背后逻辑
  9. pm2 启动 nodejs 项目
  10. AutoJS4.1.0实战教程 ---番茄免费小说