美文网首页
【图像缩放算法】双立方(三次)插值

【图像缩放算法】双立方(三次)插值

作者: 雨幻逐光 | 来源:发表于2021-06-25 10:58 被阅读0次

当我们进行图像缩放的时候,我们就需要用到插值算法。常见的插值有:

  1. 最邻近插值
  2. 双线性插值
  3. 双立方(三次)插值
    在这三种算法中,双立方(三次)插值最为复杂,效果也最好。在之前的文章中,我们介绍过最邻近插值和双向性插值。接下来我们来介绍下双立方(三次)插值的原理。

数学原理

用双立方插值得到的结果图上的某个像素是由原图上的16个像素值进行加权平均得到。所以接下来关键点就是如何求解对应的16个像素位置以及各自的系数。

图1
如上图所示,当我们求出结果图某个像素对应于原图的像素P00时(映射点),其他的15个像素位置就知道了。
首先,我们通过计算得到原图的映射点坐标:
图2
如上图所示,如果我们的结果图的坐标为(distI, distJ)求出对应的映射点坐标是(i+u, j+v)。其中u,v可能为负。(i,j)为坐标(i+u,j+v)离得最近的整数坐标。比如(1.1,2.8)就是对应(1, 3)。即i=1,j=3,u和v分别0.1和-0.2。至此,我们就知道了所有16个点的位置(即(i, j)就对应于图一16个点中的P00点)。因此,16个点的横、纵坐标的取值范围分别是[i-1, i+2], [j-1, j+2]。接下来就是16个像素值各自对应的加权系数了。
采样公式:
图3
其中可以 a 为常数。选取不同的 a 可以用来逼近不同的样条函数。
当 a 取值为 -1 时,公式如下:
图4
此时逼近的函数为:
y = sin(Pi * x) / (Pi * x)
当 a 取值为 -0.5 时,公式如下:
图5
此时逼近三次样条函数。

最后,我们将所有的像素点乘以其对应的系数并加权相加就得到我们最后所求点的像素值。公式如下:


图6

相关文章

  • 【图像缩放算法】双立方(三次)插值

    当我们进行图像缩放的时候,我们就需要用到插值算法。常见的插值有: 最邻近插值 双线性插值 双立方(三次)插值在这三...

  • Android 图片处理笔记

    一、插值法放大 参考【图像缩放】双立方(三次)卷积插值(Android版改写)[https://blog.csdn...

  • 最临近插值和双线性插值

    插值在图像中的应用一般为处理图像的缩放。所谓缩放就是缩小和放大。在所有插值缩放算法中要数最邻近插值最简单最暴力,当...

  • Unity Texture缩放 合成 解压

    图片缩放 图像放大有许多算法,关键在于对未知像素使用何种插值算法。 最邻近插值算法原理图:image.png 选取...

  • 图像缩放小记

    算法AndroidJniBitmapOperations演示了最邻近插值法和双线性插值法来做图像缩放。这个项目里的...

  • OpenCV之图像修补

    概念: 修复是图像插值。数字修复算法在图像插值,照片恢复,缩放和超分辨率等方面具有广泛的应用。 当我们想去除一些图...

  • OpenCV:线性插值算法

    1.目的 线性插值的目的是什么?线性插值一般是用在如图像缩放,区域缩放美图瘦脸大眼等中.以图像缩放为例.设缩放前图...

  • 视觉笔试刷题_1_索贝公司_2019-08-10

    填空题 常用的插值算法:双线性插值、立方卷积插值、最近邻插值 常用的边缘检测算子:canny、sobel、Robe...

  • 图形图像处理算法(3)---- 图形缩放算法

    图形的缩放的需求很普遍也很好理解,就是图形的放大和缩小图形缩放的算法主要分为两种 : 最近邻插值算法 双线性插值算...

  • 最近邻插值与双线性插值基本原理及Python实现

    1 最近邻插值 1.1 基本原理 假定 源图像的尺寸为 经最近邻插值处理后的图像的尺寸为 由此可以得到缩放倍数 现...

网友评论

      本文标题:【图像缩放算法】双立方(三次)插值

      本文链接:https://www.haomeiwen.com/subject/olqxdctx.html