【问题标题】:What Is Matlab's 'box' Interpolation Kernel什么是 Matlab 的“盒子”插值内核
【发布时间】:2018-12-24 10:53:22
【问题描述】:

有人知道 MATLAB 的“盒子”插值内核在 imresize 函数中使用的方程/算法/定理吗?或者(甚至更好)知道一个 numpy 等价物?

【问题讨论】:

    标签: python matlab numpy interpolation image-resizing


    【解决方案1】:

    box 插值只是对指定窗口大小内的像素进行平均。

    详情可以查看matlab函数smooth3等。

    【讨论】:

    • 对我来说,box 相当于 nearest。我猜,内核可以定义为box = @(h) -0.5 < h & h <= 0.5;
    【解决方案2】:

    “盒子”内核是具有统一权重的平均内核。如果是插值核,则对应最近邻插值(总是取一个输入样本的平均值)。

    一点理论:插值内核是在原点处值为 1,在距原点整数距离处值为 0 的内核。在两者之间它可以做不同的事情。因此,要从“盒子”中制作一个插值内核,我们将使其宽度介于无限薄和略低于 2 个样本间距之间。这使它符合插值内核的定义。但是,如果它比 1 个样本间距更薄,它将为某些位移生成 0 的输出——这是不可取的。如果它比 1 个样本间距宽,则输出是两个输入样本相加的位移,是应有的两倍大 - 也不可取。因此,使其恰好为 1 个样本间距宽是这里唯一有用的宽度。有了这个宽度,在任何位移下,它总是只覆盖一个输入样本——因此它会进行线性插值。

    【讨论】:

      猜你喜欢
      • 2021-01-11
      • 2020-10-17
      • 2011-12-23
      • 2014-05-20
      • 2015-06-11
      • 2021-12-09
      • 2013-08-13
      • 1970-01-01
      相关资源
      最近更新 更多