Matlab中的线性插值

时间:2014-10-08 02:04:12

标签: matlab interpolation linear

有人能告诉我如何在不使用interp1功能的情况下在Matlab中实现线性插值吗?我需要像

这样的东西

输入[1,0,0,4,0,0,7]; 输出[1,2,3,4,5,6,7];

另外请避免循环。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

好的伙计们。而不是不喜欢回答,你最好发布正确的答案。 我已经弄清楚了

    close all;
Img_in = imread(Img_in_bmp);

out_name1 = [Img_in_bmp ' upsampledLinear_to_512.bmp'];

[m,n] = size(Img_in);
Upsampl_to_512 = zeros(s*(m),s*(n));
for i=1:(s*(m-1))
    x = rem(i-1,s)/s;
    u = floor((i-1)/s)+1;
    for j=1:(s*(n-1))
        y = rem((j-1),s)/s;
        v = floor((j-1)/s)+1;
        Upsampl_to_512(i,j) = Img_in(u+0,v+0)*(1-x)*(1-y) + Img_in(u+1,v+0)*x*(1-y) + Img_in(u+0,v+1)*(1-x)*y + Img_in(u+1,v+1)*x*y;
    end
end

感谢所有评论家,但我更愿意回答。