图像插值理论研究——双三次插值(双立方插值)
双三次插值,英文是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/)
图像插值理论研究——双三次插值(双立方插值)相关推荐
- matlab彩色图像缩放(双线性与双立方插值)
双线性插值原理可以参考这篇博文:双线性内插法 立方插值的推导我参考的这篇文章:Cubic interpolation 数学推导过程上面两篇文章解释得还是比较清楚,可以自己拿笔推一推,至于双线性和双立方 ...
- 图像放缩之双立方插值
- created by gloomyfish 一:数学原理 如果已知一个函数f(x)以及它在x=0,x=1处的导数,那么函数可以在[0,1]之间插值,当函数 表达为三次多项式时我们称之谓立方插值.一 ...
- 【图像去噪】基于双立方插值和稀疏表示实现图像去噪matlab源码
1 内容介绍 本文解决了从单个低分辨率输入图像生成超分辨率 (SR) 图像的问题.我们从压缩感知的角度来解决这个问题.低分辨率图像被视为高分辨率图像的下采样版本,假设其补丁相对于原型信号原子的过完备字 ...
- 【图像缩放】双立方(三次)卷积插值
前言 图像处理中有三种常用的插值算法: 最邻近插值 双线性插值 双立方(三次卷积)插值 其中效果最好的是双立方(三次卷积)插值,本文介绍它的原理以及使用 如果想先看效果和源码,可以拉到最底部 本文的契 ...
- 图像插值算法——双立方(三次)卷积插值
双立方(三次)卷积插值是一种数据点插值方法. 在对图像进行缩放,旋转等处理时,有些像素点会因为这些操作变得没有意义,比如二维图像A(2*2)放大为原来的二倍后B(4*4)就会缺失一些像素,如图所示: ...
- matlab双立方插值法_双三次插值(Bicubic interpolation)缩放图片
References:https://en.wikipedia.org/wiki/Bicubic_interpolation Bicubic interpolation是一种常用的插值方法 1.数学 ...
- 【opencv】最近邻插值、双线性插值、双三次插值(三次样条插值)
目录 1. 最近邻插值 2. 双线性插值 1)简单理解 2)一般性 3. 双三次插值(三次样条插值) 总结 1. 最近邻插值 举个简单例子:一个3×33 \times 33×3 的单通道图像,如下 如 ...
- CRM(客户关系管理)应用与理论研究综述
[ IT168 信息化] 1 CRM的管理思想.内涵及其意义 市场营销经历了近一个世纪的发展,营销观念也先后经历了生产和产品观念.推销观念.市场营销观念和社会营销观念等几个阶段,至今各种新型营销理论仍 ...
- 如何通过像素点找到世界坐标_如何通过阅读来找到自己理论研究的“视域”?...
理论研究多用演绎法,也就是说,理论研究一般始于一个独特的概念.理论视角,或者判断.用刘良华的观点来说,这些都是理论研究的"视域",也是理论研究得以展开的"大前提" ...
- 游戏理论研究四:RPG游戏
游戏理论研究四(转)RPG游戏- - 作者:hitman 4.RPG游戏 RPG游戏 (角色扮演类游戏)无疑是最受欢迎的游戏类型.但很难对其进行确切定义 .本文采取用其性质或者说其构成要素来定 ...
最新文章
- asp.net 网页做一个浮动层_你们要的HTML、CSS布局技巧:如何规范搭建网页架构?
- 一个ASP.NET中使用的MessageBox类
- 立足GitHub学编程:13个不容错过的Java项目
- python while循环语句-python循环语句讲解(一):while循环
- OPENSSL_Uplink(0098E000,07): no OPENSSL_Applink 错误分析
- 学习python之序言
- 前端跨域请求get_前端跨域请求jsonp实现
- 亚马逊因密码泄露重置部分用户密码
- 03-postgresql报错ERROR: operator does not exist: numeric = character varyin
- 一个项目涉及到的50个Sql语句
- 深入理解Linux/Unix文件描述符和epoll
- Keras及其前端配置
- Springboot之idea之pom文件图标不对
- 初识Jasima-调度仿真系列教程预告
- java编程选游戏本还是轻薄本,编程用什么笔记本,超薄本还是游戏本
- 【个人博客网页模板】
- Linux嵌入式系统的电子相册代码,基于嵌入式Linux和Qt编程实现数码相框的设计
- 3 款非常实用的 Node.js 版本管理工具
- winvnc源码阅读笔记(四)---------vncDesktopThread线程
- 搭建嵌入式开源开发环境