双三次插值,英文是Bicubic interpolation。双三次插值是一种更加复杂的插值方式,它能创造出比双线性插值更平滑的图像边缘。双三次插值方法通常运用在一部分图像处理软件、打印机驱动程序和数码相机中,对原图像或原图像的某些区域进行放大。Adobe Photoshop CS 更为用户提供了两种不同的双三次插值方法:双三次插值平滑化和双三次插值锐化。

在数值分析这个数学分支中,双三次插值(英语:Bicubic interpolation)是二维空间中最常用的插值方法。在这种方法中,函数f在点 (x,y) 的值可以通过矩形网格中最近的十六个采样点的加权平均得到,在这里需要使用两个多项式插值三次函数,每个方向使用一个。

双三次插值又叫双立方插值,用于在图像中“插值”(Interpolating)或增加“像素”(Pixel)数量/密度的一种方法。通常利用插值技术增加图形数据,以便在它打印或其他形式输出的时候,能够增大打印面积以及(或者)分辨率。

目前有不同的插值技术可供选用。双立方插值通常能产生效果最好,最精确的插补图形,但它速度也几乎是最慢的。“双线性插值”(Bilinear interpolation)的速度则要快一些,但没有前者精确。在商业性图像编辑软件中,经常采用的是速度最快,但也是最不准确的“最近相邻”(Nearest Neighbor)插值。其他一些插值技术通常只在高档或单独应用的程序中出现。

通过双三次插值可以得到一个连续的插值函数,它的一阶偏导数连续,并且交叉导数处处连续。

如上图所示,我们在新生成的图像中,像素点是f(x,y),先映射到源图像中的坐标为f(i+u,j+v)需要找到对应的原图像中离最近的16个点。

和前面介绍的双线性插值的分析方法类似(http://blog.chinaaet.com/justlxy/p/5100052604),我们可以分别对行和列进行依次处理。则有,

则有,

而s(*)表示的则是权值,有多种计算方法(模型),常用的有Bicubic、Mitchell和Lanczos等,这里简单介绍一下Bicubic函数:

该函数,波形如下图所示:

Lanczos函数为:

波形也是类似的:

主要参考文献:

  • https://baike.baidu.com/item/%E5%8F%8C%E4%B8%89%E6%AC%A1%E6%8F%92%E5%80%BC/11055947?fr=aladdin

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

  • http://blog.csdn.net/taoyanbian1022/article/details/8850135

  • VLSI Realization of Lanczos Interpolation for a Generic Video Scaling Algorithm.pdf

注:原文最早发表于本人的ChinaAET博客(http://blog.chinaaet.com/justlxy/)

图像插值理论研究——双三次插值(双立方插值)相关推荐

  1. matlab彩色图像缩放(双线性与双立方插值)

    双线性插值原理可以参考这篇博文:双线性内插法 立方插值的推导我参考的这篇文章:Cubic interpolation 数学推导过程上面两篇文章解释得还是比较清楚,可以自己拿笔推一推,至于双线性和双立方 ...

  2. 图像放缩之双立方插值

    - created by gloomyfish 一:数学原理 如果已知一个函数f(x)以及它在x=0,x=1处的导数,那么函数可以在[0,1]之间插值,当函数 表达为三次多项式时我们称之谓立方插值.一 ...

  3. 【图像去噪】基于双立方插值和稀疏表示实现图像去噪matlab源码

    1 内容介绍 本文解决了从单个低分辨率输入图像生成超分辨率 (SR) 图像的问题.我们从压缩感知的角度来解决这个问题.低分辨率图像被视为高分辨率图像的下采样版本,假设其补丁相对于原型信号原子的过完备字 ...

  4. 【图像缩放】双立方(三次)卷积插值

    前言 图像处理中有三种常用的插值算法: 最邻近插值 双线性插值 双立方(三次卷积)插值 其中效果最好的是双立方(三次卷积)插值,本文介绍它的原理以及使用 如果想先看效果和源码,可以拉到最底部 本文的契 ...

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

    双立方(三次)卷积插值是一种数据点插值方法. 在对图像进行缩放,旋转等处理时,有些像素点会因为这些操作变得没有意义,比如二维图像A(2*2)放大为原来的二倍后B(4*4)就会缺失一些像素,如图所示: ...

  6. matlab双立方插值法_双三次插值(Bicubic interpolation)缩放图片

    References:https://en.wikipedia.org/wiki/Bicubic_interpolation Bicubic interpolation是一种常用的插值方法 1.数学 ...

  7. 【opencv】最近邻插值、双线性插值、双三次插值(三次样条插值)

    目录 1. 最近邻插值 2. 双线性插值 1)简单理解 2)一般性 3. 双三次插值(三次样条插值) 总结 1. 最近邻插值 举个简单例子:一个3×33 \times 33×3 的单通道图像,如下 如 ...

  8. CRM(客户关系管理)应用与理论研究综述

    [ IT168 信息化] 1 CRM的管理思想.内涵及其意义 市场营销经历了近一个世纪的发展,营销观念也先后经历了生产和产品观念.推销观念.市场营销观念和社会营销观念等几个阶段,至今各种新型营销理论仍 ...

  9. 如何通过像素点找到世界坐标_如何通过阅读来找到自己理论研究的“视域”?...

    理论研究多用演绎法,也就是说,理论研究一般始于一个独特的概念.理论视角,或者判断.用刘良华的观点来说,这些都是理论研究的"视域",也是理论研究得以展开的"大前提" ...

  10. 游戏理论研究四:RPG游戏

    游戏理论研究四(转)RPG游戏- - 作者:hitman     4.RPG游戏 RPG游戏 (角色扮演类游戏)无疑是最受欢迎的游戏类型.但很难对其进行确切定义 .本文采取用其性质或者说其构成要素来定 ...

最新文章

  1. asp.net 网页做一个浮动层_你们要的HTML、CSS布局技巧:如何规范搭建网页架构?
  2. 一个ASP.NET中使用的MessageBox类
  3. 立足GitHub学编程:13个不容错过的Java项目
  4. python while循环语句-python循环语句讲解(一):while循环
  5. OPENSSL_Uplink(0098E000,07): no OPENSSL_Applink 错误分析
  6. 学习python之序言
  7. 前端跨域请求get_前端跨域请求jsonp实现
  8. 亚马逊因密码泄露重置部分用户密码
  9. 03-postgresql报错ERROR: operator does not exist: numeric = character varyin
  10. 一个项目涉及到的50个Sql语句
  11. 深入理解Linux/Unix文件描述符和epoll
  12. Keras及其前端配置
  13. Springboot之idea之pom文件图标不对
  14. 初识Jasima-调度仿真系列教程预告
  15. java编程选游戏本还是轻薄本,编程用什么笔记本,超薄本还是游戏本
  16. 【个人博客网页模板】
  17. Linux嵌入式系统的电子相册代码,基于嵌入式Linux和Qt编程实现数码相框的设计
  18. 3 款非常实用的 Node.js 版本管理工具
  19. winvnc源码阅读笔记(四)---------vncDesktopThread线程
  20. 搭建嵌入式开源开发环境

热门文章

  1. 计算机行业未来的规划模板,计算机专业个人职业规划优秀模板
  2. epc项目设计流程图_EPC工程总承包管理流程图解。
  3. B端产品经理知识框架
  4. steam显示不能连接网络连接服务器,steam请检查网络连接
  5. matlab中如何画柱状图,如何在用Matlab画柱状图
  6. HDU - 5699(79/600)
  7. 在RStudio中调用python包
  8. haswell主板linux驱动下载,Haswell核芯显卡驱动首版已发布,附下载地址
  9. 如何在北京购车外地上牌
  10. 线性分类器和非线性分类器总结