文档章节

图像放大算法

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:46
字数 1502
阅读 8
收藏 0

一、 图像放大算法

 

 

图像放大有许多算法,其关键在于对未知像素使用何种插值方式。以下我们将具体分析几种常见的算法,然后从放大后的图像是否存在色彩失真,图像的细节是否得到较好的保存,放大过程所需时间是否分配合理等多方面来比较它们的优劣。

 

当把一个小图像放大的时候,比如放大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,DP点的影响(越靠近P点取值越大,表明影响也越大),其示意图如下。

 

 

 

 

 

 

其具体的算法分三步:

 

第一步插值计算出AB两点对P点的影响得到e点的值。

 

对线性插值的理解是这样的,对于AB两像素点之间的其它像素点的色彩值,认定为直线变化的,要求e点处的值,只需要找到对应位置直线上的点即可。换句话说,A,B间任意一点的值只跟A,B有关。

 

第二步,插值计算出CD两点对P点的影响得到f点的值。

第三步,插值计算出ef两点对P点的影响值。

双线性插值算法由于插值的结果是连续的,所以视觉上会比最邻近点插值算法要好一些,不过运算速度稍微要慢一点,如果讲究速度,是一个不错的折衷。

 

3、双立方插值算法(Bicubic Interpolation)

 

双立方插值算法与双线性插值算法类似,对于放大后未知的像素点P,将对其影响的范围扩大到邻近的16个像素点,依据对P点的远近影响进行插值计算,因P点的像素值信息来自16个邻近点,所以可得到较细致的影像,不过速度比较慢。

 

 

不过双立方插值算法与双线性插值算法的本质区别不仅在于扩大了影响点的范围,还采用高级的插值算法,如图所示

 

 

要求AB两点之间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倍得到52880×2160的图像

 

 

 

 

 

 

 

 

 

 

 

    为了得到最好的图像放大质量,在可选条件下,我们应该使用自适应样条插值增强(S-S pline_ XL)技术来放大图像。

 

 

 

 

本文转载自:http://www.cnblogs.com/celerychen/archive/2010/11/25/3588222.html

共有 人打赏支持
abcijkxyz
粉丝 64
博文 6196
码字总数 1876
作品 0
深圳
项目经理
私信 提问
图像的上采样(upsampling)与下采样(downsampled)

缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图。放大图像(或称为上采样(upsampling)或图像...

漫步当下
05/04
0
0
内容感知图像压缩/扩展库 - Caire

Caire 是基于论文《Seam Carving for Content-Aware Image Resizing》(图像伸缩变换算法)实现的一个内容感知图像 (尺寸) 压缩/扩展库。 特性 已实现: 支持自定义命令行 支持缩小/放大图像...

匿名
02/01
0
0
常用的像素操作算法:Resize、Flip、Rotate

Resize 图像缩放是把原图像按照目标尺寸放大或者缩小,是图像处理的一种。 图像缩放有多种算法。最为简单的是最临近插值算法,它是根据原图像和目标图像的尺寸,计算缩放的比例,然后根据缩放...

fengzhizi715
2017/12/14
0
0
谈谈自动瘦脸和自动眼睛放大算法

目前,手机上各种图片特效的软件应用App盛行,典型的如camare360,美图秀秀,powercalm等。上述图像特效软件最初发布的版本的特效实现基本上是基于调色的技术,在后续发布的版本中有少量的比...

abcijkxyz
2016/11/22
43
0
德国科学家发明人工智能算法,可以提升模糊照片分辨率

这套算法可以通过机器学习,将模糊的纹理描绘清晰。 当我们在打印照片、海报时,常常会因为照片模糊不清而头疼。即使用PS的方法也难以把分辨率提升到清晰的程度。 最近,德国马克斯·普朗克研...

行者武松
03/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
53分钟前
1
0
hadoop垃圾回收站

在生产生,hdfs回收站必须是开启的,一般设置为7天。 fs.trash.interval 为垃圾回收站保留时间,如果为0则禁用回收站功能。 fs.trash.checkpoint.interval 回收站检查点时间,一般设置为小于...

hnairdb
昨天
1
0
腾讯与Github的魔幻会面背后的故事…

10月22日,腾讯开源管理办公室有幸邀请到Github新晋CEO Nat Friedman,前来鹅厂参观交流。目前腾讯已经有近70个项目在Github上开源,共获得17w stars,世界排名11位。Github是腾讯开源的主阵...

腾讯开源
昨天
9
0
单例模式

单例模式(Singleton pattern)属于创建型设计模式。 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对...

NinjaFrog
昨天
2
0
TypeScript基础入门之装饰器(三)

转载 TypeScript基础入门之装饰器(三) 继续上篇文章[TypeScript基础入门之装饰器(二)] 访问器装饰器 Accessor Decorator在访问器声明之前声明。 访问器装饰器应用于访问器的属性描述符,可用...

durban
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部