使用說明:圖形繪制時的插值
interp1 %1-D data interpolation
interpft %使用fft算法插值
%將原數據x轉換到頻率域,再逆轉換回來更密集的數據采樣點
spline %一維Cubic spline(三次樣條) data interpolation
interp2 %2-D data interpolation
interp3 %3-D data interpolation (table lookup)
注:
The
interp2
command interpolates between data points. It finds values of a two-dimensional function
f
(
x
,
y
) underlying the data at intermediate points.

案例1:二維插值顯示
[X,Y] =meshgrid(-3:.25:3);Z=peaks(X,Y); %間隔為0.25
[XI,YI]=meshgrid(-3:.33:3,-3:0.05:3); %XI間隔為0.33,YI間隔為0.05
ZI=interp2(X,Y,Z,XI,YI,'cubic');
%設定插值使用的算法。其他選項還有'nearest','linear,'spline'
mesh(X,Y,Z), hold on;axis([-3 3 -3 3 -5 20]);
mesh(XI,YI,ZI+15),hold off; %繪制插值算得的圖形

案例2:圖像大小的重采樣
M = imread('rice.png');
%% 使用插值的方法對圖像進行重采樣
% the original image
[p,q] = size(M);
figure;imshow(M);title('Original Image')
% original location
[X,Y] = meshgrid( (0:p-1)/(p-1), (0:q-1)/(q-1) );
% target image size
p1 = 100; q1 = 100;
% new sampling location
[XI,YI] = meshgrid( (0:p1-1)/(p1-1) , (0:q1-1)/(q1-1) );
% the new image 插值方法可以自己更改
M1 = interp2( X,Y,double(M), XI,YI ,'cubic'); % 注意這里的M原本是unit8類型的數據,這里必須轉化為double類型的數據
figure;imshow(M1,[0,255]);title('Resized Image') % 這里用imshow顯示double類型的圖像時要指定顯示范圍[0,255]
%% 簡潔方法(IPT工具箱)
figure;imshow(M);title('Original Image')
% 重采樣
p1 = 100; q1 = 100;
M1 = imresize(M,[p1,q1]);
figure;imshow(M1);title('Resized Image')

%案例3:已知點不是規則的的網格點,是無規則的TIN模型,如何插值獲得規則網格點上數據
慢慢更新。。。