图像插值算法——双立方(三次)卷积插值

双立方(三次)卷积插值是一种数据点插值方法。

在对图像进行缩放,旋转等处理时,有些像素点会因为这些操作变得没有意义,比如二维图像A(2*2)放大为原来的二倍后B(4*4)就会缺失一些像素,如图所示:

                        

图中白色区域就应进行插值操作。对比双线性插值最近邻插值,双立方(三次)卷积插值具有更平滑的插值效果,但速度更慢,本文将对他进行介绍。

原论文地址:http://ncorr.com/download/publications/keysbicubic.pdf

本文将用到卷积的知识,不懂卷积的同学可以参考百度。。。

双立方卷积插值将用到原图的15个邻域像素点(下图中0,0的15个邻域像素),了解双线性插值的同学可以和做一下对比。

1.找到原图中的目标像素点和其15个邻域点

插值的第一步是找到目标差值图中的目标像素点(就是上面图B中的白色像素点)对应的原图中的像素点A,然后对原图像素点A和其15个邻域像素点进行卷积操作。

如何找到原图中的对应像素点A呢?我们将用缺失的像素点通过反向映射找到原图中最接近的的像素点

比如,缺失像素点为(3.3,3.3),反向映射到原图中的像素点为(1.1,1.1)那么离(1.1,1.1)最接近的像素点为(1,1)。

(1,1)则为原图中的对应像素点A。如果映射到原图为(1.9,1.9)那么最近像素点就为(2,2)。

我们也可以把目标图像的像素点映射到原图的像素点写成(i+v,j+u)的形式,上述例子就可以写成(1+0.1,1+0.1)

2.卷积操作

上面介绍了如何找到原图对应的像素点和邻域。接下来就要用到这些点进行卷积操作了:

先介绍公式,推导过程在原论文中,这里不做过多描述:

F()就是插值后对应坐标的值(我们要求得缺失像素点),它由三部分A,B,C相乘而得到

此公式也等价于:

有同学可能会问,这里的S()和f()分别指什么,f()很好理解,就是原图目标点和对应15个邻域点的值,S()则是卷积公式

这里采用的卷积公式是(来自维基):

这里的a可以取不同值用来逼近不同函数(常用-0.5,-0.75),通过这个公式就可以简单的计算出插值后的对应坐标值,也就是我们要求的缺失像素点了。

双立方(三次)卷积插值对图像插值效果平滑,但速度慢。这篇文章只对它进行了使用上的介绍,原理可以参考原论文:

http://ncorr.com/download/publications/keysbicubic.pdf

和这两篇解释:

https://blog.csdn.net/u010510549/article/details/62427122?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160921097516780266265918%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D&request_id=160921097516780266265918&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-62427122.first_rank_v2_pc_rank_v29&utm_term=%E4%B8%89%E6%AC%A1%E5%8D%B7%E7%A7%AF%E6%8F%92%E5%80%BC

https://blog.csdn.net/shiyimin1/article/details/80141333

参考资料:

https://en.wikipedia.org/wiki/Bicubic_interpolation

https://blog.csdn.net/u010979495/article/details/78428898?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160921171116780261947979%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D&request_id=160921171116780261947979&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-2-78428898.first_rank_v2_pc_rank_v29&utm_term=%E5%8F%8C%E7%AB%8B%E6%96%B9%E5%8D%B7%E7%A7%AF%E6%8F%92%E5%80%BC

  • 11
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值