我正在使用Matlab/Octave imresize()
函数重新采样给定的二维数组。我想了解imresize
中使用的特定插值算法是如何工作的。在Matlab的imresize函数中用于插值的算法是什么?
(我在窗户上使用八度)
例如,
A = 1 2
3 4
是一个2D数组。然后我用命令
b=imresize(a,2,'linear');
基本采样的行和列由2
输出是
1.0000 1.3333 1.6667 2.0000
1.6667 2.0000 2.3333 2.6667
2.3333 2.6667 3.0000 3.3333
3.0000 3.3333 3.6667 4.0000
我不明白这是如何线性插值工作。据说使用
bi
线性插值,但是它如何在边界处填充数据,以及它如何获得输出?
第二个例子: 对于
A =
1 2 3 4
5 6 7 8
0 1 2 3
1 2 3 4
如何imresize(a,1.5,'linear')
给下面的输出?
1.00000 1.60000 2.20000 2.80000 3.40000 4.00000
3.40000 4.00000 4.60000 5.20000 5.80000 6.40000
4.00000 4.60000 5.20000 5.80000 6.40000 7.00000
1.00000 1.60000 2.20000 2.80000 3.40000 4.00000
0.40000 1.00000 1.60000 2.20000 2.80000 3.40000
1.00000 1.60000 2.20000 2.80000 3.40000 4.00000
@Oli - 谢谢。我知道了。我假设,不同比例因子的权重计算将采用适当的值。即对于我的例子来说,权重为0.33,0.66,因为如果将2个样本内插到总共N个样本,则给定样本将被内插到总共4个样本,权重将是1 /(N-1),2 /( N-1)不是吗? – goldenmean
@OliCharlesworth - 编辑的OP添加第二个例子,通过分数比例因子重新采样。在这种情况下,不清楚它如何编制其产出。你可以。上面的检查。 – goldenmean
@Oli - 关于我在OP中添加的第二个示例的任何输入? – goldenmean