matlab interp2插值函数的使用

参考:
https://blog.csdn.net/hanchan94/article/details/53942998
https://blog.csdn.net/sgfmby1994/article/details/52598270

interp2 的作用

interp2函数也是用来进行插值操作的,举个例子来讲,假设我们有一个3×3的矩阵,但是我们有了新的需求,想把该矩阵扩展成5×5的新的更大的矩阵。此时就出现了一个问题,5×5的矩阵一共有25个像素值,而3×3的矩阵只有9个像素值。所以如何用这9个像素值给新的25个像素值赋值,这就是一个插值的问题。在这里我们仅粗略地讲述了插值的目的,并没有叙述插值算法的细节。

interp2 的用法

好了,介绍完插值的目的之后。接下来介绍一下函数的用法。
(1)ZI = interp2(X,Y,Z,XI,YI)
参数说明:
输入:
X,Y 对应插值前X轴和Y轴的坐标分量,合在一起才是(x,y);Z是X,Y坐标对应位置(x,y)的值,XI,YI对应插值后的坐标。
输出:
ZI是XI、YI坐标对应的像素值。
(2)ZI = interp2(X,Y,Z,XI,YI,method)
用指定的算法method 计算二维插值:
’linear’:双线性插值算法(缺省算法);
’nearest’:最临近插值;
’spline’:三次样条插值;
’cubic’:双三次插值。
(3)ZI = interp2(Z,XI,YI)
缺省地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一种情形进行计算。

[x,y]=meshgrid(0:2,0:2);
vl = [1:3;4:6;7:9];
[x2,y2]=meshgrid(1:0.1:2,0:2);
zz = interp2(x,y,vl,x2,y2,'bicubic');
% [x3,y3]=meshgrid(1:0.1:2,0:0.1:2);
% zz2 = interp2(x,y,vl,x3,y3,'bicubic');

代码的结果如下:
插值前的数据:
这里写图片描述
插值后的数据:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/chaolei3/article/details/80241533