双三次插值的基函数S(w)的一点疑问

sundonghui 2012-04-20 03:44:31
双三次插值也是比较古典的一个插值方法了,我最近一直在搞图像的插值,搞完双线性插值,终于迈进双三次了。。。这里有一个问题 ,望求指点!!!

他的基函数为:

当 |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个点中,那些出格的点的灰度值为为不出格的点的平均值。我个人以为这样做会提高边界的平滑性。。。不知各位有何看法?

...全文
804 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tuya7 2012-05-05
  • 打赏
  • 举报
回复
帮你的程序贴出来看看,我这个没有写好,w的获取程序怎么写
sundonghui 2012-04-23
  • 打赏
  • 举报
回复
谢谢回复
这几天我也看了部分的文献,搞清楚了这个三次卷积的基本原理,原来那个内插核也是有“距离”引申过来的,现在问题差不多了,只是还有一点小误差。u,v为正数时,插值结果会偏小0.07左右,有一个为负值时会偏大0。07左右 。并且这个偏大的和偏下的值是相等的,我现在还找到原因在哪里?你知道可能是哪里的问题的吗?[Quote=引用 2 楼 的回复:]

专业性太强的东西回复的人少也是正常的
关于边界的问题
我认为其实没有什么特别的规定
默认处理认为溢出部分为黑色是符合人们心里预期的
如果你觉得你的方法可以得到更好的平滑效果也未尝不可
[/Quote]
向立天 2012-04-22
  • 打赏
  • 举报
回复
专业性太强的东西回复的人少也是正常的
关于边界的问题
我认为其实没有什么特别的规定
默认处理认为溢出部分为黑色是符合人们心里预期的
如果你觉得你的方法可以得到更好的平滑效果也未尝不可
sundonghui 2012-04-22
  • 打赏
  • 举报
回复
三天啦 还没有人进来看看啊

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧