双三次插值的基函数S(w)的一点疑问解决办法
双三次插值的基函数S(w)的一点疑问
双三次插值也是比较古典的一个插值方法了,我最近一直在搞图像的插值,搞完双线性插值,终于迈进双三次了。。。这里有一个问题 ,望求指点!!!
他的基函数为:
当 |w| < 1;
s = 1-2*w*w + W*W*w
当 1=<|w|<2
s = 4-8w + 5w*w - w*w*w
其他情况为0;
f(i+u,j+v) = A*B*C
f(i+u,j+v)为浮点坐标,也就是要计算的值,计算公式如下:
A = [ s(1+u) s(u) s(1-u) s(2-u)]
B = (i+u,j+v)周围的16个点的矩阵
C = [ s(1+v) s(v) s(1-v) s(2-v)]
几乎的所有的文献再给出上述公式的时候都是限定了u>0&& v>0,u,v是介于0-1之间的小数。
我的程序的要求是可以再四个方向进行插值。也就是u v均可正可负。我已经完成了程序的编写,也支持四个方向的插值。但是只有u》0 v>0的情况下误差在可以接受的范围内。 其余的误差 太大了。
问下:u<0 || v<0 的情况下插值核如何使用?
还有一个小细节就是,某些某些靠经边界或者端点的浮点坐标,有一个问题就是 他们周围的4*4个点有的不在图片范围内。有的做法就是对这些“出格”的点直接取0.我的做法是在4*4个点中,那些出格的点的灰度值为为不出格的点的平均值。我个人以为这样做会提高边界的平滑性。。。不知各位有何看法?
------解决方案--------------------
专业性太强的东西回复的人少也是正常的
关于边界的问题
我认为其实没有什么特别的规定
默认处理认为溢出部分为黑色是符合人们心里预期的
如果你觉得你的方法可以得到更好的平滑效果也未尝不可
双三次插值也是比较古典的一个插值方法了,我最近一直在搞图像的插值,搞完双线性插值,终于迈进双三次了。。。这里有一个问题 ,望求指点!!!
他的基函数为:
当 |w| < 1;
s = 1-2*w*w + W*W*w
当 1=<|w|<2
s = 4-8w + 5w*w - w*w*w
其他情况为0;
f(i+u,j+v) = A*B*C
f(i+u,j+v)为浮点坐标,也就是要计算的值,计算公式如下:
A = [ s(1+u) s(u) s(1-u) s(2-u)]
B = (i+u,j+v)周围的16个点的矩阵
C = [ s(1+v) s(v) s(1-v) s(2-v)]
几乎的所有的文献再给出上述公式的时候都是限定了u>0&& v>0,u,v是介于0-1之间的小数。
我的程序的要求是可以再四个方向进行插值。也就是u v均可正可负。我已经完成了程序的编写,也支持四个方向的插值。但是只有u》0 v>0的情况下误差在可以接受的范围内。 其余的误差 太大了。
问下:u<0 || v<0 的情况下插值核如何使用?
还有一个小细节就是,某些某些靠经边界或者端点的浮点坐标,有一个问题就是 他们周围的4*4个点有的不在图片范围内。有的做法就是对这些“出格”的点直接取0.我的做法是在4*4个点中,那些出格的点的灰度值为为不出格的点的平均值。我个人以为这样做会提高边界的平滑性。。。不知各位有何看法?
------解决方案--------------------
专业性太强的东西回复的人少也是正常的
关于边界的问题
我认为其实没有什么特别的规定
默认处理认为溢出部分为黑色是符合人们心里预期的
如果你觉得你的方法可以得到更好的平滑效果也未尝不可