0

我参考这些幻灯片实现了双三次插值。幻灯片编号 118 给出了计算双三次插值的公式。

我以相同的方式实现了我的代码,将 P(dr-m) 和 P(n-dc) 保持为:

P_dr = 1/6*( (max(d_r-m+2,0)^3) -4*(max(d_r-m+1,0)^3) -6*(max(d_r-m,0)^3) -4*(max(d_r-m-1,0)^3));
P_dc = 1/6*( (max(n-d_c+2,0)^3) -4*(max(n-d_c+1,0)^3) -6*(max(n-d_c,0)^3) -4*(max(n-d_c-1,0)^3));   

其中 max 函数由幻灯片中定义的 Q(X) 定义。

但是当我运行代码时,我得到以下图像:

归一化因子为 1/6 时的图像.

但是当我将归一化因子更改为 1/32 时,我得到:

归一化因子为 1/32

我的原图是这样的:

原始图像

有人可以指出我哪里出错了吗?

代码片段如下:

for i = 5:r_new-4
    for j = 5:c_new-4
        x = i/SF;
        y = j/SF;
        ro = round(x);
        co = round(y);
        d_r = x - ro; 
        d_c = y - co;
        temp = 0;
        for m = -1:2
            for n = -1:2
              P_r = 1/32*( (max(d_r-m+2,0)^3) - 4*(max(d_r-m+1,0)^3) - 6*(max(d_r-m,0)^3) - 4*(max(d_r-m-1,0)^3));
              P_c = 1/32*( (max(n-d_c+2,0)^3) - 4*(max(n-d_c+1,0)^3) - 6*(max(n-d_c,0)^3) - 4*(max(n-d_c-1,0)^3));
              temp = temp + I(ro+m,co+n)*P_r*P_c;
            end
        end
        I_new(i,j) = temp;
    end
end
4

0 回答 0