指紋識別算法的matlab實現(xiàn)畢業(yè)論文_第1頁
指紋識別算法的matlab實現(xiàn)畢業(yè)論文_第2頁
指紋識別算法的matlab實現(xiàn)畢業(yè)論文_第3頁
指紋識別算法的matlab實現(xiàn)畢業(yè)論文_第4頁
指紋識別算法的matlab實現(xiàn)畢業(yè)論文_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、指紋識別算法的matlab實現(xiàn)專業(yè):電子信息工程 姓名:馬飛 指導老師:劉文博摘 要 由于指紋所具有的普遍性,唯一性和不變性,以及指紋識別技術(shù)具有很高的可行性和實用性,使之成為目前最流行、也最可靠的個人身份認證技術(shù)之一。本文主要對指紋圖像進行三方面處理:圖像預(yù)處理、特征提取和特征匹配。圖像預(yù)處理包括四個步驟:圖像分割、濾波增強、二值化、細化,對指紋圖像進行預(yù)處理后,去除了原圖像的冗余部分,方便后續(xù)的識別處理;特征提取主要是提取指紋圖像細化后的端點和分叉點;特征匹配是利用兩個指紋的圖像進行特征點比較,來確定兩幅圖像是否來自于同一手指。本文給出了指紋圖像預(yù)處理、特征提取、特征匹配的matlab程序

2、及處理結(jié)果。該結(jié)果證明,用matlab實現(xiàn)的這些算法的處理結(jié)果比較理想,滿足識別的可行性和應(yīng)用性。關(guān)鍵詞 分割,二值化,細化,特征點提取,匹配,matlababstractbecause of the universality, uniqueness and constantness of a fingerprint, and fingerprint identification technology has very high feasibility and practical applicability, make it to be one of the most popular, and

3、 most reliable personal identity authentication technology.this paper focuses on three aspects of the fingerprint image processing:image preprocessing, feature extraction, feature matching. image preprocessing including four steps: image segmentation, filtering, binary, refining, after the fingerpri

4、nt image preprocessing, in addition to the original image of redundancy part, convenient subsequent identification processing; the main feature extraction is extracted from the end of the fingerprint image after thinning and bifurcation point; feature matching is use two fingerprint image feature po

5、int is to determine whether the two images from the same finger.this paper provides the fingerprint image preprocessing, feature extraction, feature matching use matlab and handling results, the results prove that these algorithms had ideal results be used by matlab, be satisfied with the recognitio

6、n and feasibility of the application. key words: segmentation, binary, refining, feature point extracting, matching, matlab目錄第1章 緒論41.1 指紋識別概述41.1.1 研究背景及意義41.1.2 國內(nèi)外研究狀況51.2指紋識別的原理和方法51.2.1 指紋的基本知識51.2.2 指紋識別的原理及應(yīng)用71.3 matlab在指紋識別中的應(yīng)用8第2章 指紋圖像預(yù)處理92.1圖像的分割92.1.1 圖像歸一化102.1.2 圖像分割的方向法112.1.3 圖像分割的方差法

7、122.2 圖像的二值化132.2.1 方向圖132.2.2 指紋圖像二值化142.2.3 靜態(tài)閾值二值化152.2.4 基于方向場的二值化152.3 指紋圖像的濾波172.4 圖像細化202.4.1 快速細化算法212.4.2 改進的opta算法21第3章 圖像特征提取和特征匹配253.1 特征點提取253.2 找出特征點253.3 特征點匹配26總結(jié)與展望30致 謝31參考文獻32附錄a 預(yù)處理代碼33附錄b 特征點提取代碼37附錄c 圖像特征點代碼39附錄d 特征點匹配代碼42 第1章 緒論1.1 指紋識別概述21世紀是信息化時代,在這個特殊的時代,我們的生活中電子設(shè)備越來越多,比如,筆

8、記本電腦,atm取款機,考勤系統(tǒng),門禁系統(tǒng)和各種智能卡,網(wǎng)絡(luò)中的網(wǎng)上銀行,人人網(wǎng)賬號等,都需要驗證身份。對個人身份識別技術(shù)的要求不斷提高,如果沒有安全可靠和快捷的身份識別技術(shù),電子商務(wù)、網(wǎng)上購物等就存在重大隱患。目前許多身份驗證系統(tǒng)都采用“用戶名+密碼”的方式來進行用戶訪問控制1,但此方法存在諸多隱患,比如密碼被竊取、破解或遺忘。因此我們在與機器交互時急需一種準確、安全快捷的識別技術(shù)來取代現(xiàn)有的身份驗證。1.1.1 研究背景及意義因為人的一些特殊的生物特征,人們把身份認證技術(shù)的目光轉(zhuǎn)向了生物特征的識別技術(shù)。生物識別技術(shù)是利用人體生物特征進行身份認證的一種技術(shù),它主要有指紋、手形、臉形、聲音、虹

9、膜、視網(wǎng)膜、簽名、掌紋、和臉部熱譜圖等,在生物識別技術(shù)中指紋識別技術(shù)是目前相對成熟的一種。1.1.2 國內(nèi)外研究狀況指紋是人特有的一種特征,在中國的研究也有近百年的歷史,中國被認為是世界上最早應(yīng)用指紋識別技術(shù)的國家,指紋識別技術(shù)從很早以前的人工比對到現(xiàn)如今采用先進的計算機技術(shù)實現(xiàn)指紋的識別,使得指紋對比比以前更加準確,識別效率得到了非常大的提高。在國外,經(jīng)過幾十年的發(fā)展,指紋識別技術(shù)的軟件和硬件相對來說都比較成熟。在很多國家內(nèi),政府用法律強制性的規(guī)定來保證生物識別技術(shù)的應(yīng)用。所以總體上來說,國外的指紋識別應(yīng)用己經(jīng)進入了正規(guī)的應(yīng)用階段。但是在國內(nèi),經(jīng)過了十多年的發(fā)展,指紋識別的一些關(guān)鍵算法是有了

10、較大的提高和發(fā)展,但是距離國外的優(yōu)秀算法仍然有非常大的差距,因此國內(nèi)的應(yīng)用現(xiàn)在處于發(fā)展的初期,應(yīng)用主要集中在自發(fā)性的企業(yè)上。指紋識別的應(yīng)用前景是非常廣闊的,它的應(yīng)用將滲透到社會生活,經(jīng)濟貿(mào)易的每一個角落,將成為保護我們個人以及國家信息的重要手段。 1.2指紋識別的原理和方法1.2.1 指紋的基本知識指紋是我們各個手指的第一個指節(jié)的指頭表面突起的脊線;而脊線是手指突起的花脊線條;谷線是兩個脊線之間低凹下去的部分;指印是指紋在物體表面留下的痕跡;指紋的細節(jié)特征是指紋固有的自身特點。根據(jù)指紋中的細節(jié)特征我們常將指紋特點分為端點和分叉點,如圖1-1所示。圖1-1 端點、分叉點英國科學家gallon在1

11、892年的fingerprint一書中提出了指紋的四條基本性質(zhì)。(1)確定性:指紋脊線的輪廓和細節(jié)特征是在人的一生中基本上保持不變。自胚胎六個月到出生至死亡腐敗之前,始終是沒有很大變化的。指紋的確定性,還表現(xiàn)在它具有一定的復原性和難于毀滅的特性。(2)唯一性:由于指紋脊線的連接關(guān)系千變?nèi)f化,因此,即使兩個不同的指紋有著相同的輪廓和相同數(shù)量的細節(jié)特征,它們的細節(jié)位置也是不可能完全相同的。(3)可分類性:指紋可根據(jù)脊線和谷線的走向進行分類,一般可分為如圖1-2所示的弓形、環(huán)形和螺旋形。 (a)弓形 (b) 環(huán)形 (c)螺旋形圖1-2 指紋類型(4)留痕性:指紋接觸物體后會留下痕跡。指紋的這個特點,

12、是與手掌表面附著面的污垢的性能緊密相關(guān)的。正是因為這些獨特的性質(zhì),指紋被國內(nèi)外的刑偵界稱為“證據(jù)之首”。一切指紋的自動識別系統(tǒng),都是根據(jù)這些獨特的性質(zhì),進行身份的識別和確認的。脊線是指紋的一個非常突出的特征,指紋的脊線一般由弓形線、環(huán)形線、箕形線、螺形線、曲形線和棒形線等脊線組成,每種脊線具有不同的細節(jié)和長度,如圖1-3所示2。圖1-3 脊線的一般形態(tài)1.2.2 指紋識別的原理及應(yīng)用在指紋識別的技術(shù)中, 一般都采用總體特征和局部特征來進行識別??傮w特征是那些很容易就能看出來的非常明顯的特征, 局部特征則是一小塊指紋中的細節(jié)特征。指紋紋路一般都會有斷點和分叉點, 因此會形成一些獨特的節(jié)點。根據(jù)研

13、究,兩個指紋的總體特征有時候會很相似,但是局部特征是不會相同的,即沒有兩個指紋的紋路是相同的。英國學者e.g.herry認為, 只要有13個特征點能重合, 就可以確認這兩枚指紋是同一指紋3。指紋的面積雖然不大但卻蘊含著大量的識別信息。這些皮膚的紋路會在交叉點,斷點上有很大的區(qū)別。在指紋識別的過程中將其稱為“特征點”,利用特征點的性質(zhì),我們可以把一個人的指紋同預(yù)先存儲起來的指紋模版對比來驗證他的真實身份。指紋識別技術(shù)主要包括三大部分:指紋圖像采集、指紋預(yù)處理、特征提取與匹配。如圖1-4所示。 圖1-4 指紋識別流程指紋作為人類與生俱來的特征,因為其獨有的特性而成為具有法律地位的有力證據(jù)。一切需要

14、身份確認的場所,都有它的蹤影,如金融證券類的atm指紋終端、指紋保險箱等、it類的計算機的系統(tǒng)密碼驗證、網(wǎng)絡(luò)安全等、安防類的門禁系統(tǒng)等、醫(yī)療類的個人醫(yī)療檔案驗證等、福利類的醫(yī)療確認、福利確認等,因此指紋識別在許多行業(yè)的應(yīng)用系統(tǒng)中都具有廣闊的應(yīng)用前景。1.3 matlab在指紋識別中的應(yīng)用 matlab是一種高級的計算機語言, 具有獨特的數(shù)學運算能力是matlab語言最突出的優(yōu)點。許多在其他語言中描述起來很復雜的問題在matlab語言編程中卻只需要一條專用的指令就可以完成。matlab語言的所有計算都是基于矩陣的,所以matlab中的所有變量都被定義為矩陣, 它是一種解釋型語言, 因此幾乎沒有語

15、法格式上的限制?;趍atlab實現(xiàn)指紋圖像算法及仿真驗證不僅有較高的準確率, 而且減小了仿真難度。第2章 指紋圖像預(yù)處理圖像預(yù)處理是對原始圖像進行的一種前期處理,方便后續(xù)的模塊識別。無論采用何種方式獲取的指紋圖像, 都有一部分由于質(zhì)量原因, 不能被系統(tǒng)直接識別,因此圖像的預(yù)處理就顯得非常有必要。指紋圖像的預(yù)處理目的就是將自己感興趣的目標區(qū)域保留下來,去除背景區(qū)域和沒有用的部分,同時根據(jù)指紋目標區(qū)域中脊線的結(jié)構(gòu)特征,采取較好的濾波方法,提高指紋脊線清晰度,平滑脊線邊緣的毛刺和空洞,抑制圖像噪聲,保證指紋特征的可靠提取,并使灰度圖像轉(zhuǎn)化成黑白的二值圖像,最終得到脊線結(jié)構(gòu)清晰的單像素寬的二值圖像。

16、本文預(yù)處理的主要流程如圖2-1所示。圖2-1 預(yù)處理流程 2.1圖像的分割圖像分割是從一幅圖像中按一定規(guī)則將一些物體或區(qū)域加以分離,劃分出我們感興趣的部分或區(qū)域。經(jīng)過分割后的圖像更容易進行進一步的分類、分析和識別處理。圖像分割要在指紋二值化和濾波及細化之前進行,如此可以減少計算的冗余量,提高指紋檢測速度。采集到的指紋內(nèi)容分為目標區(qū)域和背景區(qū)域。在指紋圖像中,由脊線和谷線組成的較清晰的部分,稱之為目標區(qū)域;沒有用的部分我們稱之為背景區(qū)域。指紋識別中的分割就是將有用的目標區(qū)域分割出來,去掉沒用的背景區(qū)域,以避免背景區(qū)域的各種干擾。指紋圖像可分為四類區(qū)域:背景區(qū)、不可恢復區(qū)、可恢復區(qū)、清晰區(qū),如下圖

17、2.2所示。圖2-2 指紋圖像的四種區(qū)域2.1.1 圖像歸一化對指紋圖像進行分割處理,消除剩下的背景區(qū)域前,首先要進行圖像歸一化。對采集好的指紋圖像進行歸一化處理,是對指紋灰度圖的灰度均值和方差做一次調(diào)整,使得不論用什么設(shè)備采集的指紋圖像都可以有預(yù)期的方差和均值,從而屏蔽不必要的噪聲。指紋歸一化不改變指紋質(zhì)量,只是方便指紋的后續(xù)處理并保證程序運行時收斂加快。由于不同指紋區(qū)域的手指壓力和強度不同,所以將指紋分為w*h小塊,設(shè)圖像中像素點的灰度值為i(i,j),歸一化后的圖像g(i,j)來表示,灰度平均值和方差分別用和來表示,則歸一化算法如下4:(1)先計算出圖像灰度的平均值和方差: (2-1)

18、(2-2)(2)指定期望的圖像方差和平均值后,算出歸一化后的圖像g(i,j): (2-3)其中,為期望的平均值和方差(一般=150,=2000)。matlab程序見附錄a。圖 2-3 歸一化圖像2.1.2 圖像分割的方向法這一方法是基于指紋方向信息的分割方法,它是利用了指紋的脊線和谷線所蘊藏的平行方向信息來分割的,該方法的優(yōu)點是:適合有污漬的指紋,但缺點是因為依賴脊線的方向,所以脊線不連續(xù)時將被識別為背景區(qū)域,難以取得滿意效果。且計算復雜,處理時間很長,不適宜實際使用。2.1.3 圖像分割的方差法方差法5:傳統(tǒng)的分割算法都是基于圖像局部灰度方差的分割方法(即方差法),一般地,目標區(qū)域中指紋脊和

19、谷的灰度差是較大的,因而其局部灰度方差也較大;對于圖像背景區(qū)域,方差值則是較小的?;谶@一基本特性,可利用圖像的局部方差對指紋圖像進行分割。該方法的優(yōu)點:算法簡單,計算速度快,如果采集到的指紋質(zhì)量好,則分割效果不錯;缺點:對質(zhì)量較差的指紋,該方法分割效果不是很理想,如當指紋背景區(qū)域有污漬時, 這些區(qū)域的方差也比較大,用方差法分割時就不能被有效地分割出去。改進后的方差法:為了解決上述問題,可以在方差法分割的基礎(chǔ)上進行開運算和閉運算操作,該算法繼承了方差法的優(yōu)點且又克服了易受噪聲影響的缺陷。把指紋的圖像分成3*3塊,將歸一化處理后的圖像進行分割的具體算法步驟如下:(1)利用式(2-1)和式(2-2

20、)對指紋的小塊求灰度平均值和方差,設(shè)定一閾值t,因為是3*3模塊,所以是在8鄰域中,即t=4,若4,則該小塊作為目標留下,并把該塊標示為1,存放于矩陣a中;若bc=0;p+2q+2r=0)。二值化后的指紋圖像通過平均濾波器的處理,其每一點灰度值由它臨近的二十四個(因為是5*5的濾波器)像素的灰度值決定,因此可以用下式來對f(i,j)(第i行和第j列的灰度值)進行處理9: (2-6)平均濾波的原理如下:對于脊線中的斷點我們采用平均濾波器。斷點處脊線的灰度值要比周圍的灰度值小,經(jīng)過平均濾波器的處理,它的灰度值就大約等于周圍的灰度值,因此二值化后的指紋中斷裂的脊線就會被連起來。對于脊線中的分叉點我們

21、采用分離濾波器。脊線中叉連點的兩端灰度值比中間的要稍微大一些,經(jīng)過分離濾波器的處理,叉連點處的灰度值就會降下來,脊線中的叉連點就會被去除了。脊線的斷裂和叉連點如圖2-10所示:圖2-10 斷裂與叉連因此選擇增強濾波器的時候必須要具有類似平均濾波器和分離濾波器作用的增強濾波器,分離濾波器的權(quán)值可以用下圖2-9來表示,并且可以得到一般濾波器的權(quán)值如圖2-11。圖 2-11 上下文濾波器的權(quán)值參數(shù)滿足k =a+p,l =b+q,m =c+r。上下文濾波器中的平均濾波器起到了去除空洞的作用,分離濾波器起到了去除毛刺的作用。算法實現(xiàn)的matlab程序見附錄a。結(jié)果如圖2-12和圖2-13: 圖 2-12

22、 去除毛刺圖 2-13 去除空洞2.4 圖像細化分割和濾波后的指紋圖像再進行二值化處理后,脊線仍然有一定的寬度,指紋識別的匹配是只利用圖像的點或線的特征,這些點或者特征只與脊線的走向或者紋理有關(guān)系,有一定寬度的二值化圖像顯得有些多余,所以需要對二值化圖像進行細化處理,指紋二值化圖像經(jīng)過細化處理即可得到一個單一像素寬度的脊線,經(jīng)過上述的細化處理,在后續(xù)的指紋特征提取和特征匹配的算法中大大的減少了計算的冗余量和出錯率,使得指紋識別的速度和準確度有了很大的提高。細化目的是在不破壞指紋圖像連通性的情況下去除掉多余的信息(即多余的像素點),將二值化的指紋圖像的脊線采用逐層剝離的方法,將圖像中的指紋脊線細

23、化成單象素寬(實際為保存原圖的骨架)。一個好的指紋細化算法必須在不破壞指紋紋理性和連通性的情況下細化成單像素脊線。總體來說,細化算法應(yīng)滿足(1)盡量保持原圖像的基本機構(gòu)特性(如脊線的形態(tài));(2)盡量以脊線的中軸線或者指紋的中心為重心;(3)從指紋脊線的兩面對稱的刪除;(4)保證細化完后的指紋圖像是單個像素的;(5)對邊緣上噪聲不應(yīng)該敏感;(6)算法簡單且實用。2.4.1 快速細化算法快速細化算法的原理為先判斷出指紋的邊緣,并沿著脊線的邊緣對稱的逐步刪除像素,直至刪除的剩下單個像素。該算法速度快但不徹底。它的算法為(1)遍歷整個指紋的圖像,找出指紋圖像脊線的邊界點(圖2-14中的x的八鄰域為到

24、)。脊線上每一點的八鄰域,脊線端點的八鄰域中只有一個目標點,脊線連續(xù)點的八鄰域有兩個目標點,分叉點有三個目標點,且每點八鄰域最多只有三個目標點,符合上述條件的才為單像素寬。圖 2-14 x點的八鄰域(2)當x點周圍的點多于三個目標點時,將多余的點刪除,依次刪除到剩下三個時判斷該點是否為分叉點,不是再刪除,剩下兩個點時,判斷是否為連續(xù)點,不是時刪除,當為一個點時不刪除。(3)循環(huán)尋找,直到?jīng)]可刪除的點為止。2.4.2 改進的opta算法常用的傳統(tǒng)細化算法還有opta算法10(基于模板的圖象細化算法),原理為構(gòu)造兩個模板:一消除模板和一保留模板,將指紋圖像二值化后與這兩個模板相比較,來決定是否刪除

25、該像素,本文研究的是改進后的opta算法,改進后的opta算法的優(yōu)點是消除了原opta算法算法中兩種模板不一致的問題。本算法采用統(tǒng)一的4*4模板,消除模板有八個,保留模板有六個,模板的結(jié)構(gòu)如下圖2-15,圖2-16,圖2-17所示。圖 2-15 opta算法的改進模板(4*4)圖 2-16 消除模板(八個) 圖2-17 保留模板(六個)改進后的opta算法的細化原理:從圖像(類似于4*4的模板中)左上角開始進行,圖中的各個像素(如圖所示的元素,用p表示)抽取如圖2-15所示的總共十五個相鄰像素,其中的八個相鄰的像素(,)與圖2-15所示的消除模板(八個)相比較, 若都不匹配,則p保留,否則將抽

26、取出來的元素和圖2-16的保留模板(六個)相比較,若與其中的一個匹配,則保留p,否則應(yīng)該將p刪除。重復利用以上的操作,將所有圖像中的像素值進行比較直至不變?yōu)橹?。此算法是八連通的算法,基本都能夠保證單像素的寬度。但該算法卻不能使分叉點處徹底的細化,同時也會產(chǎn)生部分毛刺。matlab程序見附錄a。細化結(jié)果圖如圖2-18:圖2-18 細化圖根據(jù)實驗發(fā)現(xiàn),該方法處理弓形指紋效果較好,對于環(huán)形或螺旋形指紋的中心區(qū)域時會出現(xiàn)較多的毛刺和斷裂,如下圖2-19,這是其的缺點之一,為了很好的使其有實際應(yīng)用,有待改進。圖 2-19 細化圖本章通過對指紋原圖像的分割,二值化,濾波和細化算法的分析比較,得出了一套比較

27、實用和便捷的算法,并通過matlab仿真實現(xiàn)最終的結(jié)果,為后續(xù)的特征提取和匹配打下了基礎(chǔ)。 第3章 圖像特征提取和特征匹配3.1 特征點提?。?)提取指紋的端點和交叉點端點和交叉點均是指紋圖像的兩個細節(jié)特征,同時在指紋識別的的過程中起著重要的作用,因為識別的首要前提就是找到圖像的所有端點和交叉點。先通過一p.m函數(shù)對八個鄰域的坐標位置進行定義,然后定義另一point.m函數(shù)來找出細化后指紋圖像的所有端點及交叉點。將八鄰域中的每個點依次兩兩相減并取其絕對值,后將所有結(jié)果加起來,因為端點處是兩個點,即和為2時細化圖像有端點,和為6時圖像特征為交叉點。運行完上面的p.m和point.m函數(shù)的程序后,

28、能把細化圖像的的端點和交叉點全部找出。在定義函數(shù)的程序中有數(shù)組txy,其中t為橫坐標,x為縱坐標,y為2時為端點,y為6時為交叉點。(2)去除圖像邊緣的端點可以看出,指紋圖像細化的邊緣,由于采集儀器不同的關(guān)系,因此不可避免的會多出很多的端點,這些端點不僅增加了后續(xù)的工作量,還可能導致識別過程中產(chǎn)生錯誤,所以要把這些邊緣的端點都去除,在matlab中這些操作都可以采用一函數(shù)來實現(xiàn),本實驗中設(shè)計了一cut函數(shù)來進行處理。3.2 找出特征點設(shè)置三個函數(shù)來找出圖像的特征點:(1)single_point函數(shù)經(jīng)過去除邊緣端點的操作后進一步減少了指紋細化圖像中的端點和交叉點的個數(shù)。下面就需要找出一些在細化

29、圖像中比較獨特的端點來作為識別的特征點。在一幅細化的指紋圖像中,如果在一個像素(該像素為端點)的周圍半徑為r(r為像素的個數(shù))的圓內(nèi)沒有任何的端點或者交叉點,那么隨著r的逐漸增大,這樣的點就會越來越少,因此該點也就越來越獨特。于是我們設(shè)計了一single_point函數(shù)來找出這樣獨特的點。(2)walk函數(shù)為了進一步找出特征點,我們還需定義一walk函數(shù),它的主要作用就是判斷某一端點在num的距離內(nèi)是否還有其他的端點。(3)last1函數(shù)single_point函數(shù)和walk函數(shù)都是找細化圖像特征點的函數(shù),因此可以設(shè)計另一個新的last1函數(shù),通過執(zhí)行pxy3,error2=last1(thi

30、n,r,txy,num)可以找出一端點以r為半徑的像素內(nèi)的任何端點和交叉點且沿著脊線走向的num內(nèi)沒有任何的其他端點和交叉點。3.3 特征點匹配由上文的函數(shù)可知,已經(jīng)找出了指紋細化圖像中的特征點,并畫出了一段獨特的脊線,在圖像中用紅色來標示。下面就是指紋匹配12的問題了。在此我們設(shè)置了三層匹配。(1)脊線長度匹配對于上面的函數(shù)即可找出細化圖像中的特征點和一段脊線,沿著該段脊線走向,每隔五個像素測量一下,看到到原始端點的距離,此段距離由一distance函數(shù)得到。函數(shù)結(jié)果會得到一數(shù)組(內(nèi)有脊線的長度信息)。如果兩幅指紋細化圖像中的紋路是相同的,則它們就包含相同的端點和交叉點及用distance函

31、數(shù)找出的相同的一段脊,則這兩個指紋圖像中的長度數(shù)組對應(yīng)的位置比例會基本相等(我們選擇的指紋圖像大小基本相等,因此該比例選1),因此函數(shù)最終定義了一個數(shù)f=(sum(abs(d1./d2)-1),其中若f的值越接近于0,這兩幅圖像的匹配度就越高,在一定范圍的閾值內(nèi)我們可以認定為匹配。(2)三角形邊長匹配找到一個指紋細化圖像的特征點后,可以找出距離這個端點距離最近的兩個端點或者交叉點,與這個指紋圖像細化的特征點構(gòu)成一個三角形,若兩幅圖像中的邊長比例基本相等(原理同上,也選1),則說明這兩幅圖像匹配,越接近于1說明這兩幅指紋圖像越匹配。其中設(shè)置一find_point函數(shù)來找出距離最近的端點或交叉點。

32、函數(shù)最后定義了一個數(shù)ff=(sum(abs(dd1./dd2)-1),因此ff值越接近于0,這兩幅指紋圖像的匹配度越高,在一定范圍的閾值內(nèi)我們可以認定為匹配。(3)點類型匹配找到一個指紋細化圖像的特征點后,在該端點周圍找到四十個端點或者交叉點,統(tǒng)計在這四十個特征點中端點的個數(shù)和交叉點的個數(shù)。若有兩幅指紋細化圖像中的端點所占的比例近似相同,則兩幅圖像相匹配,越近似,則越相同。函數(shù)最終定義了一個數(shù)fff=abs(f11-f21)/(f11+f12),所以fff值越接近于0,這兩幅指紋圖像的匹配度就會越高。我們也設(shè)定一閾值,在此閾值內(nèi)都可以認定為匹配。本文中取r=8,num=60,經(jīng)過試驗,得到f的

33、閾值為0.5,ff的閾值為1.5,fff的閾值為0.2。即兩幅圖像的f,ff,fff若均小于閾值,則兩幅圖匹配;若三個值中有至少一個值大于閾值,則不匹配。驗證如下:一、選擇兩幅圖:zhiwen.bmp和zhiwen5.bmp來驗證圖 3-1(a) 輸出的時間圖 3-1(b) 特征匹配通過以上的f,ff,fff和閾值的比較說明zhiwen.bmp和zhiwen5.bmp匹配,為同一手指的指紋,匹配時間為12.514525秒。二、選擇兩幅圖:zhiwen.bmp和zhiwen2.bmp來驗證圖 3-2(a) 輸出的時間圖 3-2(b) 特征匹配通過以上的f,ff,fff和閾值的比較說明zhiwen

34、.bmp和zhiwen2.bmp不匹配,為同一手指的指紋,匹配時間為12.728871秒。總結(jié)與展望該論文是在前人研究的基礎(chǔ)上,參閱了部分資料,并在劉文博老師的指導下認真完成的,文中主要對指紋圖像預(yù)處理的各個步驟做了較為詳細的討論,并用matlab加以仿真和驗證。論文中的算法基本上能夠?qū)崿F(xiàn)指紋識別的預(yù)期目的,但是由于畢業(yè)設(shè)計的時間較短以及我的知識面的限制,有許多問題的考慮還不全面,有待于進一步完善。本文中主要對圖像預(yù)處理進行了分析比較,最后得到了一套比較合適的算法,但通過實驗驗證可發(fā)現(xiàn)比對時間比較長,有待于進一步改進。在指紋特征點的提取和匹配的過程中,均設(shè)置了一個函數(shù)來實現(xiàn)算法,實現(xiàn)的過程的時

35、間也相對較長,也可以用其他的語言來實現(xiàn)。 致 謝時光如梭,隨著畢業(yè)論文的完成,我的大學生涯也就要結(jié)束。回想我做畢業(yè)設(shè)計這段時間里,我的指導老師劉文博,對我耐心指導,嚴格要求,精益求精,在此致以最深的謝意。在撰寫論文的這段時間里,我學到了很多我之前不懂的一些專業(yè)知識和技能,鍛煉了我思考能力和操作能力,對我大學四年的學習有了一個比較全面系統(tǒng)的整理。在畢業(yè)設(shè)計的完成過程中,室友和班上的所有同學,他們給我提供了有益的幫助、良好的學習和生活環(huán)境,非常感謝他們。參考文獻1 李俊山,李旭.數(shù)字圖像處理.北京:清華大學出版社,2007.42 阮秋琦.數(shù)字圖像處理學.北京:電子工業(yè)出版社,2001.13 祝恩,

36、版建平等.自動指紋識別技術(shù).長沙:國防科技大學出版社,2006.54 查振元、朱華炳電子門禁系統(tǒng)組成.機電產(chǎn)品開發(fā)與創(chuàng)新.2003,(2):13145 胡士斌,楊衛(wèi)平. 指紋圖像復合分割算法研究j. 計算機工程與應(yīng)用, 2006,40(12): 71273.6 李建華,馬小妹,郭成安,基于方向圖的動態(tài)閩值指紋圖像二值化方法.大連理工大學學報.2002,42(5):626-6287 家鋒,唐降龍,趙泉.一個基于特征點匹配的聯(lián)機指紋鑒別系統(tǒng).哈爾濱工業(yè)大學學報,2002,34(1):132-1368 劉文星,王肇圻,母國光脊線跟蹤及其在細化指紋后處理中的應(yīng)用j光電子,激光,2002,13(2):1

37、841879 王瑋著,自動指紋識別系統(tǒng)關(guān)鍵技術(shù)研究,重慶,重慶大學光電工程學院,2007,80-8210 羅希平,田捷.自動指紋識別的圖像增強和細節(jié)匹配算法.軟件學報,2002-5,13(5): 946-95611 姜騰云指紋識別門禁系統(tǒng)的matlab仿真實現(xiàn)江門:五邑大學,201112 喬治宏.基于細節(jié)結(jié)構(gòu)的指紋特征提取及匹配算法研究.北京:北京工業(yè)大學碩士學位論文,2004-5. 附錄a 預(yù)處理代碼function img = tuxiangyuchuli(path)m=0;var=0;i=double(imread(path);m,n,p=size(i);for x=1:m for y=

38、1:n m=m+i(x,y); endendm1=m/(m*n);for x=1:m for y=1:n var=var+(i(x,y)-m1).2; endendvar1=var/(m*n);for x=1:m for y=1:n if i(x,y)=m1 i(x,y)=150+sqrt(2000*(i(x,y)-m1)/var1); else i(x,y)=150-sqrt(2000*(m1-i(x,y)/var1); end endendfigure, imshow(i(:,:,3)./max(max(i(:,:,3);title(歸一化)%*m =3; %3*3h = m/m; l=

39、n/m;aveg1=zeros(h,l);var1=zeros(h,l); %計算每一塊的平均值for x=1:h; for y=1:l; aveg=0;var=0; for i=1:m; for j=1:m; aveg=i(i+(x-1)*m,j+(y-1)*m)+aveg; end end aveg1(x,y)=aveg/(m*m); %計算每一塊的方差 for i=1:m; for j=1:m; var=(i(i+(x-1)*m,j+(y-1)*m)-aveg1(x,y).2+var; end end var1(x,y)=var/(m*m); endendgmean=0;vmean=0;

40、for x=1:h for y=1:l gmean=gmean+aveg1(x,y); vmean=vmean+var1(x,y); endendgmean1=gmean/(h*l); %所有塊的平均值vmean1=vmean/(h*l); %所有塊的方差gtemp=0;gtotle=0;vtotle=0;vtemp=0;for x=1:h for y=1:l if gmean1aveg1(x,y) gtemp=gtemp+1; gtotle=gtotle+aveg1(x,y); end if vmean1var1(x,y) vtemp=vtemp+1; vtotle=vtotle+var1(

41、x,y); end endendg1=gtotle/gtemp;v1=vtotle/vtemp; gtemp1=0;gtotle1=0;vtotle1=0;vtemp1=0;for x=1:h for y=1:l if g1aveg1(x,y) gtemp1=gtemp1-1; gtotle1=gtotle1+aveg1(x,y); end if 0var1(x,y)g2 & var1(x,y)v2 e(x,y)=1; end if aveg1(x,y) g1-100 & var1(x,y) v2 e(x,y)=1; end endend for x=2:h-1 for y=2:l-1 if

42、e(x,y)=1 if e(x-1,y) + e(x-1,y+1) +e(x,y+1) + e(x+1,y+1) + e(x+1,y) + e(x+1,y-1) + e(x,y-1) + e(x-1,y-1) (3*summ/8) sumf = summin; else sumf =summax; end if sumf b im(x,y)=128; else im(x,y)=255; end endend for i=1:m for j =1:n icc(i,j)=icc(i,j)*im(i,j); endend for i=1:m for j =1:n if (icc(i,j)=128)

43、icc(i,j)=0; else icc(i,j)=1; end; end end figure,imshow(double(icc);title(二值化);%*u=icc;m,n=size(u) %去空洞和毛刺for x=2:m-1for y=2:n-1if u(x,y)=0if u(x,y-1)+u(x-1,y)+u(x,y+1)+u(x+1,y)=3u(x,y)=1;endelse u(x,y)=u(x,y);endendendfigure,imshow(u) %title(去毛刺)for a=2:m-1for b=2:n-1if u(a,b)=1if abs(u(a,b+1)-u(a-

44、1,b+1)+abs(u(a-1,b+1)-u(a-1,b)+abs(u(a-1,b)-u(a-1,b-1)+abs(u(a-1,b-1)-u(a,b-1)+abs(u(a,b-1)-u(a+1,b-1)+abs(u(a+1,b-1)-u(a+1,b)+abs(u(a+1,b)-u(a+1,b+1)+abs(u(a+1,b+1)-u(a,b+1)=1 %去空洞if(u(a,b+1)+u(a-1,b+1)+u(a-1,b)*(u(a,b-1)+u(a+1,b-1)+u(a+1,b)+(u(a-1,b)+u(a-1,b-1)+u(a,b-1)*(u(a+1,b)+u(a+1,b+1)+u(a,b+

45、1)=0 %去毛刺u(a,b)=0;endendendendendfigure,imshow(u) %title(去空洞)%*v=u;se=strel(square,3);fo=imopen(v,se);v=imclose(fo,se); %對圖像開操作和閉操作img=bwmorph(v,thin,inf); %對圖像進行細化figure,imshow(img)title(細化圖)附錄b 特征點提取代碼function j = p (img, x, y, i)switch (i) case 1, 9 j = img(x+1, y); case 2 j = img(x + 1, y-1); ca

46、se 3 j = img(x, y - 1); case 4 j = img(x - 1, y - 1); case 5 j = img(x - 1, y); case 6 j = img(x - 1, y + 1); case 7 j = img(x, y + 1); case 8 j = img(x + 1, y + 1);end%point函數(shù)function txy=point(thin)count = 1;txy(count, :) = 0,0,0;siz=min(size(thin,1),size(thin,2);for x=40:siz - 40 for y=40:siz - 4

47、0 if (thin(y, x) ) cn = 0; for i = 1:8 cn = cn + abs (p(thin, y, x, i) - p(thin, y, x, i + 1); end if (cn = 2) txy(count, :) = x, y,2; count = count + 1; end if (cn = 6) txy(count, :) = x, y,6; count = count + 1; end end end end for i=1:count - 1 x(i) =txy(i, 1); y(i)= txy(i, 2);end imshow(double(th

48、in);hold on;plot(x,y,.);%cut函數(shù)function txy=cut(thin,txy)s(8,8)=0;delta(8,8)=0;n=size(txy,1);for i=1:8 for j=1:8 mpi,j=thin(1+31*(i-1):31+31*(i-1),1+31*(j-1):31+31*(j-1); s(i,j)=sum(sum(mpi,j)/(31*31); mpi,j=(mpi,j-s(i,j).2; delta(i,j)=sum(sum(mpi,j); if delta(i,j)=1+31*(i-1)&txy(k,1)=1+31*(j-1)&txy(

49、k,2)r);pxy2=txy(c,:);pxy2=pxy2(find(pxy2(:,3)=2),:);t=size(pxy2,1);if t=0 error=1else plot(x,y,b.); hold on plot(pxy2(:,1),pxy2(:,2),r.); end%walk函數(shù)function error,a,b=walk(thin,x0,y0,num) error=0;thin(y0,x0)=0;t1=0;for n=1:num if error=1 break; else x=x0; y=y0; for x=x0-1:x0+1 if error=1 break; else

50、 for y=y0-1:y0+1 t1=sum(sum(thin(y0-1:y0+1,x0-1:x0+1); if (t1=0|t1=2) error=1; a=x0; b=y0; break; else if (thin(y,x)=1&(x-x0)2+(y-y0)2=0) if (t1=2 ) error=1; break ; else thin(y,x)=0; x0=x; y0=y; a=x0; b=y0; plot(x0,y0,r.) end end end end end end endend%last1函數(shù)function pxy3,error2=last1(thin,r,txy,n

51、um)error=0;pxy2,error=single_point(txy,r);n=size(pxy2,1);l=1;error2=0;for i=1:n error,a,b=walk(thin,pxy2(i,1),pxy2(i,2),num); if error=1 pxy3(l,1)= pxy2(i,1); pxy3(l,2)= pxy2(i,2); pxy3(l,3)= pxy2(i,3); l=l+1; error2=0; plot(pxy2(i,1) ,pxy2(i,2),r+); endend附錄d 特征點匹配代碼%distance函數(shù)程序function d=distance(x0,y0,num,thin)num2=fix(num/5);for i=1:num2 error,a,b=walk(thin,x0,y0,5*i); if error=1 d(i)=sqrt(a-x0)2+(b-y0)2); else break; endend%find_point函數(shù)function pxy=find_point(x0,y0,txy,nu

溫馨提示

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

評論

0/150

提交評論