馬飛終稿 指紋識別算法的matlab實現_第1頁
馬飛終稿 指紋識別算法的matlab實現_第2頁
馬飛終稿 指紋識別算法的matlab實現_第3頁
馬飛終稿 指紋識別算法的matlab實現_第4頁
馬飛終稿 指紋識別算法的matlab實現_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、及處理結果。該結果證明,用matlab實現的這些算法的處理結果比較理想,滿足識別的可行性和應用性。關鍵詞 分割,二值化,細化,特征點提取,匹配,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 國內外研究狀況51.2指紋識別的原理和方法51.2.1 指紋的基本知識51.2.2 指紋識別的原理及應用71.3 Matlab在指紋識別中的應用8第2章 指紋圖像預處理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總結與展望30致 謝31參考文獻32附錄A 預處理代碼33附錄B 特征點提取代碼37附錄C 圖像特征點代碼39附錄D 特征點匹配代碼42 第1章 緒論1.1 指紋識別概述21世紀是信息化時代,在這個特殊的時代,我們的生活中電子設備越來越多,比如,筆

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

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

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

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

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

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

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

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

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

17、2.2所示。圖2-2 指紋圖像的四種區(qū)域2.1.1 圖像歸一化對指紋圖像進行分割處理,消除剩下的背景區(qū)域前,首先要進行圖像歸一化。對采集好的指紋圖像進行歸一化處理,是對指紋灰度圖的灰度均值和方差做一次調整,使得不論用什么設備采集的指紋圖像都可以有預期的方差和均值,從而屏蔽不必要的噪聲。指紋歸一化不改變指紋質量,只是方便指紋的后續(xù)處理并保證程序運行時收斂加快。由于不同指紋區(qū)域的手指壓力和強度不同,所以將指紋分為W*H小塊,設圖像中像素點的灰度值為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)點:算法簡單,計算速度快,如果采集到的指紋質量好,則分割效果不錯;缺點:對質量較差的指紋,該方法分割效果不是很理想,如當指紋背景區(qū)域有污漬時, 這些區(qū)域的方差也比較大,用方差法分割時就不能被有效地分割出去。改進后的方差法:為了解決上述問題,可以在方差法分割的基礎上進行開運算和閉運算操作,該算法繼承了方差法的優(yōu)點且又克服了易受噪聲影響的缺陷。把指紋的圖像分成3*3塊,將歸一化處理后的圖像進行分割的具體算法步驟如下:(1)利用式(2-1)和式(2-2

20、)對指紋的小塊求灰度平均值和方差,設定一閾值T,因為是3*3模塊,所以是在8鄰域中,即T=4,若>4,則該小塊作為目標留下,并把該塊標示為1,存放于矩陣A中;若<4,則該塊作為背景去掉,并把該塊標示為0,同樣存在矩陣A中;(2)以作為結構元素對已知的二值矩陣A做開運算,可得到矩陣B;(3) 以為結構元素對二值矩陣B做閉運算,得到矩陣C,矩陣C為一個二值矩陣(只包含1和0),對應元素為1的作為目標留下,對應元素為0的作為背景去除。該算法的第(1)步與方差法的算法一致,第(2)、(3)步驟利用數字圖像處理中的開運算與閉運算處理,其原理為:開運算(先腐蝕后膨脹)用來消除小物體、在纖細點處

21、分離物體,去除被誤當成目標的背景塊;閉運算(先膨脹后腐蝕)用來填充物體內細小空洞、連接鄰近物體,恢復指紋背景中被誤當成背景而去除的目標塊。Matlab程序見附錄A。結果圖如下: 圖 2-4 圖像分割2.2 圖像的二值化2.2.1 方向圖因為許多二值化算法和增強濾波算法都用到了方向圖,因此方向圖的計算對后續(xù)的各種算法都有很大幫助。指紋圖像有著自己獨特和固有的特征,其中指紋的方向性、紋理性都很強,可以看作是一個流狀模型,該模型可以用方向圖來具體表示。方向圖描述了指紋圖像中的像素點、小塊指紋所在處的脊線或谷線的切線方向,因為指紋圖像在一塊不大的區(qū)域內的指紋方向幾近相同,因此在計算中,一般以該點所在的

22、小塊方向來代替該像素點的方向。 為方便認知,以指紋圖像為模板,畫一環(huán)形區(qū)域來表示指紋,其中,扇形區(qū)域中的小塊表示指紋被分塊后的小塊。全局信息如下圖2-5所示:圖 2-5 指紋小塊模型方向圖計算的基本思想: 在原灰度的指紋圖像中計算每小塊在每個方向上的統(tǒng)計量, 由這些統(tǒng)計量在每個小塊方向上的差異來確定該小塊的方向。2.2.2 指紋圖像二值化二值化就是將圖像上的像素點的灰度值設置為0或1,也就是將整個圖像呈現出明顯的黑白視覺效果。指紋圖像中包括目標和背景還有眾多噪聲,要想從原始的指紋圖像中提取出目標,一般用的方法是設定一個閾值T,用T將圖像中像素數據分成兩部分,若輸入灰度圖像的函數為: (2-4)

23、通過求解閾值T,從而把圖像f(x,y)分成目標和背景兩個區(qū)域,其中大于T的像素群為目標區(qū)域,小于等于T的像素群為背景區(qū)域,閾值的選取原則是:(1)盡可能的多保存圖像信息;(2)盡可能的減少噪聲。本文將討論兩種二值化方法,選取其中一個作為效果最好的算法。2.2.3 靜態(tài)閾值二值化靜態(tài)閾值二值化是根據灰度圖像的直方圖為整幅圖像來確定一個閾值,也可以根據相關經驗來確定閾值,閾值的確定一般分為兩種:(1)人工設定閾值:該方案是根據實驗或經驗設置一個固定的閾值,然后對每個像素按照式來進行二值化處理。 (2)按照直方圖確定閾值:利用原灰度圖像分部的直方圖來確定,設灰度值f取值是0255之間的整數,f=0為

24、黑色,f=255為白色,表示灰度值為k的概率,表示灰度值為k的像素的個數,n為像素的個數。則有公式如下: (2-5)通常以為縱坐標,為橫坐標的圖像為指紋灰度圖的直方圖,該算法的直方圖有兩個峰值,對應目標和背景,閾值取雙峰的波谷的值,且雙峰越陡,二值化效果越好。該算法速度快,簡單且易于理解,但效果較差。2.2.4 基于方向場的二值化采集到的指紋圖像一般都有比較清晰的方向場,方向場估計得準確與否直接決定了圖像二值化算法的效果。為估計方向場,我們把指紋脊線的走向分為如下8個方向,如圖2-6所示:圖 2-6 一個像素處的8個指紋脊線方向我們先對分割后的圖像進行了平均濾波,然后對圖像的每一個像素,為確定

25、在該像素處的脊線方向,在以該像素為中心的9*9窗口內,分別計算8個方向上的經過處理后的灰度值,即將圖2-6中數字1到8的位置的像素灰度值去除其中最大summax和最小值summin,若滿足最大的summax和最小的summin與 4*I(x,y)之和大于 (3*summ/8),則該像素點的脊線方向為summin,否則為summax.確定完脊線方向后再由該方向場對圖像進行二值化。二值化的matlab程序見附錄A。結果如下:圖 2-7 指紋二值化2.3 指紋圖像的濾波 一個優(yōu)秀的指紋識別系統(tǒng)不僅需要高的識別準確度,還需要高的識別速度,而影響識別速度的最主要因素就是指紋圖像的濾波,而濾波的好壞直接因

26、素是增強濾波的算法,當然跟所使用的軟件和硬件也有很大的關系。圖像在當前的采集設備條件下,不可避免的會受到環(huán)境和自身因素的影響,指紋圖像質量低的主要原因有:(1)存在擦傷或創(chuàng)傷的傷痕所引起的脊線中斷或變的不清晰;(2)指紋干燥所引起指紋圖像印痕模糊,導致脊線和谷線的對比度比較差;(3)污漬導致指紋圖像的脊線或谷線粘連和斷裂。這些圖像噪聲對后續(xù)的指紋提取帶來很大的困難,因此必須要在指紋二值化和細化之前進行圖像增強濾波,圖像增強的目的:減弱原始圖像的噪聲,增強脊線和谷線的對比度,即修補指紋圖像脊線中斷裂的部分,去除指紋圖像中脊線或谷線的叉連部分,從這些原指紋圖像中盡可能多的獲取清晰的指紋紋路結構,以

27、保證指紋提取的可靠性。指紋圖像的增強濾波有很多的算法,本文就一種圖像濾波器算法進行闡述。上下文濾波器:該算法也是基于脊線紋路和紋理的方向圖的,但是這種算法比較簡單且效果良好,使用時用的濾波器要根據具體的某一塊指紋脊線的方向從一系列的濾波器中選擇一個合理的濾波器來對要進行濾波的指紋進行濾波,其它塊的指紋圖像濾波則可以通過已用過的濾波器旋轉得到。一個基本增強濾波器主要由可將脊線中的斷點連接起來的平均濾波器和可將脊線分叉點去除的分離濾波器組成。指紋圖像中脊線的一個周期(即一脊一谷)可以決定增強濾波器的大小,一般地周期T=5,本文中選擇5*5的濾波器,平均濾波器在水平方向上的權值可以用下圖2-8來表示

28、。 圖 2-8 平均濾波器水平方向權值 圖 2-9 分離濾波器水平方向權值(其中A>B>C>=0;P+2Q+2R=0)。二值化后的指紋圖像通過平均濾波器的處理,其每一點灰度值由它臨近的二十四個(因為是5*5的濾波器)像素的灰度值決定,因此可以用下式來對f(i,j)(第i行和第j列的灰度值)進行處理9: (2-6)平均濾波的原理如下:對于脊線中的斷點我們采用平均濾波器。斷點處脊線的灰度值要比周圍的灰度值小,經過平均濾波器的處理,它的灰度值就大約等于周圍的灰度值,因此二值化后的指紋中斷裂的脊線就會被連起來。對于脊線中的分叉點我們采用分離濾波器。脊線中叉連點的兩端灰度值比中間的要稍

29、微大一些,經過分離濾波器的處理,叉連點處的灰度值就會降下來,脊線中的叉連點就會被去除了。脊線的斷裂和叉連點如圖2-10所示:圖2-10 斷裂與叉連因此選擇增強濾波器的時候必須要具有類似平均濾波器和分離濾波器作用的增強濾波器,分離濾波器的權值可以用下圖2-9來表示,并且可以得到一般濾波器的權值如圖2-11。圖 2-11 上下文濾波器的權值參數滿足K =A+P,L =B+Q,M =C+R。上下文濾波器中的平均濾波器起到了去除空洞的作用,分離濾波器起到了去除毛刺的作用。算法實現的matlab程序見附錄A。結果如圖2-12和圖2-13: 圖 2-12 去除毛刺圖 2-13 去除空洞2.4 圖像細化分割

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

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

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

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

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

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

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

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

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

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

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

41、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.bmp和zhiwen2.bmp不匹配,為同一手指的

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

43、如梭,隨著畢業(yè)論文的完成,我的大學生涯也就要結束?;叵胛易霎厴I(yè)設計這段時間里,我的指導老師劉文博,對我耐心指導,嚴格要求,精益求精,在此致以最深的謝意。在撰寫論文的這段時間里,我學到了很多我之前不懂的一些專業(yè)知識和技能,鍛煉了我思考能力和操作能力,對我大學四年的學習有了一個比較全面系統(tǒng)的整理。在畢業(yè)設計的完成過程中,室友和班上的所有同學,他們給我提供了有益的幫助、良好的學習和生活環(huán)境,非常感謝他們。參考文獻1 李俊山,李旭.數字圖像處理.北京:清華大學出版社,2007.42 阮秋琦.數字圖像處理學.北京:電子工業(yè)出版社,2001.13 祝恩,版建平等.自動指紋識別技術.長沙:國防科技大學出版社

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

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

46、/(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= n/M;aveg1=zeros(H,L);v

47、ar1=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;for x=1:H for y=1:L Gm

48、ean=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 Gmean1>aveg1(x,y) gtemp=gtemp+1; gtotle=gtotle+aveg1(x,y); end if Vmean1<var1(x,y) vtemp=vtemp+1; vtotle=vtotle+var1(x,y); end ende

49、ndG1=gtotle/gtemp;V1=vtotle/vtemp; gtemp1=0;gtotle1=0;vtotle1=0;vtemp1=0;for x=1:H for y=1:L if G1<aveg1(x,y) gtemp1=gtemp1-1; gtotle1=gtotle1+aveg1(x,y); end if 0<var1(x,y)<V1 vtemp1=vtemp1+1; vtotle1=vtotle1+var1(x,y); end endendG2=gtotle1/gtemp1;V2=vtotle1/vtemp1; e=zeros(H,L);for x=1:H

50、for y=1:L if aveg1(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 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) <=4 e(x,y)=0; end en

51、d endend Icc = ones(m,n);for x=1:H for y=1:L if e(x,y)=1 for i=1:M for j=1:M I(i+(x-1)*M,j+(y-1)*M)=G1; Icc(i+(x-1)*M,j+(y-1)*M)=0; end end end endendfigure, imshow(I(:,:,3)./max(max(I(:,:,3);title('分割');%*temp=(1/9)*1 1 1;1 1 1;1 1 1; % 模板系數、均值濾波 Im=double(I); In=zeros(m,n);for a=2:m-1; for b=2:n-1;In(a,b)=Im(a-1,b-1)*temp(1,1)+Im(a-1,b)*temp(1,2)+Im(a-1,b+1)*temp(1,3)+Im(a,b-1)*temp(2,1)+Im(a,b)*temp(2,2)+Im(a,b+1)*temp(2,3)+Im(a+1,b-1)*temp(3,1)+Im(a+1,b)*temp(3,2)+Im(a+1,b+1)*temp(3,3); endendI=In;Im=zeros(m,n);for x=5:m-5; for y=5:n-5; sum1=I(x,y

溫馨提示

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

評論

0/150

提交評論