将 scipy.ndimage.map_coordinates 中的插值方法设置为最近和双线性

Set interpolation method in scipy.ndimage.map_coordinates to nearest and bilinear

我想将scipy.ndimage.map_coordinates的插值方式设置为 双线性和最近(不同示例有 2 个不同)。

文档中没有提到如何更改插值method.There是下面写的语句,我无法理解。

order : int, optional The order of the spline interpolation, default is 3. The order has to be in the range 0-5.

这是否意味着在scipy.ndimage.map_coordinates中只允许样条插值? 我缺少什么以及如何更改插值。 P.s-我需要它来改变弹性变形任务

你可以得到你想要的:

  • order=0 最近插值
  • order=1 用于线性插值

示例

a = np.arange(12.).reshape((4, 3))
inds = np.array([[0], [0.7]]) 
ndimage.map_coordinates(a, inds, order=0) # returns [1.0]
ndimage.map_coordinates(a, inds, order=1) # returns [0.7]

为什么

零阶样条插值最近邻插值,一阶样条插值线性插值。来自 this paper

...splines of degree 0 (piecewise constant) and splines of degree 1 (piecewise linear) ...