图像放大算法介绍(转载)
转载自:http://www.cnblogs.com/celerychen/archive/2010/11/25/3588222.html
一、 图像放大算法
图像放大有许多算法,其关键在于对未知像素使用何种插值方式。以下我们将具体分析几种常见的算法,然后从放大后的图像是否存在色彩失真,图像的细节是否得到较好的保存,放大过程所需时间是否分配合理等多方面来比较它们的优劣。
当把一个小图像放大的时候,比如放大400%,我们可以首先依据原来的相邻4个像素点的色彩值,按照放大倍数找到新的ABCD像素点的位置并进行对应的填充,但是它们之间存在的大量的像素点,比如p点的色彩值却是不可知的,需要进行估算。
1、最临近点插值算法(Nearest Neighbor)
最邻近点插值算法是最简单也是速度最快的一种算法,其做法是將放大后未知的像素点P,將其位置换算到原始影像上,与原始的邻近的4周像素点A,B,C,D做比较,令P点的像素值等于最靠近的邻近点像素值即可。如上图中的P点,由于最接近D点,所以就直接取P=D。
这种方法会带来明显的失真。在A,B中点处的像素值会突然出现一个跳跃,这就是出现马赛克和锯齿等明显走样的原因。最临近插值法唯一的优点就是速度快。
2、双线性插值算法(Bilinear Interpolation)
其做法是將放大后未知的像素点P,將其位置换算到原始影像上,计算的四個像素点A,B,C,D对P点的影响(越靠近P点取值越大,表明影响也越大),其示意图如下。
其具体的算法分三步:
第一步插值计算出AB两点对P点的影响得到e点的值。
对线性插值的理解是这样的,对于AB两像素点之间的其它像素点的色彩值,认定为直线变化的,要求e点处的值,只需要找到对应位置直线上的点即可。换句话说,A,B间任意一点的值只跟A,B有关。
第二步,插值计算出CD两点对P点的影响得到f点的值。
第三步,插值计算出ef两点对P点的影响值。
双线性插值算法由于插值的结果是连续的,所以视觉上会比最邻近点插值算法要好一些,不过运算速度稍微要慢一点,如果讲究速度,是一个不错的折衷。
3、双立方插值算法(Bicubic Interpolation)
双立方插值算法与双线性插值算法类似,对于放大后未知的像素点P,将对其影响的范围扩大到邻近的16个像素点,依据对P点的远近影响进行插值计算,因P点的像素值信息来自16个邻近点,所以可得到较细致的影像,不过速度比较慢。
不过双立方插值算法与双线性插值算法的本质区别不仅在于扩大了影响点的范围,还采用高级的插值算法,如图所示
要求A,B两点之间e点的值,需要利用A,B周围A-1,A,B,B 1四个点的像素值,通过某种非线性的计算,得到光滑的曲线,从而算出e点的值来。
所谓“双”或者叫“二次”的意思就是在计算了横向插值影响的基础上,把上述运算拓展到二维空间,再计算纵向插值影响的意思。
双立方插值算法能够得到相对清晰的画面质量,不过计算量也变大。该算法在现在的众多图像处理软件中最为常用,比如Photoshop,After Effects,Avid,Final Cut Pro等。
为了得到更好的图像质量,在以上的基础上,许多新的算法不断涌现,它们使用了更加复杂的改进的插值方式。譬如B样条(B-SPline), 米切尔(Mitchell)等插值算法,它们的目的是使插值的曲线显得更平滑,图像边缘的表现更加完美。
4、 自适应样条插值极其增强技术( S-Spline & S-Spline XL)
与上述经典的插值方法最大的区别在于, S-Spline 采用了一种自适应技术,那些传统的方法总是依据周围的像素点来求未知点的色彩值,也就是说需要求解的色彩值仅仅依靠该像素点在图像中的位置,而非实际的图像的像素信息,而自适应样条算法还会考虑实际图像的像素信息。 实验表明,经过 S-Spline 算法得到的图像效果要优于双立方插值算法。
现在 S-Spline 算法又出现了增强版 S-Spline XL,新版本的 S-Spline XL 算法较 S-Spline 而言画面的锐度得到进一步增强,物体的轮廓更加清晰,边缘的锯齿现象大大减弱,图像感受更加自然。
二、 图像放大算法 实际测试
现在我们来对以上几种插值算法进行实际测试,看看它们的效果。首先打开原始的图像bird.jpg.这是一个分辨率为360×270的图像。
我们采用 BenVista 公司著名的 PhotoZoom Pro 2 软件,在pc电脑上进行测试,电脑的CPU配置为Inter Core 2 T5500 1.66GHz,分别采用以上5种插值方法把原始图像放大8倍得到5个2880×2160的图像
为了得到最好的图像放大质量,在可选条件下,我们应该使用自适应样条插值增强(S-S pline_ XL)技术来放大图像。
图像放大算法介绍(转载)相关推荐
- 图片缩放 算法 matlab,图像放大算法总结及MATLAB源程序.doc
图像放大算法总结及MATLAB源程序 1,插值算法(3种): (1)最邻近插值(近邻取样法): 最近插值的的思想很简单就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色.可见,最邻近插 ...
- 双线性内插法--图像缩放算法
目录 一.问题描述 二.算法原理 双线性内插法 双线性内插法参数计算 三.算法效果 四.算法代码 一.问题描述 我们在处理图像的时候常常会遇到图像放大的问题,那么选择什么样的图像放大算法,能有什么样的 ...
- 图像放大算法一:最近邻法(Nearest Interpolation)
图像放大算法有好几个,但是如果我们自己设计图像放大算法,这个或许是我们最容易想到的,其他的没有一点功底,恐怕不会搞. 图像放大算法总体思想:由于原来的图片像素少,现在的图片像素多,所以我们需要无中生有 ...
- 图像变形算法之meitu瘦脸及放大眼睛(文末含代码)
导语:很多时候,我们需要对一个图像的局部进行调整,这个调整必须是平滑的和可交互式的.Photoshop液化滤镜中向前变形工具就是这样一个工具,很好用.类似工具有美图秀秀(http://xiuxiu.m ...
- B样条差值算法图像放大的学习和实现
一个简单的 双三次B样条算法 实现的 图像放大 B样条算法图像放大的学习和实现 一.总体设计思路 本次B样条图像放大的实现建立在之前做的图像的显示,双线性插值图像放大的基础上.因为有之前的基础,所以实 ...
- Photozoom图像放大的技术一二事
平行空间下,未知的可能不仅仅是这个世界,还可能是前所未有的未知的探索.那么对于微小型世界来说,我们就需要借助技术的支撑来发现.photozoom就好比是"电子的放大镜",对我们清晰 ...
- 图像处理(十三)保刚性图像变形算法-Siggraph 2004
图像变形可以说是很多图像.动画领域的一个非常常见的功能,就说ps.天天P图.美图秀秀.可牛等这些每个软件,有好多个功能都要用到图像变形,比如图像方向校正.图像全景.视频防抖等,在我的另外一篇博文全景矩 ...
- yolo算法的优缺点分析_yolo算法介绍
yolo算法介绍 (2020-06-06 16:49:28) 把Yolo模型搞清楚后不得不再次为人类的智慧感慨,一个巧妙的模型. 要想理解Yolo我们先要搞清楚Yolo到底要解决一个什么问题,解决这个 ...
- 根据大小分割大文本_场景文本检测—CTPN算法介绍
SIGAI特约作者:沪东三哥 原创声明:本文为SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的. 其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算 ...
- DW里面html鼠标点击特效,dw制作鼠标经过时图像放大鼠标离开图像回原形效果
网页制作图片特效有很多种,其中鼠标经过图片,可以有图片变大或切换图片的效果,在一些网购平台上我们就可能会看到将鼠标放置在一个商品上时,商品的图片可能会变大或变成商品其他角度的图片了,这其实就是两个比较 ...
最新文章
- 深圳杯---无线回传拓扑规划
- 数据库acid简介(一)
- Machine Learning week 4 quiz: Neural Networks: Representation
- HarmonyOS之AI能力·关键字提取
- Spring5各模块之间的依赖关系
- 浮点数可以直接相加么?_鸭粪屎可以直接做有机肥么?
- JavaWeb开发概念了解
- php微信获取mediaid超出限制_Python实现每日微信自动打卡
- DHT(Distributed Hash Table,分布式哈希表)
- 在c语言程序中 对文件进行操作首先要,《C语言程序设计》试题八及答案
- emacs编辑器的使用
- UI基础之UITableView案例QQ聊天界面
- 联想万全t260磁盘阵列_联想万全T260G3服务器安装windows2008R2系统
- Google云也想为中国企业服务,正与腾讯浪潮谈合作
- 282.给表达式添加运算符
- 数字信号第二章freqz函数作业
- android pdf 乱码怎么解决方案,pdf文件打开是乱码怎么办?pdf字体乱码的解决办法...
- SVN服务器端安装教程
- 读书百客:《宴清都·初春》赏析
- DNS List (台湾的比较不错,推荐使用!)
热门文章
- 中国20年互联网的发展史
- WebDriver Sierra 10.12.3 N卡驱动
- 通过路由器端口映射实现远程桌面连接
- Linux系统工具sar查看主机性能指标(内存、CPU、IO)
- TouchDesigner案例(十)缤纷
- Python - 常用库 - OpenCC(中文繁简体转换)
- python爬虫采集财经数据
- lvm卷的缩减和扩容
- 不同币种间的清账 应付账款是USD记账 预付账款账款是人民币记账 如何清账
- Benzoic acid,4-(((diphenylamino)carbonyl)oxy)-3-nitro,2-硝基-4-羧基苯基-N,N-氨基甲酸二苯酯,2-Ncdc