范秋生
(黃岡職業(yè)技術(shù)學(xué)院 黃岡 438002)
圖像對(duì)于我們并不陌生,它是用各種觀測(cè)系統(tǒng)以不同形式和手段觀測(cè)客觀世界而獲得的,可以直接或間接作用于人眼并進(jìn)而產(chǎn)生視覺(jué)的實(shí)體。圖像包含有大量的信息,因而存儲(chǔ)和處理圖像都不是一件簡(jiǎn)單的工作。但是,隨著計(jì)算機(jī)的誕生和發(fā)展,人們有希望將對(duì)圖像的存儲(chǔ)和處理這一繁重的工作借助于計(jì)算機(jī)來(lái)實(shí)現(xiàn),從而減輕人們的工作壓力。
人們經(jīng)常要對(duì)圖像進(jìn)行各種加工以改善圖像的視覺(jué)效果;或?qū)D像進(jìn)行壓縮編碼以減少對(duì)其所需存儲(chǔ)空間或傳輸時(shí)間的要求;利用圖像處理也能夠修改圖形,改善圖像質(zhì)量,或是從圖像中提起有效信息,還有利用圖像處理可以對(duì)圖像進(jìn)行體積壓縮,便于傳輸和保存;同時(shí)采用各種方法對(duì)圖像進(jìn)行復(fù)原和增強(qiáng);對(duì)圖像進(jìn)行分割、描述和識(shí)別等。所以,推動(dòng)圖像處理技術(shù)也有了快速的發(fā)展,各種圖像處理軟件也隨處可見(jiàn)。
1、 旋轉(zhuǎn)算法
一般的圖像旋轉(zhuǎn)以圖像的中心為原點(diǎn),旋轉(zhuǎn)一定得角度。如圖所示,點(diǎn)(x0,y0)經(jīng)過(guò)旋轉(zhuǎn) θ 后坐標(biāo)變成(x1,y1)。
在旋轉(zhuǎn)前:
旋轉(zhuǎn)后:

寫(xiě)成矩陣的表達(dá)式為:

其逆運(yùn)算如下:

如果圖像是繞一個(gè)指定點(diǎn)(a,b)旋轉(zhuǎn),則先要將坐標(biāo)系平移到該點(diǎn),再進(jìn)行旋轉(zhuǎn),然后再平移回新的坐標(biāo)原點(diǎn),假定旋轉(zhuǎn)前的圖像中心坐標(biāo)是(a,b),旋轉(zhuǎn)后的中心坐標(biāo)是(c,d),則旋轉(zhuǎn)變換矩陣表達(dá)式為:

因此:

在上面的轉(zhuǎn)換公式中,令

其 中 a=lWidth-1/2,b=lHeight-1/2,c=lNewWidth-1/2,d=lNewHeight-1/2,lWidth和lHeight分別為旋轉(zhuǎn)前圖像的寬度和高度,lNewWidth和lNewHeight分別為旋轉(zhuǎn)后圖像的寬度和高度。
則可以推導(dǎo)出以圖像中心為旋轉(zhuǎn)中心點(diǎn)的圖像旋轉(zhuǎn)坐標(biāo)[6]即公式為:

在實(shí)現(xiàn)左右方向的旋轉(zhuǎn)時(shí),我們選取角度θ的不同值,使得坐標(biāo)值得以改變,以實(shí)現(xiàn)圖像最終在方向上的旋轉(zhuǎn)。
2、 壓縮算法
(1)JPEG的壓縮算法
JPEG壓縮算法可以用失真的壓縮方式來(lái)處理圖像,但失真的程度卻是肉眼所無(wú)法辨認(rèn)的。這也就是為什么JPEG會(huì)有如此滿意的壓縮比例的原因。下面先來(lái)討論JPEG基本壓縮法。
JPEG壓縮過(guò)程
JPEG壓縮分四個(gè)步驟實(shí)現(xiàn):
⑴顏色模式轉(zhuǎn)換及采樣;
⑵DCT變換;
⑶量化;
⑷編碼。

圖3-1 JPEG壓縮過(guò)程
①顏色模式轉(zhuǎn)換及采樣
RGB色彩系統(tǒng)是我們最常用的表示顏色的方式。JPEG采用的是YCbCr色彩系統(tǒng)。通過(guò)下列計(jì)算公式可完成數(shù)據(jù)轉(zhuǎn)換。
Y=0.2990R+0.5870G+0.1140B
Cb=-0.1687R-0.3313G+0.5000B+128
Cr=0.5000R-0.4187G-0.0813B+128
JPEG通常有兩種采樣方式:YUV411和YUV422,它們所代表的意義是Y、Cb和Cr三個(gè)成份的數(shù)據(jù)取樣比例。
②DCT變換
DCT變換的全稱(chēng)是離散余弦變換(Discrete Cosine Transform),是指將一組光強(qiáng)數(shù)據(jù)轉(zhuǎn)換成頻率數(shù)據(jù),以便得知強(qiáng)度變化的情形。
DCT變換公式:
x,y代表圖像數(shù)據(jù)矩陣內(nèi)某個(gè)數(shù)值的坐標(biāo)位置
f(x,y)代表圖像數(shù)據(jù)矩陣內(nèi)的數(shù)個(gè)數(shù)值
u,v代表DCT變換后矩陣內(nèi)某個(gè)數(shù)值的坐標(biāo)位置
F(u,v)代表DCT變換后矩陣內(nèi)的某個(gè)數(shù)值
u=0 且 v=0 c(u)c(v)=1/1.414
u>0 或 v>0 c(u)c(v)=1
經(jīng)過(guò)DCT變換后的矩陣數(shù)據(jù)自然數(shù)為頻率系數(shù),這些系數(shù)以F(0,0)的值最大,稱(chēng)為DC,其余的63個(gè)頻率系數(shù)則多半是一些接近于0的正負(fù)浮點(diǎn)數(shù),一概稱(chēng)之為AC。
③量化
圖像數(shù)據(jù)轉(zhuǎn)換為頻率系數(shù)后,還得接受一項(xiàng)量化程序,才能進(jìn)入編碼階段。量化階段需要兩個(gè)8*8矩陣數(shù)據(jù),一個(gè)是專(zhuān)門(mén)處理亮度的頻率系數(shù),另一個(gè)則是針對(duì)色度的頻率系數(shù),將頻率系數(shù)除以量化矩陣的值,取得與商數(shù)最近的整數(shù),即完成量化。
④編碼
Huffman編碼無(wú)專(zhuān)利權(quán)問(wèn)題,成為JPEG最常用的編碼方式,Huffman編碼通常是以完整的MCU來(lái)進(jìn)行的。編碼時(shí),每個(gè)矩陣數(shù)據(jù)的DC值與63個(gè)AC值,將分別使用不同的Huffman編碼表,而亮度與色度也需要不同的Huffman編碼表,所以一共需要四個(gè)編碼表,才能順利地完成JPEG編碼工作。
實(shí)現(xiàn)上述四個(gè)步驟,即完成一幅圖像的JPEG壓縮。
目前,針對(duì)圖像處理技術(shù)的軟件己在市場(chǎng)上亮相,對(duì)于圖像處理的初學(xué)者和算法研究人員開(kāi)發(fā)的學(xué)習(xí)實(shí)驗(yàn)用的系統(tǒng)已成為專(zhuān)業(yè)人士的主要研究課題。希望我所做的探索可為將來(lái)的研究開(kāi)發(fā)提供一些思路和參考,可有所借鑒。
[1]熊江.面向?qū)ο蟮目蚣茉O(shè)計(jì)[J].西南師范大學(xué)學(xué)報(bào).2003,28(3):249~252
[2]朱彥軍.BMP位圖文件的存儲(chǔ)格式[J].電腦編程技巧與維護(hù).2003,11:56~59
[3]陶勝.JPEG圖像文件格式分析及顯示[J].電腦編程技巧與維護(hù).2001,7:98~100