基于双线性插值法的图像缩放算法的设计与实现

2016-09-13 07:25张洋
电子设计工程 2016年3期
关键词:插值法插值图像处理

张洋

(北京信息职业技术学院 专业部,北京 100070)

基于双线性插值法的图像缩放算法的设计与实现

张洋

(北京信息职业技术学院 专业部,北京 100070)

针对计算机技术图形技术与手机移动终端的发展对图像缩放后更高质量的要求,文中基于双线性插值原理,在Android平台下实现了一种图像缩放算法,减轻了图像缩放后的锯齿现象,提高了图像缩放后的平滑度。仿真结果表明,该算法设计合理,达到了预期的设计目的。

图像缩放;双线性插值;Android

随着计算机图形技术与手机移动终端的发展,对图像缩放后的图像质量提出了更高的要求。图像的缩放从图像处理角度而言是图像的变形变换,其核心是通过原图像到目标图像的坐标变换,将原图像的每个点的左边经某种变换转化为目标图像的相应点的新坐标。插值是指在已知的离散数据上补插连续函数,使补插连续函数的曲线通过全部给定的离散数据点,是处理离散函数逼近问题的重要方法,被广泛应用于图像处理领域。过去常用的算法是基于邻域的插值算法,该算法虽实现简便,但缩放后图像锯齿度高。本文基于双线性插值原理,实现了一种图像缩放算法,减轻了图像缩放后的锯齿现象,并提高了平滑度。最终,并将该算法在Android平台下进行了实现。

1 算法简介

1.1BMP简介

本算法对BMP图像进行操作。BMP图像文件是位图文件,每一个像素均具有自身的RGB值,即一幅图像是由一系列像素点构成的点阵。BMP图像文件格式,是微软公司为其WINDOWS环境设置的标准图像格式。BMP文件包括文件头、位图信息头、颜色信息和图形数据。24位位图的结构描述中没有颜色信息这一部分。

BMP文件头数据结构中标注BMP文件的类型、位图文件大小和位图起始位置信息。其结构定义为:typedef struct tagBITMAPFILEHEADER{}BITMAPFILEHEADER;

BMP位图信息头中标注有用于说明位图的尺寸等信息的数据。其结构定义为:typedef struct tagBITMAPINFOHEADER{}BITMAPINFOHEADER;

在24位BMP位图中,位图数据区不在是图片的颜色索引,而直接是图像的像素值。这将大幅简化编程中的数据处理,提高信息隐藏的效率,这点也是本算法采用24位位图的原因[2-8]。

1.2线性插值算法

插值是指在已知的离散数据上补插连续函数,使补插连续函数的曲线通过全部给定的离散数据点,是处理离散函数逼近问题的重要方法,利用插值估算出函数在其他点处的近似值。即已知f(x)在区间[a,b]上n+1个互异节点,x0,x1,x2,…,xn处的函数值f(x0),f(x1),f(x2),…,f(xn),若存在函数S(x),满足

则成S(x)为函数f(x)在点xi(i=0,1,2,…,n)处的插值,其中xi为插值节点,[a,b]为插值区间,求S(x)的方法称为插值法。误差函数R(x)=f(x)-S(x)称为插值余项。根据插值函数的不同分为线性插值算法、多项式插值、牛顿插值、拉格朗日插值、三次样条插值等。下文介绍以危险性插值算法[9-14]。

一维线性插值问题即已知(x0,y0),(x1,y1)情况下,求解P1(x)=a1x+a0使得P(xi)=yi,求解思路如图1所示。根据点斜式可得

图1 线性插值图解Fig.1 Linear interpolation Graphic

其中p0,p1称为插值基函数。

这样就实现了一维的线性插值,一维线性插值是插值算法中实现较简单的一个,但其体现了由离散到连续的转化过程,这是所有插值算法的共同点之一。

2 算法实现

通过原图像到目标图像的坐标变换,将原图像的每个点的左边经某种变换转化为目标图像的相应点的新坐标[15-16]。再通过原图像的像素值得到变换后坐标处的像素值,即可实现。

2.1双线性插值

将一维线性插值在两个方向分别进行一次,即为在图像缩放处理中的双线性插值算法。由此可见,双线性插值的核心是对两个变量的线性插值。实现的步骤如下。

图2 双线性插值算法图示Fig.2 Bilinear interpolation algorithm shown

如图2所示,文中由红色像素点与待插值得到新的绿色估计的像素点。完成图像像素的映射同时即可完成图像的缩放。即在已知Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1),Q22=(x2,y2),4个点像素的前提下,求P=(x,y)点出的像素值。

步骤1 X轴方向线性插值,插入R1,R2,即

步骤2 Y轴方向插值,根据R1,R2像素,线性插值计算P点像素。即

值得注意的是,由于线性插值的线性性质,先进性y方向的插值再进行x方向的插值将得到与本文一致的结果。

2.2算法测试

文中所述的算法在Android平台下测试,完成了某图像处理系统中的图像缩放模块。由于Android平台中的图像每一个像素分别有Alpha、R、G、B 4个样本组成,因此在完成本算法时应按照图3所示方法进行缩放。

图3 Android平台下实现双线性插值Fig.3 Bilinear interpolation to achieve under Android platform

由图3可知,本文将彩色的图像先分解为A、R、G、B 4个灰度图像,然后分别使用双线性插值法进行缩放,缩放完成后将所得的灰度图像合成即为彩色图像的缩放结果。

以图像的缩小为例,结果如4所示。

图4 Android平台下的图像缩小仿真Fig.4 Android platform reduced image simulation

3 结束语

文中介绍了一种基于双线性插值法的图像缩放算法,通过采用线性插值的方法计算变换后的图像像素,相对于邻域插值算法,减轻了图像缩放中的锯齿现象,使得图像缩放后更平滑。算法在时下最火的Android平台中编程实现,既使手机中的图像可及时符合屏幕的大小,也可生成对应的缩略图,并能在手机图像处理软件中广泛应用。

[1]李弼程.智能图像处理技术[M].北京:电子工业出版社,2004.

[2]David,F·Rogers.计算机图形学的算法基础[M].北京:机械工业出版社,2002.

[3]孙家广.计算机图形学[M].北京:清华大学出版社,1998.

[4]王秋生,孙圣和,郑为民.数字音频信号的脆弱水印嵌入算法[J].计算机学报,2002,25(5):1-6.

[5]杨义先,马春光,钮心忻,等.信息安全新技术[M].2版.北京:北京邮电大学出版社,2013.

[6]李晗.图像处理算法序列优化的动态规划链方法研究[D].杭州:浙江工业大学,2000.

[7]李琳琪.一类图像处理算法的可重构研究[D].西安:西北工业大学,2004.

[8]王玉灵.基于双边滤波的图像处理算法研究[D].西安:西安电子科技大学,2010.

[9]于涛.唇型提取及识别的图像处理算法研究 [D].呼和浩特:内蒙古大学,2008.

[10]王强,檀结庆,胡敏.基于有理样条的图像缩放算法[J].计算机辅助设计与图形学学报,2007,19(10):1348-1351.

[11]陈宝国,李宁.一种基于Sobel算子和混合有理插值的图像缩放方法[J].微电子学与计算机,2012,29(2):150-152,158.

[13]谢春辉,程义民,陈扬坤.数字图像中扩频水印的盲提取方法[J].数据采集与处理,2011(1):26-30.

[14]冯帆,王建华,张政保,等.基于CSR-ICA模型的隐写信息盲提取算法[J].计算机工程与应用,2013(24):70-73.

[15]王森,杨克俭.基于双线性插值的图像缩放算法的研究与实现[J].自动化技术与应用,2008,27(7):44-45.

[16]陈玮,徐宪.差分投影快速定向图像插值算法的优化[J].电子科技,2015,28(6):28-32.

Design and implementation of image scaling algorithm based on bilinear interpolation

ZHANG Yang
(Department of Professional Curriculum,Beijing Information Technology College,Beijing 100070,China)

In order to satisfy the requirement of the modern image scaling,a professionalimage scaling algorithmbased on bilinear interpolationis proposed in this paper.After the scaling of the image,we Reduce the phenomenon and improve the smoothness of the image.Our algorithmcan also be implemented on Android platform realizing the image processing on mobile phone.

image scaling;bilinear interpolation;Android

TP311

A

1674-6236(2016)03-0169-02

2015-03-22稿件编号:201503300

张 洋(1979—),女,吉林长春人,硕士,讲师。研究方向:数字音视频技术、图像处理。。

猜你喜欢
插值法插值图像处理
基于ARM嵌入式的关于图像处理的交通信号灯识别
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
基于Sinc插值与相关谱的纵横波速度比扫描方法
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
混合重叠网格插值方法的改进及应用
顾及局部特性的自适应3D矢量场反距离权重插值法
采用单元基光滑点插值法的高温管道热应力分析
基于图像处理的定位器坡度计算