畢業(yè)設(shè)計(jì)(論文)指紋自動(dòng)識別系統(tǒng)_第1頁
畢業(yè)設(shè)計(jì)(論文)指紋自動(dòng)識別系統(tǒng)_第2頁
畢業(yè)設(shè)計(jì)(論文)指紋自動(dòng)識別系統(tǒng)_第3頁
畢業(yè)設(shè)計(jì)(論文)指紋自動(dòng)識別系統(tǒng)_第4頁
畢業(yè)設(shè)計(jì)(論文)指紋自動(dòng)識別系統(tǒng)_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、學(xué)士學(xué)位論文1 緒 論1.1、指紋自動(dòng)識別技術(shù)的歷史、現(xiàn)狀和未來自動(dòng)指紋識別技術(shù)是一種有著廣泛應(yīng)用背景的身份鑒定技術(shù)。本論文主要介紹了自動(dòng)指紋識別系統(tǒng)的指紋圖像處理和指紋匹配兩部分。指紋識別的基本原理為:采用細(xì)節(jié)點(diǎn)坐標(biāo)模型來做細(xì)節(jié)匹配,即對指紋的脊線末梢和指紋的脊線分支點(diǎn)提取特征點(diǎn)來鑒定指紋。具體的自動(dòng)指紋識別系統(tǒng)框圖見圖1-1。 圖1-1 自動(dòng)指紋識別系統(tǒng)框圖考古證實(shí),公元前7000年到6000 年以前,古敘利亞和中國,指紋作為身份鑒別己經(jīng)開始應(yīng)用??脊虐l(fā)現(xiàn),在這個(gè)時(shí)代,一些粘土陶器上留有陶藝匠人的指紋,中國的一些文件上印有起草者的大拇指指紋,在 jercho 的古城市的房屋留有磚匠一對大拇

2、指指紋的印記等。雖然指紋的一些特征己經(jīng)被人們認(rèn)識和接受而不能證明,但指紋己廣泛應(yīng)用社會(huì)的各個(gè)方面。19世紀(jì)初,科學(xué)研究發(fā)現(xiàn)了至今仍然承認(rèn)的指紋的兩個(gè)重要特征:一是兩個(gè)不同手指的指紋脊線的式樣(ridge pattern)不同,另外一個(gè)是指紋脊線的式樣終生不改變。這個(gè)研究成果使得指紋在犯罪鑒別中得以正式應(yīng)用。(主要代表性的事件有:1896年阿根廷首次應(yīng)用,然后是1901年的蘇格蘭,20世紀(jì)初其他國家也相繼應(yīng)用到犯罪鑒別中) 20世紀(jì) 60年代,由于計(jì)算機(jī)可以有效的處理圖形,人們開始著手研究利用計(jì)算機(jī)來處理指紋。從那時(shí)起,自動(dòng)指紋識別系統(tǒng) afis在法律實(shí)施方而的研究和應(yīng)用在世界許多國家展開。20

3、世紀(jì)80年代,個(gè)人電腦、光學(xué)掃描這兩項(xiàng)技術(shù)的革新,使得它們作為指紋取像的工具成為現(xiàn)實(shí),從而使指紋識別可以在其他領(lǐng)域中得以應(yīng)用,比如代替ic卡?,F(xiàn)在(90 年代后期),低價(jià)位取像設(shè)備的引入及其飛速發(fā)展,可靠的比對算法的發(fā)現(xiàn)為個(gè)人身份識別應(yīng)用的增長提供了舞臺。對指紋識別技術(shù)來說,被廣泛接受意味著在影響千萬人的日常生活的各個(gè)地方使用。通過取代個(gè)人識別碼和口令,指紋識別技術(shù)可以阻止非授權(quán)的訪問,可以防止盜用 atm、蜂窩電話、智能卡、桌面 pc、工作站及其計(jì)算機(jī)網(wǎng)絡(luò);在通過電話、網(wǎng)絡(luò)進(jìn)行的金融交易時(shí)進(jìn)行身份認(rèn)證;在建筑物或工作場所,指紋識別技術(shù)可以取代鑰匙、證件、圖章和卡閱讀器。然而,必須指出的是,指

4、紋識別技術(shù)到目前在國內(nèi)乃至世界上仍未普及,其主要原因是:(1)速度慢,目前一般系統(tǒng)辨別時(shí)需要數(shù)秒鐘甚至更長;(2)價(jià)格高,系統(tǒng)過于昂貴;(3)性能差,錯(cuò)誤拒識率(false reject rate:frr)和錯(cuò)誤接受率(falseaccepted rate:far)過高。因此,對快速而精確的指紋識別方法的研究有著重要的科學(xué)意義和應(yīng)用價(jià)值。一般來說,一個(gè)指紋自動(dòng)識別系統(tǒng)(automated fingerprint identification system:afis)主要包括指紋圖像提取子系統(tǒng)、指紋識別子系統(tǒng)和指紋壓縮存儲子系統(tǒng)幾個(gè)部分組成。其中,指紋識別子系統(tǒng)是整個(gè)系統(tǒng)的核心部分,包括指紋圖象

5、處理、特征提取、指紋分類及匹配等四部分。本文將主要對指紋圖象處理和特征提取的部分算法加以討論和研究。1.2、本文的主要研究工作本文主要的研究內(nèi)容是在vc+環(huán)境下實(shí)現(xiàn)指紋圖像的小波變換和預(yù)處理,同時(shí)還研究指紋特征提取及匹配算法問題。全文對小波的基本理論進(jìn)行了簡要介紹,并對指紋圖像小波變換的實(shí)現(xiàn)、基于小波變換頻率特性的應(yīng)用指紋圖像濾波處理、指紋圖像增強(qiáng)處理的理論以及vc+編程實(shí)現(xiàn)進(jìn)行了比較深入地研究,并列出了實(shí)現(xiàn)程序。此外,本文還在對指紋圖像的預(yù)處理方法進(jìn)行分析和研究的基礎(chǔ)上,提出了一套指紋預(yù)處理算法,采用該算法可以得到清晰的指紋點(diǎn)線圖,效果較為突出。第2章 vc+環(huán)境下小波變換及指紋圖像處理2.

6、1 小波的基本理論2.1.1 小波分析圖像處理小波變換是最近20多年來發(fā)展起來的用于信號分析和信號處理的一種新的域變換技術(shù)。由于小波變換是把信號在不同尺度上進(jìn)行小波展開,它更適合于處理突變信號和非平穩(wěn)信號。小波變換技術(shù)已受到人們極大的重視。fourier變換是數(shù)學(xué)分析中最古老的學(xué)科之一,即一個(gè)信號可表示成一系列正弦和余弦函數(shù)之和。但fourier變換只有頻率分辨率而沒有時(shí)間分辨率,這就意味我們可以確定信號中包含的所有頻率,但不能確定具有這些頻率的信號出現(xiàn)在什么時(shí)候,只適宜處理平穩(wěn)信號。在非平穩(wěn)信號的分析中,人們希望存在一種變換函數(shù),能夠滿足在高頻信號中,有相對小的時(shí)間間隔以便給出較高的精度,而

7、在低頻信號中能夠以相對較寬的時(shí)間間隔給出完全的信息。小波是有限寬度的基函數(shù),這些基函數(shù)不僅在頻率上而且在位置上是變換的,它們是有限寬度的波?;谒鼈兊淖儞Q稱為小波變換。小波變換具有時(shí)間一頻率自動(dòng)伸縮能力,這種能力可以在任何希望的頻率范圍上產(chǎn)生頻譜信息。小波理論的提出可追溯到1910年haar提出的規(guī)范正交基。1975年caldern發(fā)表了接近小波級數(shù)展開的再生公式,1981年stromberg對harr系進(jìn)行了改進(jìn),證明了小波函數(shù)的存在性。1984年法國地理學(xué)家morlet在分析地震波的局部性質(zhì)時(shí)引入了小波的概念,繼而y. meyer于1986年創(chuàng)造性地構(gòu)造出了具有一定衰減性的二進(jìn)小波函數(shù),掃

8、除了人們對于小波函數(shù)是否存在的疑慮,從而真正掀起了小波研究的熱潮。同年,s. mallat將多分辨率分析的概念引入了小波分析及小波函數(shù)的構(gòu)造中,并將小波函數(shù)的構(gòu)造統(tǒng)一于多分辨率分析的框架之下,同時(shí),mallat提出的快速算法使小波變換從理論研究進(jìn)一步走向各種應(yīng)用領(lǐng)域。1988年daubechies構(gòu)造出了具有緊支集的正交小波集。1989年,goifman, meyer和quake等引入了小波包。1990年,崔錦泰和王建忠構(gòu)造了基于樣條函數(shù)的單正交小波函數(shù)。1992年,coher, daubechies, feauveau提出了具有緊支撐的雙正交小波基。至此,小波理論系統(tǒng)的構(gòu)架得以建立,它為原來

9、信號處理領(lǐng)域里各自獨(dú)立的方法,如多尺度分析、拉普拉斯金字塔、精確重建濾波器組等提供了一個(gè)統(tǒng)一的理論框架。隨著理論研究的不斷深入和應(yīng)用領(lǐng)域的不斷擴(kuò)展,小波分析越來越顯示出它的獨(dú)特魅力。1、小波概念小波變換的定義是把某一被稱為基本小波(也叫母小波mother wavelet)的函數(shù)做位移后,再在不同尺度下與待分析的信號做內(nèi)積: (2.2)等效的頻域表示是: (2.3)式 中和分別是和的傅里葉變換。小波變換有以下特點(diǎn):1) 有多分辨率(multi-resolution),也叫多尺度(multi-scale)的特點(diǎn),可以由粗及細(xì)地逐步觀察信號。2) 可以看成用基本頻率特性為的帶通濾波器在不同尺度下對信

10、號做濾波。由于傅里葉變換的尺度特性可知,這組濾波器具有品質(zhì)因數(shù)恒定,即相對帶寬(帶寬與中心頻率之比)恒定的特點(diǎn)。注意,越大相對頻率越低。3) 適當(dāng)?shù)剡x擇基小波,使在時(shí)域上為有限支撐,在頻域上也比較集中,就可以使在時(shí)、頻域都具有表征信號局部特征的能力, 因此有利于檢測信號的瞬態(tài)或奇異點(diǎn)。正如上所述,小波分析的一個(gè)主要優(yōu)點(diǎn)就是能夠分析信號的局部特征。比如說,采用小波分析可以發(fā)現(xiàn)疊加在一個(gè)非常規(guī)范的正弦信號上的一個(gè)非常小的畸變信號的出現(xiàn)時(shí)間。傳統(tǒng)的傅里葉變換只能得到平坦的頻譜上的兩個(gè)尖峰。利用小波分析可以非常準(zhǔn)確地分析出信號在什么時(shí)刻發(fā)生畸變。小波分析可以檢測出許多其他分析方法忽略的信號特性,例如,

11、信號的趨勢、信號的高階不連續(xù)點(diǎn)、自相似特性。小波分析還能以非常小的失真度實(shí)現(xiàn)對信號的壓縮與消噪,它在圖像數(shù)據(jù)壓縮方面的潛力已經(jīng)得到確認(rèn)。在二維情況下,小波分析除了“顯微”能力外還具有“極化”能力(即方向選擇性),因而引人注意。2、小波在圖像處理中的應(yīng)用圖像處理是小波分析應(yīng)用的重要領(lǐng)域,近年來小波分析已被證明是進(jìn)行圖像處理強(qiáng)有力的工具之一,由于小波分析技術(shù)可以將信號或圖像分層次按小波基展開,并且可以根據(jù)圖像的性質(zhì)及事先給定的圖像處理要求確定到底要展開到哪一級為止,從而不僅能有效地控制計(jì)算量,滿足實(shí)時(shí)處理的需要,而且可以方便地實(shí)現(xiàn)通常由子帶編碼技術(shù)實(shí)現(xiàn)的累進(jìn)編碼(即采取逐步浮現(xiàn)的方式傳送多媒體圖像

12、)。同時(shí),小波變換具有放大、縮小和平移的功能,能夠很方便地產(chǎn)生各種分辨率的圖像,從而適合于不同分辨率圖像的處理。因此,近十年來,基于小波變換的圖像壓縮算法得到了很大發(fā)展,取得了許多重要的成果,而且越來越成為該領(lǐng)域研究和應(yīng)用的熱點(diǎn)。2.1.2 連續(xù)小波變換 1、定義對任意信號,f(t)的連續(xù)小波變換定義是: (2.1)a為尺度因子,b為平移因子。如果滿足容許條件; ,則稱為容許小波,可由恢復(fù)原信號 (2.2)其中, 根 據(jù)parseval 恒等式: (2.3)可見 f(t)的連續(xù)小波變換就相當(dāng)于f(t)通過傳遞函數(shù)為的系統(tǒng)的輸 出 。2、特性在介紹小波特性之前先給出窗函數(shù)的概念。(1) 定義 :

13、非平凡函數(shù)l2(r),稱為一個(gè)窗函數(shù).如果也是屬于l2(r)的,一個(gè)窗函數(shù)的的中心t2與半徑,定義分別是: (2.4) (2.5)假定與都是窗函數(shù),窗函數(shù)的中心與半徑分別用t2與半徑給出,那么函數(shù)是中心在b+at*且半徑等于a的一個(gè)窗函數(shù),因此由(2.1)式可知連續(xù)小波積分給出了信號f(t)具有時(shí)間窗b十a(chǎn)t*-a,b+at*+a 的局部信息;窗函數(shù)的中心與半徑分別用w*與表示,則由(2.5)式可知除了一個(gè)倍數(shù)與一個(gè)線性相位移。外,連續(xù)小波變換還給出了f的一個(gè)具有頻率窗的局部信息.由以上分析可知當(dāng)尺度a變化時(shí),對應(yīng)一系列帶通系統(tǒng),并且可以得出以下結(jié)論:(1)信號f(t)的連續(xù)小波變換就是一系列

14、帶通濾波器對f(t)濾波后的輸出,a反映了帶通濾波器的帶寬和中心頻率,b則為濾波輸出的時(shí)間參數(shù)。(2)a變化,帶通濾波器的帶寬和中心頻率也變化。a變小,中心頻率變大,帶寬變寬:a變大,中心頻率變小,帶寬變窄f(t)通過帶通濾波器濾波,對分析信號的局部特性很有價(jià)值。信號變化緩慢的地方,主要為低頻成份,頻率范圍也較窄,此時(shí)小波變換帶通濾波器應(yīng)相當(dāng)于a大的地方:反之,信號發(fā)生突變的地方,主要是高頻成份,頻率范圍也較寬,小波變換的帶通濾波器相當(dāng)于a小的情況。即伸縮因子a有大到小變化,濾波的范圍也從低頻到高頻變化。2.1.3 離散小波變換 將連續(xù)小波變換的尺度a離散化按照2的幕級數(shù)進(jìn)行,和時(shí)間位移b進(jìn)行

15、離散化,就得到離散小波變換。通常a的離散化按照2的冪級數(shù)進(jìn)行,即:,b的離散化為。所以,信號f(t)的離散小波變換(dwt)定義為: (2.6) (2.7)其中取離散正交小波基,是尺度j下的f(t)的離散小波變換,離散小波變換具有以下的特性;1、是小波函數(shù)以在尺度上的伸縮和時(shí)域上的平移得到的。隨j的變化,在頻域上處于不同的頻段,隨k的變化,在時(shí)域上處于不同的時(shí)段,所以離散小波變換是一種信號的時(shí)間一頻率分析;2 、尺度j減小時(shí), 在時(shí)域上伸展,在頻域上收縮,中心頻率降低變換的時(shí)域分辨率降低,頻域分辨率提高;尺度j增大時(shí), 在時(shí)域上收縮,在頻域上伸展,中心頻率升高,變換的時(shí)域分辨率提高,分辨率的時(shí)

16、頻域分析。頻域分辨率降低。所以,離散小波變換是一種多分辨率的時(shí)頻域分析。2.1.4 指紋圖像二維小波變換概念及算法1、概念:一維信號的離散小波變換很容易推廣到二維的情況。假設(shè)是一個(gè)一維的尺度函數(shù),是相應(yīng)的小波函數(shù),那么,可以得到一個(gè)二維小波變換的基礎(chǔ)函數(shù):, 2、算法 圖像可以看作是二維的矩陣,一般假設(shè)圖像矩陣的大小為nn,且有n2n(n為非負(fù)的整數(shù))。那么每次小波變換后,圖像便分解為4個(gè)大小為原來尺寸的子塊頻帶區(qū)域,如圖2-2所示,分別包含了相應(yīng)頻帶的小波系數(shù),相當(dāng)于在水平方向和豎直方向上進(jìn)行隔點(diǎn)采樣。進(jìn)行下一層小波變換時(shí),變換數(shù)據(jù)集中在ll頻帶上,圖2-3所示為3層小波變換的系數(shù)分布。 等

17、式(2.11)至等式(2.14)說明了圖像小波變換的數(shù)學(xué)原型。ll頻帶,該頻帶保持了原始圖像內(nèi)容信息,圖像的能量集中于此頻帶: (2.11) hl頻帶,該頻帶保持了圖像水平方向上的高頻邊緣信息: (2.12) lh頻帶,該頻帶保持了圖像豎直方向上的高頻邊緣信息: (2.13) hh頻帶,該頻帶保持了圖像在對角線方向上的高頻信息: (2.14)其中表示內(nèi)積運(yùn)算。圖2-2 一次離散小波變換后的頻率分布 圖2-3 3層小波變換后的頻率分布2.1.5 二維小波變換編程實(shí)現(xiàn)及運(yùn)行結(jié)果 下面將詳細(xì)地按編程步驟對圖像小波變換地實(shí)現(xiàn)進(jìn)行分析。(1)函數(shù)描述dwt_once完成一次圖像的小波變換(2)函數(shù)參數(shù)s

18、hort *sporigindata:二維指針,指向原始的圖像數(shù)據(jù)short *sptransdata0:小波變換系數(shù),存放一次水平變換后的小波系數(shù)short *sptransdata1:小波變換系數(shù),存放一次數(shù)值變換后的小波系數(shù)int nheight:圖像屬性參數(shù),數(shù)值為原始圖像的高度值int nheight_h:圖像屬性參數(shù),數(shù)值為原始圖像高度值的一半int nwidth:圖像屬性參數(shù),數(shù)值為原始圖像的寬度值int nwidth_h:圖像屬性參數(shù),數(shù)值為原始圖像寬度值的一半int layer:小波變換的層數(shù),數(shù)值為1層float fradius:小波變換因子,在調(diào)用時(shí)候已指定數(shù)值為1.41

19、4(3)函數(shù)代碼void cwvlttrans:dwt_once(short* sporigindata, short* sptransdata0, short* sptransdata1, int nheight, int nheight_h, int nwidth, int nwidth_h, int layer, float fradius)int trans_w, /圖像掃描線控制:橫坐標(biāo)trans_h, /圖像掃描線控制:縱坐標(biāo)trans_m, /圖像矩陣的橫坐標(biāo)trans_n; /圖像矩陣的縱坐標(biāo)short trans_coeff0; /小波變換系數(shù)signed short tra

20、ns_coeff1;fradius=1.414; /變換濾波系數(shù) /本模塊完成變換系數(shù)的賦值采樣 /行變換,第一次(layer=1時(shí))時(shí)nheight即為原始圖像的高度值 for(trans_h=0; trans_hnheight; trans_h+) if(layer = 1) /layer=1時(shí),nwidth_h為原始圖像寬度值的一半for(trans_n=0; trans_nnwidth_h; trans_n+) trans_w=trans_n 1)for(trans_n=0; trans_nnwidth_h; trans_n+)trans_w=trans_n1;sptransdata0

21、trans_htrans_n = sptransdata1trans_htrans_w;sptransdata0trans_hnwidth_h+trans_n= sptransdata1trans_htrans_w+1;for(trans_h=0; trans_hnheight; trans_h+)for(trans_n=0; trans_n1); /邏輯非操作后數(shù)值加1trans_coeff1=trans_coeff1+1; /系數(shù)預(yù)測sptransdata0trans_hnwidth_h+trans_n= sptransdata0trans_hnwidth_h+trans_n+trans_

22、coeff1; /完成一個(gè)偶系數(shù)的邊界處理trans_coeff1 = (sptransdata0trans_hnwidth_h-1+sptransdata0trans_hnwidth_h-2)1);trans_coeff1=trans_coeff1+1;sptransdata0trans_hnwidth-1= sptransdata0trans_hnwidth-1+trans_coeff1; /完成一個(gè)奇系數(shù)的邊界處理trans_coeff0= (sptransdata0trans_hnwidth_h+sptransdata0trans_hnwidth_h+1)2);sptransdata0

23、trans_h0 = sptransdata0trans_h0+trans_coeff0; /提升,整數(shù)到整數(shù)的變換for(trans_n=1; trans_n2);sptransdata0trans_htrans_n= sptransdata0trans_htrans_n+trans_coeff0; /水平方向的變換結(jié)束 /豎直方向的變換開始,數(shù)據(jù)源未水平變換后的小波系數(shù)for(trans_m=0; trans_mnheight; trans_m+)for(trans_n=0; trans_nnwidth_h; trans_n+)sptransdata0trans_mtrans_n*=fra

24、dius;sptransdata0trans_mtrans_n+nwidth_h/=fradius;/行提升后的數(shù)據(jù)在sptransdata0中,sptransdata0中的數(shù)據(jù)自然奇偶有序for(trans_n=0; trans_nnwidth_h; trans_n+) /列變換for(trans_m=0; trans_mnheight_h; trans_m+)trans_h =trans_m1; /頻帶ll部分sptransdata1trans_mtrans_n = sptransdata0trans_htrans_n; /頻帶hl部分sptransdata1nheight_h+trans

25、_mtrans_n = sptransdata0trans_h+1trans_n; /頻帶lh部分sptransdata1trans_mnwidth_h+trans_n = sptransdata0trans_hnwidth_h+trans_n; /頻帶hh部分sptransdata1nheight_h+trans_mnwidth_h+trans_n = sptransdata0trans_h+1nwidth_h+trans_n; /第一次提升奇數(shù)坐標(biāo)系數(shù)for(trans_m=0; trans_m1);trans_coeff1=trans_coeff1+1;sptransdata1nheig

26、ht_h+trans_mtrans_n = sptransdata1nheight_h+trans_mtrans_n+trans_coeff1;trans_coeff1= (sptransdata1trans_mnwidth_h+trans_n+sptransdata1trans_m+1nwidth_h+trans_n)1);trans_coeff1=trans_coeff1+1;sptransdata1nheight_h+trans_mnwidth_h+trans_n = sptransdata1nheight_h+trans_mnwidth_h+trans_n+trans_coeff1;t

27、rans_coeff1 = (sptransdata1nheight_h-1trans_n+sptransdata1nheight_h-2trans_n)1);trans_coeff1=trans_coeff1+1;sptransdata1nheight-1trans_n = sptransdata1nheight-1trans_n+trans_coeff1;trans_coeff1 = (sptransdata1nheight_h-1nwidth_h+trans_n+sptransdata1nheight_h-2nwidth_h+trans_n)1);trans_coeff1=trans_c

28、oeff1+1; /邊界處理sptransdata1nheight-1nwidth_h+trans_n = sptransdata1nheight-1nwidth_h+trans_n+trans_coeff1;trans_coeff0 = (sptransdata1nheight_htrans_n+sptransdata1nheight_h+1trans_n)2);sptransdata10trans_n = sptransdata10trans_n+trans_coeff0;trans_coeff0 = (sptransdata1nheight_hnwidth_h+trans_n+sptra

29、nsdata1nheight_h+1nwidth_h+trans_n)2); /邊界處理sptransdata10nwidth_h+trans_n = sptransdata10nwidth_h+trans_n+trans_coeff0; /第一次提升偶數(shù)坐標(biāo)系數(shù)for(trans_m=1; trans_m2);sptransdata1trans_mtrans_n = sptransdata1trans_mtrans_n+trans_coeff0;trans_coeff0 = (sptransdata1nheight_h+trans_mnwidth_h+trans_n+sptransdata1

30、nheight_h+trans_m-1nwidth_h+trans_n)2);sptransdata1trans_mnwidth_h+trans_n = sptransdata1trans_mnwidth_h+trans_n+trans_coeff0;/存放小波系數(shù),ll頻帶的系數(shù)進(jìn)行幅值增強(qiáng)處理,其高頻頻帶的系數(shù)則削弱其幅值for(trans_n=0; trans_nnwidth; trans_n+)for(trans_m=0; trans_mbfoffbits;unsigned long biheight = lpbitmapinfoheader-biheight;unsigned lon

31、g biwidth = lpbitmapinfoheader-biwidth;unsigned long bialign = (biwidth*3+3)/4 *4;unsigned long bmsize = biheight * bialign;if(m_ptransfered=null)m_ptransfered=(unsigned char*) malloc (bmsize);if(m_ptransfered=null)return; /圖像矩陣坐標(biāo)與像素?cái)?shù)據(jù)int x,y,cur;unsigned char tempr, tempg, tempb;float ftempbuffordi

32、sp;short maxpixval,minpixval,diff;short *sporigindata, *sptransdata0, *sptransdata1; /分配圖像小波變換所用的數(shù)據(jù)空間sporigindata = new short* biheight;sptransdata0 = new short* biheight;sptransdata1 = new short* biheight;m_wvltcoeff= new short * biheight;for(int i = 0; i biheight; i +)sporigindatai = new short biw

33、idth;sptransdata0i = new short biwidth;sptransdata1i = new short biwidth;m_wvltcoeffi = new short biwidth; /創(chuàng)建圖像小波變換類cwvlttrans *ptrans; /從設(shè)備緩存中獲取原始圖像數(shù)據(jù)for(y=0; y(int)biheight; y+)for( x=0; xdwt_once(sporigindata,sptransdata0,sptransdata1,biheight,biheight/2,biwidth,biwidth/2,1,1.414); /允許圖像復(fù)原操作標(biāo)志m_

34、bonce = true;m_bonce = m_bonce & m_btwice & m_btribl & m_bfilter;maxpixval=sptransdata100;minpixval=sptransdata100;for( y=0; y(int)biheight; y+)for( x=0; x(int)biwidth; x+)if(maxpixvalsptransdata1yx)minpixval=sptransdata1yx;m_wvltcoeffyx = sptransdata1yx;diff=maxpixval-minpixval;for(y=0; y(int)bihei

35、ght; y+)for(x=0; x(int)biwidth; x+)/因?yàn)樾〔ㄗ儞Q后的小波系數(shù)有可能超過255甚至更多,那么就將/小波系數(shù)的范圍映射到0255區(qū)間內(nèi),以后出現(xiàn)類似的處理,目的都是一樣的ftempbuffordisp=sptransdata1biheight-1-yx;ftempbuffordisp-=minpixval;ftempbuffordisp*=255;ftempbuffordisp/=diff;cur= y*bialign+3*x; /current pixelm_ptransferedcur= (unsigned char)ftempbuffordisp;m_pt

36、ransferedcur+1= (unsigned char)ftempbuffordisp;m_ptransferedcur+2= (unsigned char)ftempbuffordisp; /顯示圖像的小波系數(shù)updateallviews(null); /刪除臨時(shí)的數(shù)據(jù)空間delete sporigindata;delete sptransdata0;delete sptransdata1;編譯后,程序的運(yùn)行如圖2-6所示。 圖2-6 一層小波變換的運(yùn)行結(jié)果除了圖像的一層小波變換,很多應(yīng)用使用的是圖像的3層小波變換,下面將分析3層小波變換的實(shí)現(xiàn)代碼。當(dāng)變換層數(shù)大于1時(shí),第2層以后的小波

37、變換的對象是ll頻帶的小波系數(shù),該頻帶的系數(shù)包含了圖像的基本信息,它是圖像能量集中的頻帶。這樣ll便如第一層小波變換一般分成4個(gè)頻帶,其中l(wèi)l仍然是下一層小波變換的數(shù)據(jù)源。 下面看一下3層小波變換的實(shí)現(xiàn)代碼:(1)函數(shù)描述dwt_trilayers完成三次圖像的小波變換(2)函數(shù)參數(shù)short *sporigindata:二維指針,指向原始的圖像數(shù)據(jù)short *sptransdata0:小波變換系數(shù),存放一次水平變換后的小波系數(shù)short *sptransdata1:小波變換系數(shù),存放一次數(shù)值變換后的小波系數(shù)int nheight:圖像屬性參數(shù),數(shù)值為原始圖像的高度值int nheight_

38、h:圖像屬性參數(shù),數(shù)值為原始圖像高度值的一半int nwidth:圖像屬性參數(shù),數(shù)值為原始圖像的寬度值int nwidth_h:圖像屬性參數(shù),數(shù)值為原始圖像寬度值的一半int layer:小波變換的層數(shù),數(shù)值為3層float fradius:小波變換因子,在調(diào)用時(shí)候已指定數(shù)值為1.414(3)函數(shù)代碼void cwvlttrans:dwt_trilayers(short* sporigindata, short* sptransdata0, short* sptransdata1, int nheight, int nheight_h, int nwidth, int nwidth_h, in

39、t layer, float fradius)int i;short *pdata, *ptran0, *ptran1; /圖像的屬性參數(shù)int iwidth, iheight, iwidth_h, iheight_h;float fr = fradius; /獲得數(shù)據(jù)空間的指針pdata = sporigindata;ptran0 = sptransdata0;ptran1 = sptransdata1; /圖像屬性參數(shù)賦值iwidth = nwidth;iwidth_h = nwidth_h;iheight = nheight;iheight_h = nheight_h; /利用循環(huán)完成兩

40、次小波變換for(i=1; i1;iwidth=iwidth1;iheight_h=iheight/2;iwidth_h=iwidth/2;在cwvltdoc方面,首先給菜單選項(xiàng)定義消息id,如圖2-7所示。 圖2-7 消息id的定義下面來看一下圖像3層小波變換的實(shí)現(xiàn),并完成小波系數(shù)的顯示。void cwvltdoc:onwvlttranstrbl() / todo: add your command handler code here /讀取數(shù)字圖像的文件頭,獲取圖像的屬性參數(shù)lpbitmapinfoheader lpbitmapinfoheader = (lpbitmapinfoheade

41、r)(m_pbitmap+14);lpbitmapfileheader lpbitmapfileheader = (lpbitmapfileheader)m_pbitmap;unsigned char *lpdata = m_pbitmap + lpbitmapfileheader-bfoffbits;unsigned long biheight = lpbitmapinfoheader-biheight;unsigned long biwidth = lpbitmapinfoheader-biwidth;unsigned long bialign = (biwidth*3+3)/4 *4;u

42、nsigned long bmsize = biheight * bialign;if(m_ptransfered=null)m_ptransfered=(unsigned char*) malloc (bmsize);if(m_ptransfered=null)return; /圖像矩陣坐標(biāo)與像素?cái)?shù)據(jù)int x,y,cur;unsigned char tempr, tempg, tempb;float ftempbuffordisp;short maxpixval,minpixval,diff;short *sporigindata, *sptransdata0, *sptransdata1; /分配圖像小波變換的數(shù)據(jù)內(nèi)存空間sporigindata = new short* biheight;sptransdata0 = new short* biheight;sptransdata1 = new short* biheight;m_wvltcoeff= new short * biheight;for(int i = 0; i biheight; i +)sporigin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論