Python中类似Matlab-interp2的插值函数:RectBivariateSpline与interp2d

在matlab中我们可以通过interp2在矩形网格内进行曲线插值,那么在python中有没有有类似的函数呢?有,并且有很多,都在scipy.interpolate模块中。这篇博客主要说两个比较相似的:interp2d和rectBivariateSpline。两者比较相似,如果输入是规整的网格点,那么使用rectBivariateSpline会更快。下面给一些介绍和例子:

官方文档:interp2d   rectBivariateSpline 

一些例子:rectBivariateSpline例子

有上面的文档相信已经够了,这里强调用法中几点注意事项:

  • 输入虽然标识为x,y,但事实上第一个参数是axis=0,第二个参数对应axis=1
  • rectBivariateSpline中控制插值函数阶次的参数是kx,ky
  • interp2d中控制插值方法的参数是kind  ,kind=’cubic’ 表示三次插值
  • 这两个函数,输入参数x,y均为x和y方向上的网格向量
  • 在调用插值时,如果需要采样的点构成一个正立的矩形网格的话,那么输入x和y就输入向量就可以,它会输出 x*y 坐标空间上的2d插值结果。如果需要插值的是一系列离散的点,或者不构成正立网格,那么输入的x和y就是一系列点的坐标,它会输出(x,y)坐标空间上离散点的插值结果。指示插值点规则的参数是grid,默认是true的。

我们先看一个grid=True的例子,利用插值缩放图像(resample)的例子:

我们再看一个grid=False的例子,利用插值旋转图像(rotation)的例子:

谢谢,希望能有帮助!

留下评论