[英]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/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.