張洋
(北京信息職業(yè)技術(shù)學(xué)院 專業(yè)部,北京 100070)
基于雙線性插值法的圖像縮放算法的設(shè)計與實現(xiàn)
張洋
(北京信息職業(yè)技術(shù)學(xué)院 專業(yè)部,北京 100070)
針對計算機技術(shù)圖形技術(shù)與手機移動終端的發(fā)展對圖像縮放后更高質(zhì)量的要求,文中基于雙線性插值原理,在Android平臺下實現(xiàn)了一種圖像縮放算法,減輕了圖像縮放后的鋸齒現(xiàn)象,提高了圖像縮放后的平滑度。仿真結(jié)果表明,該算法設(shè)計合理,達到了預(yù)期的設(shè)計目的。
圖像縮放;雙線性插值;Android
隨著計算機圖形技術(shù)與手機移動終端的發(fā)展,對圖像縮放后的圖像質(zhì)量提出了更高的要求。圖像的縮放從圖像處理角度而言是圖像的變形變換,其核心是通過原圖像到目標圖像的坐標變換,將原圖像的每個點的左邊經(jīng)某種變換轉(zhuǎn)化為目標圖像的相應(yīng)點的新坐標。插值是指在已知的離散數(shù)據(jù)上補插連續(xù)函數(shù),使補插連續(xù)函數(shù)的曲線通過全部給定的離散數(shù)據(jù)點,是處理離散函數(shù)逼近問題的重要方法,被廣泛應(yīng)用于圖像處理領(lǐng)域。過去常用的算法是基于鄰域的插值算法,該算法雖實現(xiàn)簡便,但縮放后圖像鋸齒度高。本文基于雙線性插值原理,實現(xiàn)了一種圖像縮放算法,減輕了圖像縮放后的鋸齒現(xiàn)象,并提高了平滑度。最終,并將該算法在Android平臺下進行了實現(xiàn)。
1.1BMP簡介
本算法對BMP圖像進行操作。BMP圖像文件是位圖文件,每一個像素均具有自身的RGB值,即一幅圖像是由一系列像素點構(gòu)成的點陣。BMP圖像文件格式,是微軟公司為其WINDOWS環(huán)境設(shè)置的標準圖像格式。BMP文件包括文件頭、位圖信息頭、顏色信息和圖形數(shù)據(jù)。24位位圖的結(jié)構(gòu)描述中沒有顏色信息這一部分。
BMP文件頭數(shù)據(jù)結(jié)構(gòu)中標注BMP文件的類型、位圖文件大小和位圖起始位置信息。其結(jié)構(gòu)定義為:typedef struct tagBITMAPFILEHEADER{}BITMAPFILEHEADER;
BMP位圖信息頭中標注有用于說明位圖的尺寸等信息的數(shù)據(jù)。其結(jié)構(gòu)定義為:typedef struct tagBITMAPINFOHEADER{}BITMAPINFOHEADER;
在24位BMP位圖中,位圖數(shù)據(jù)區(qū)不在是圖片的顏色索引,而直接是圖像的像素值。這將大幅簡化編程中的數(shù)據(jù)處理,提高信息隱藏的效率,這點也是本算法采用24位位圖的原因[2-8]。
1.2線性插值算法
插值是指在已知的離散數(shù)據(jù)上補插連續(xù)函數(shù),使補插連續(xù)函數(shù)的曲線通過全部給定的離散數(shù)據(jù)點,是處理離散函數(shù)逼近問題的重要方法,利用插值估算出函數(shù)在其他點處的近似值。即已知f(x)在區(qū)間[a,b]上n+1個互異節(jié)點,x0,x1,x2,…,xn處的函數(shù)值f(x0),f(x1),f(x2),…,f(xn),若存在函數(shù)S(x),滿足
則成S(x)為函數(shù)f(x)在點xi(i=0,1,2,…,n)處的插值,其中xi為插值節(jié)點,[a,b]為插值區(qū)間,求S(x)的方法稱為插值法。誤差函數(shù)R(x)=f(x)-S(x)稱為插值余項。根據(jù)插值函數(shù)的不同分為線性插值算法、多項式插值、牛頓插值、拉格朗日插值、三次樣條插值等。下文介紹以危險性插值算法[9-14]。
一維線性插值問題即已知(x0,y0),(x1,y1)情況下,求解P1(x)=a1x+a0使得P(xi)=yi,求解思路如圖1所示。根據(jù)點斜式可得
圖1 線性插值圖解Fig.1 Linear interpolation Graphic
其中p0,p1稱為插值基函數(shù)。
則
這樣就實現(xiàn)了一維的線性插值,一維線性插值是插值算法中實現(xiàn)較簡單的一個,但其體現(xiàn)了由離散到連續(xù)的轉(zhuǎn)化過程,這是所有插值算法的共同點之一。
通過原圖像到目標圖像的坐標變換,將原圖像的每個點的左邊經(jīng)某種變換轉(zhuǎn)化為目標圖像的相應(yīng)點的新坐標[15-16]。再通過原圖像的像素值得到變換后坐標處的像素值,即可實現(xiàn)。
2.1雙線性插值
將一維線性插值在兩個方向分別進行一次,即為在圖像縮放處理中的雙線性插值算法。由此可見,雙線性插值的核心是對兩個變量的線性插值。實現(xiàn)的步驟如下。
圖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軸方向插值,根據(jù)R1,R2像素,線性插值計算P點像素。即
值得注意的是,由于線性插值的線性性質(zhì),先進性y方向的插值再進行x方向的插值將得到與本文一致的結(jié)果。
2.2算法測試
文中所述的算法在Android平臺下測試,完成了某圖像處理系統(tǒng)中的圖像縮放模塊。由于Android平臺中的圖像每一個像素分別有Alpha、R、G、B 4個樣本組成,因此在完成本算法時應(yīng)按照圖3所示方法進行縮放。
圖3 Android平臺下實現(xiàn)雙線性插值Fig.3 Bilinear interpolation to achieve under Android platform
由圖3可知,本文將彩色的圖像先分解為A、R、G、B 4個灰度圖像,然后分別使用雙線性插值法進行縮放,縮放完成后將所得的灰度圖像合成即為彩色圖像的縮放結(jié)果。
以圖像的縮小為例,結(jié)果如4所示。
圖4 Android平臺下的圖像縮小仿真Fig.4 Android platform reduced image simulation
文中介紹了一種基于雙線性插值法的圖像縮放算法,通過采用線性插值的方法計算變換后的圖像像素,相對于鄰域插值算法,減輕了圖像縮放中的鋸齒現(xiàn)象,使得圖像縮放后更平滑。算法在時下最火的Android平臺中編程實現(xiàn),既使手機中的圖像可及時符合屏幕的大小,也可生成對應(yīng)的縮略圖,并能在手機圖像處理軟件中廣泛應(yīng)用。
[1]李弼程.智能圖像處理技術(shù)[M].北京:電子工業(yè)出版社,2004.
[2]David,F(xiàn)·Rogers.計算機圖形學(xué)的算法基礎(chǔ)[M].北京:機械工業(yè)出版社,2002.
[3]孫家廣.計算機圖形學(xué)[M].北京:清華大學(xué)出版社,1998.
[4]王秋生,孫圣和,鄭為民.數(shù)字音頻信號的脆弱水印嵌入算法[J].計算機學(xué)報,2002,25(5):1-6.
[5]楊義先,馬春光,鈕心忻,等.信息安全新技術(shù)[M].2版.北京:北京郵電大學(xué)出版社,2013.
[6]李晗.圖像處理算法序列優(yōu)化的動態(tài)規(guī)劃鏈方法研究[D].杭州:浙江工業(yè)大學(xué),2000.
[7]李琳琪.一類圖像處理算法的可重構(gòu)研究[D].西安:西北工業(yè)大學(xué),2004.
[8]王玉靈.基于雙邊濾波的圖像處理算法研究[D].西安:西安電子科技大學(xué),2010.
[9]于濤.唇型提取及識別的圖像處理算法研究 [D].呼和浩特:內(nèi)蒙古大學(xué),2008.
[10]王強,檀結(jié)慶,胡敏.基于有理樣條的圖像縮放算法[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2007,19(10):1348-1351.
[11]陳寶國,李寧.一種基于Sobel算子和混合有理插值的圖像縮放方法[J].微電子學(xué)與計算機,2012,29(2):150-152,158.
[13]謝春輝,程義民,陳揚坤.數(shù)字圖像中擴頻水印的盲提取方法[J].數(shù)據(jù)采集與處理,2011(1):26-30.
[14]馮帆,王建華,張政保,等.基于CSR-ICA模型的隱寫信息盲提取算法[J].計算機工程與應(yīng)用,2013(24):70-73.
[15]王森,楊克儉.基于雙線性插值的圖像縮放算法的研究與實現(xiàn)[J].自動化技術(shù)與應(yīng)用,2008,27(7):44-45.
[16]陳瑋,徐憲.差分投影快速定向圖像插值算法的優(yōu)化[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—),女,吉林長春人,碩士,講師。研究方向:數(shù)字音視頻技術(shù)、圖像處理。。