繁体   English   中英

图像中的双三次插值误差

[英]Bicubic Interpolation Error in image

我已经实现了双三次插值,并参考了这些幻灯片 幻灯片编号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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM