基于MATLAB軟件的指紋識别研究
基于MATLAB軟件的指紋識别研究
人的指紋各不相同,裡面藏着很多秘密。指紋可以用來确定人的身份,廣泛用于刑偵、加密、考勤等領域,最近還出現了用指紋進行手機解鎖等應用。還有一些人聲稱指紋與人的健康、性格、命運等都有一定的聯系。指紋傳統上以圖像格式存儲,一般占用較多的空間,且圖像裡面的像素信息并不易用來進行分析或比對。為發現指紋中隐藏的秘密,我們需要有一種方法來描述指紋的内在結構、具體形态和其它特征并將其用最少的字節數來存儲于計算機中。
指紋具有普遍性、唯一性和不變性的特點,使得指紋識别技術成為目前世界公認的最可靠的個人身份認證技術之一,本文主要對指紋特征進行了研究,最終得出指紋所唯一确定的指紋密碼的數學表示以及指紋分類的方法。在合理的假設下,首先利用軟件對指紋原圖像進行預處理,包括指紋分割、二值化、去毛刺和空洞以及細化四個步驟,得到細化後的指紋圖像。基于細化後的圖像提取出指紋特征點,給出合理的指紋密碼。然後根據指紋的總體特點,利用基于奇異點的指紋分類方法,對指紋進行了分類。
一、指紋圖像的預處理
在指紋采集過程中由于手指本身的因素和采集條件等各種原因的影響,從指紋傳感器上采集到的原始圖像會不同程度地受到各種因素的幹擾,圖像中往往包含有很多噪聲,造成指紋圖像質量嚴重下降。為了改善圖像、去除噪聲幹擾、有效的提取指紋特征,必須進行圖像預處理。
二、圖像分割
圖像分割的目的是為了将指紋前景區域和背景區域分離開,避免在噪聲和背景區域中提取特征,提高特征的準确性。根據前景圖像中指紋脊和谷的灰度差比較大,局部灰度方差也很大,而背景區域的值很小這一特性,本文采用方差法對圖像進行分割。具體算法如下:
将輸入的指紋圖像劃分為互不重疊的子塊,對每一分塊進行處理。
1.計算每一子塊圖像的平均灰度值
2.計算每一圖像子塊的方差
3.對于每一圖像子塊,當大于所有子塊的平均方差時,将其設定為背景區域;否則,作為前景保留其灰度值。由于在不同的分塊尺寸下,指紋圖像分割後的圖像效果各不相同:如果選取的分塊尺寸太大,不能有效的去除背景區域,分割效果不準确;如果選取的分塊尺寸太小,又會誤去太多前景區域。故本文運用以3*3的分塊尺寸對指紋作出指紋分割圖。
三、二值化
圖像的二值化是通過設定閥值把灰度圖像變成僅用兩個值分别表示圖像的目标和背景的二值圖像。假設一幅灰度圖的像素值為,設有一閥值,則:
。
四、細化
指紋圖像二值化後,會引入空洞和毛刺等僞特征,其紋線寬度也不均勻,會影響到指紋特征的提取。因此,為避免二值化引入的毛刺空洞等僞特征帶來的影響,保護指紋的細節特征,對所得的二值化圖進行去毛刺和空洞。
五、特征點提取
在預處理中得到的細化圖中提取指紋細節特征,主要有指紋圖像的分叉點和端點。具體算法如下:
将細化後的指紋圖像按照3*3的分塊尺寸進行劃分,其中目标檢測像素點用代表,而、、、…、是在像素點的八個鄰域像素點。為計算方便,這裡将目标點的設定為1,則采用如下公式:
然後統計像素點的8個鄰域中值為1的像素點個數,由此可得到:如果的8個鄰域中有且僅有一個值為1的像素點,則,稱為端點;如果的8個鄰域中有兩個值為1的像素點,,稱為連續點;如果的8個鄰域中有三個值為1的像素點,,稱為分叉點。連續點即為指紋的紋路。
六、指紋圖像的密碼表示
将問題的解題方法用軟件編程實現,對指紋依次進行預處理、特征點提取,最終得到其相對應的指紋密碼。首先對指紋進行預處理,在所得指紋細化圖的基礎上,對指紋的細節特征進行提取,即運用8-領域算法找出指紋圖像中的端點及分叉點。并運用仿真實現指紋圖像特征點的提取。由指紋特征點提取圖可得出各個特征點的位置坐标,即為指紋所唯一确定的指紋密碼。根據已經找出了指紋細化圖像中的特征點,畫出了一段獨特的脊線,在圖像中用紅色來标示。
七、建立基于奇異點的指紋分類模型
在實際情況中指紋圖像中存在很大的噪聲,在指紋圖像的預處理過程中,不可能去除所有的噪音聲,所以不能僅以奇異點的位置和數目進行指紋的分類。然而對于指紋圖像中噪聲比較嚴重的部分,甚至可能因為檢測定位不準或檢測不到,造成錯誤分類。
設為中心點的個數,為三角點的個數,基于奇異點的指紋分類規則如下:當且時,則為弓型;當且時,則為螺旋型;當且時,則根據方向圖求與中心點垂直方向以及中心點與三角點連線的方向:若
,則為帳拱型;若,則為左旋型;若,則為右旋型;當且時,根據方向圖,
沿方向以步長為5采樣五個像素點,其方向分别為,,,,,計算方向偏移:
若,則為左旋型;若,則為右旋型。如果以上條件都不滿足,則說明指紋圖像質量太差,拒絕分類。
八、法提取奇異點
給定指紋圖像的任意一點,在其鄰域内做一條包圍該點的閉合曲線,沿該閉合曲線逆時針旋轉一周,通過計算得到的旋轉角度總和不同對應了不同類型的點,中心點對應的值為180度,三角點對應的值為負180度,而一般圖像區域點對應
值為0度。提取奇異點的具體步驟如下:
取一條封閉數字曲線計算值。取當前點為中心,距離為1的點組成的曲線,長度為4。按如下公式計算值:
封閉曲線的長度大小關系到奇異點定語的準确性。取一條與點距離為1的點組成的曲線,曲線長度為4。由于在數字處理圖像中,所有圖像均以矩陣形式存在,所取的曲線上的點坐标都是整數,取點距離為1,長度為4的曲線還能保證計算值的過程中用到的點均嚴格滿足在這條曲線上,從而保證了計算的精确性。對指紋的每一像素點,根據以上所求得的值,設置奇異判據如下:若,則該點為中心點;若,則該點為三角點;否則該點為非奇異點。
九、指紋分類
根據基于奇異點的指紋分類模型,最終将指紋進行分類。
十、GUI界面設計
我來說兩句