閆超,李雪
(黑龍江八一農墾大學信息技術學院,大慶 163319)
對于圖像數據庫的用戶來說,文字索引不夠直觀,用戶更喜歡的是圖像索引[1],因為圖像作為索引更加的直觀,用戶能夠清晰的根據需求選擇選項。然而用高清晰的原始圖像作為索引會拖慢圖像數據庫管理系統(tǒng)的運行速度,為了解決這個問題,運用圖像縮放算法對原始圖像進行縮放,得到圖像縮略圖,從而獲取更快的反應速度,并采用預生成索引的方式建立數據庫,使得數據庫的訪問速度進一步提高。
將縮放后的圖像坐標通過反向變換得到的一個浮點坐標,對其進行簡單的四舍五入的取整,得到一個整數型坐標,這個整數型坐標在原圖像對應的像素值就是縮放后目標像素的像素值。最鄰近插值[2]簡單且直觀,建立速度快,雖然產生了鋸齒,得到的圖像質量不高,但對于應用已經足夠。
設原圖像為f(x,y),縮放后的圖像為g(u,v),水平縮放系數為ZX,豎直縮放系數為ZY,則用下面公式(1)計算使用最臨近插值法縮放后的像素值:
將縮放后的圖像坐標通過反向變換得到的一個浮點坐標,將浮點坐標在原圖像位置周圍的4 個像素根據某種權值進行加權運算得到的像素值就是縮放后目的像素的像素值。雙線性插值縮放后圖像質量高,極大地消除了鋸齒現象,不會出現像素值不連續(xù)的情況,但由于具有低通濾波器的性質,使高頻分量受損,所以可能會使圖像輪廓在一定程度上變得模糊。
設原圖像為f(x,y),縮放后的圖像為g(u,v),水平縮放系數為ZX,豎直縮放系數為ZY,則使用下面公式(3)計算使用雙線性插值法縮放后的像素值:
令
則有
三次卷積法[3]能夠克服以上兩種算法的不足,是雙線性插值算法的改進算法,它輸出圖像的每個像素都是原圖16 個像素運算的結果。計算精度很高但計算量也很大。
設原圖像為f(x,y),縮放后的圖像為g(u,v),水平縮放系數為ZX,豎直縮放系數為ZY,則使用下面公式(5)計算使用三次卷積法縮放后的像素值:令
x′=[u/ZX],y′=[v/ZY]
則有
式(5)中:[A]=[S(m+1) S(m+0) S(m-1) S(m-2)]
通過以上三種算法的解析,得到如表1 算法對照表。經過分析,采用雙線性插值法作為縮放圖像的算法。因為雙線性插值法的縮放質量高,作為索引縮略圖,對圖像輪廓的要求不高,并且雙線性插值的計算量不大,這樣在生成索引縮略圖時消耗的時間不會太長,綜合考慮,選擇了雙線性插值為縮放算法。
表1 算法對照表Table 1 Algorithm table
在圖像數據庫管理系統(tǒng)中,在保證使用高清晰原始圖像索引(如圖1)和圖像縮略圖索引(如圖2)顯示效果相同的前提下。為了對比在讀取數據庫時,讀取高清晰原始圖像和圖像縮略圖對圖像數據庫管理系統(tǒng)運行耗費時間的影響,進行了讀取索引圖像時間對比測試,測試結果如表2 所示。
測試環(huán)境:32 位WIN7 旗艦版。
處理器:E4600 雙核處理器 內存2G。
表2 索引圖像讀取時間Table 2 The time of index image reading
圖1 高清晰原始圖像索引Fig.1 High-definition original image index
圖2 圖像縮略圖索引Fig.2 Image thumbnails index
由表2 的數據可以計算出以下結果:當圖像數據庫中的圖片數為10 張時,讀取原圖時間是讀取縮略圖時間的4 661/445=10.47 倍;當圖像數據庫中的圖片數為20 張時,讀取原圖時間是讀取縮略圖時間的8 995/522=17.23 倍;當圖像數據庫中的圖片數為30 張時,讀取原圖時間是讀取縮略圖時間的18 012/972=18.53 倍;當圖像數據庫中的圖片數為40 張時,讀取原圖已經顯示內存不足,而讀取縮略圖的時間僅僅為1 420 ms。
可見使用圖像縮略圖做索引比使用高清晰原始圖像做索引對讀取數據庫數據效果要更好,而且形象直觀。
預生成縮略圖就是在向數據庫中存儲高清晰原始圖像的時候,直接生成縮略圖;而實時生成縮略圖則是指在調用圖像數據庫管理系統(tǒng)的時候動態(tài)的生成縮略圖。預生成縮略圖和實時生成縮略圖的對比如表3。
表3 預生成縮略圖和實時生成縮略圖的對比Table 3 The contrast of preliminary generated thumbnail and real-time generated thumbnail
由圖2 可知預生成縮略圖和實時生成縮略圖的優(yōu)缺點,在圖像數據庫管理系統(tǒng)中選擇的生成方法是預生成縮略圖。因為現在的計算機硬盤空間比較大,一張108*81 像素的圖像的大小大約在26 K,40張縮略圖耗費的空間大約為40*26 K=1 040 K,但是如果采取實時生成縮略圖的方式,對于性能不是很強的計算機如測試計算機(處理器:E4600 雙核處理器 內存2G)會出現卡死的現象,因為實時生成縮略圖首先要把原圖調入內存中,然后對原圖進行處理再顯示到程序中,這將耗費CPU,甚至卡死。而預生成縮略圖僅僅是從數據庫中調取縮略圖的路徑進行顯示,對于CPU 的要求要遠遠小于實時生成縮略圖。
由以上內容可以看出,采用雙線性插值法的預生成縮略圖方式生成索引圖像無疑是方便、快捷且有效的方法,給圖像數據庫管理系統(tǒng)的應用打下了堅實的基礎,為后期的系統(tǒng)完善提供了有力的保障。
[1]唐俊華,閻保平.基于LSH 索引的快速圖像檢索[J].計算機工程與應用,2002,24(21):20-22.
[2]王艷莉.插值算法應用在圖像縮放中的研究[J].煙臺教育學院學報,2005,11(1):31-33.
[3]李秀英,袁紅.幾種圖像縮放算法的研究[J].現代電子技術,2012,35(5):48-51.