毕业论文-基于matlab的指纹识别内容摘要:

表示要求 必须 满足尺度不变性、 位移不变性和旋转不变性 这 3 个特征。 尺度不变性是满足的。 在滤波提取算法中 ,位移不变性是通过确定指纹图像的中心参考点来实现的。 图像的旋转不变性可以通过在匹配阶段建立多角度旋转特征向量来实现。 滤波特征的提取算法包括 4 个步骤 : 一是: 确定指纹图像的中心参考点 , 以及要处理的指纹区域 , 记为 ROI 区域 ; 二是: 以参考点为中心 , 对 ROI 区域进行划分 , 得到一定大小的块 ;三是: 用一组 Gabor 滤波器在八个不同的方向对 ROI 区域进行滤波运算 ( 在指纹图像中 ,完全获取指纹的局部脊线特征需要使用 8 个方向滤波器 , 获取全局结构信息仅需要 4 个方向滤波器 );四是: 在滤波图像中 , 计算每一块中灰度值相对于均值的平均绝对偏差 , 进而得到特征向量或特征编码。 基于滤波特征的指纹识别算法 , 首先对指纹图像进行 滤波特征提取 , 然后在滤波特征值构成的特征向量的基础上进行匹配。 不变矩识别算法:算法的基本思路是 : 搜索预处理后的二值图像中所有可能成 为目标的区域,计算区域的 7 个不变矩特征,认为与模板匹配程度最高的区域为目标。 其中相似度度量采用欧式距离。 指纹匹配算法 指纹匹配指的 是指纹特征值比对过程。 它是把当前取得的指纹特征值集合与事先存 好 的指纹特征值模板进行匹配的过程。 指纹匹配是一个模式识别的过程,指纹匹配判定的标准不是相等或 不等,而是相似的程度。 这个程度 的 判定依赖于事先设定的阈值,以及与判定时比较的特征点的个数。 阈值取的合理,特征点取的越多,误判的机率就越小。 指纹匹配的方法 有 很多,包括基于奇异点的匹配、嵴模式的匹配、特征点的匹配、特征点线对(两个特征点的连线)匹配,以及特征点组的匹配方法 等等。 在 指纹匹配之前需 要 作 出 指纹定位。 指纹定位是使待验证指纹的数个细节点的坐标值与指纹库中 的数个细节点的坐标值一一相互对准的过程,从而使两个指纹图像对准重合。 由于在指纹采样时,用户手指每次放置的位置和角度不同,形成的指纹图像也略有不同,因此各个指纹特征值的坐标值也就不同。 主要表现为手指平移和旋转的差异,形成平移误差和旋转误差。 解决指纹图像的平移误差和旋转误差是指纹比对算法面对的首要问题。 可以选取奇异点作为对准参数,也可以选择某一区域内的特征点及嵴方向、嵴密度作为对准参数。 实际上,在除了处理两种误差之外,在指纹采集过程中,由于每次按压的力度不同而形成的指纹图像挤压变形和拉伸变形,同样是指纹匹配之前 需处理的。 下图为 基于混合模式的指纹识别算法的流程图。 图 混合模式匹配算法流程图 第三章 指纹图像预处理 图像规格化 因为 受采集设备参数和环境的影响,采集到的指纹图像可能总体 的 对比度 会比 较差。 图像归一化的作用就是使 所有指纹图像具有相同的灰度均值和方差,从而使 每一幅图像的灰度调整到统一的范围,方便后续 的 处理。 归一化的算法是: ( 1) 先计算图像的平均值和方差。 这部分工作主要通过统计图像中各点像素值得到该图像的直方图 完成的 ,然后利用直方图来计算指纹图像的相关指标。 11001( ) ( , )HWijM I I i jWH  11 2001( ) ( ( , ) ( ) )HWijV a r I I i j M IWH ( 2) 指定期望经过处理后的图像均值和方差,计算归一化后的图像 G。 200200( ( , ) ( ) ) , ( , )( , )( ( , ) ( ) ) ,Var I i j M IM I i j MVarG i jVar I i j M IM ot he rsVar    图像规格化的 Matlab 程序如下(其中方差取 Var0=2020,M0=150): % 归一化 M=0。 var=0。 for x=1:m for y=1:n M=M+I(x,y)。 end end M1=M/(m*n)。 for x=1:m for y=1:n var=var+(I(x,y)M1).^2。 end end var1=var/(m*n)。 for x=1:m for y=1:n if I(x,y)=M1 I(x,y)=150+sqrt(2020*(I(x,y)M1)/var1)。 else I(x,y)=150sqrt(2020*(M1I(x,y))/var1)。 end end end figure, imshow(uint8(I))。 带入指纹图像 ’’后得到的原始图像和归一化图像见图 31 和图 32: 图 31 原始指纹图像 图 32 规格化后的指纹图像 图像分割 指纹图像通常包括纹线区域和周边的无用区域。 如果保留这些无用区域, 就会致使计算冗余度增加。 因 此要先将其从待处理区域中去除。 通常用的分离方法有像素领域特征的方法和基于像素分布概率的方法等。 本文采取对各像素邻域特征进行分析,然后分割图像算法。 把 图像分成 T*T 的非重叠块,计算每一块 的灰度均值 M 和方差 Var,通过下列条件区分前景与背景: ( 1) 如果 MM1 且 VarVar1,则认为背景 ( 2) 如果 M=M1 且 Var=Var1,则认为前景,否则待定; ( 3) 对所有分块划分完毕后,在对待定块进行判决。 如果在 8 邻域中,背景景小于等于 4 则认为是前景,否则是背景 在编程过程中通过几次调试后对图像进行 3*3 分块处理 Matlab 程序如下: % 分割 M =3。 %3*3 H = m/M。 L= 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+(x1)*M,j+(y1)*M)+aveg。 end end aveg1(x,y)=aveg/(M*M)。 % 计算每一块的方差值 for i=1:M。 for j=1:M。 var=(I(i+(x1)*M,j+(y1)*M)aveg1(x,y)).^2+var。 end end var1(x,y)=var/(M*M)。 end end Gmean=0。 Vmean=0。 for x=1:H for y=1:L Gmean=Gmean+aveg1(x,y)。 Vmean=Vmean+var1(x,y)。 end end Gmean1=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(x,y)。 end end end G1=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=gtemp11。 gtotle1=gtotle1+aveg1(x,y)。 end if 0var1(x,y)V1 vtemp1=vtemp1+1。 vtotle1=vtotle1+var1(x,y)。 end end end G2=gtotle1/gtemp1。 V2=vtotle1/vtemp1。 e=zeros(H,L)。 for x=1:H for y=1:L if aveg1(x,y)G2 amp。 amp。 var1(x,y)V2 e(x,y)=1。 end if aveg1(x,y) G1100 amp。 amp。 var1(x,y) V2 e(x,y)=1。 end end end for x=2:H1 for y=2:L1 if e(x,y)==1 if e(x1,y) + e(x1,y+1) +e(x,y+1) + e(x+1,y+1) + e(x+1,y) + e(x+1,y1) + e(x,y1) + e(x1,y1) =4 e(x,y)=0。 end end end end 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+(x1)*M,j+(y1)*M)=G1。 Icc(i+(x1)*M,j+(y1)*M)=0。 end end end end end figure, imshow(uint8(I))。 title(39。 分割 39。 )。 得到的图像如图 33: 图 33 经过分割处理后的图像 一般的指纹图像都 会 有比较清晰的方向场,方向场估计得准确性直接决定了图像增强算法的效果。 为估计方向场,我们把指纹脊线的走向分为如下 8 个方向,如下图: 图 34 在一个像素处的 8 个指纹脊线方向 我们先对分割 后的图像进行了平均滤波,然后对图像的每一个像素,为确定在该像素 的脊线方向,在以该像素为中心的 9*9 窗口内,分别计算 8 个方向上的经过处理后的灰度值,即将图 5 中标了 i( i=0,1,… 7 分别代表 8 个方向)的位置的像素灰度值去他们中最大 summax和最小值 summin,若满足 (summax+summin+ 4*I(x,y)) (3*summ/8),则该像素点的脊线方向为 summin,否则为 summax. 确定完方向后就根据该向场对图像进行二值化。 Matlab 程序如下: %二值化 175。 temp=(1/9)*[1 1 1。 1 1 1。 1 1 1]。 %模板系数 均值滤波 Im=double(I)。 In=zeros(m,n)。 for a=2:m1。 for b=2:n1。 In(a,b)=Im(a1,b1)*temp(1,1)+Im(a1,b)*temp(1,2)+Im(a1,b+1)*temp(1,3)+Im(a,b1)*temp(2,1)+Im(a,b)*temp(2,2)+Im(a,b+1)*temp(2,3)+Im(a+1,b1)*temp(3,1)+Im(a+1,b)*temp(3,2)+Im(a+1,b+1)*temp(3,3)。 end end I=In。 Im=zeros(m,n)。 for x=5:m5。 for y=5:n5。 sum1=I(x,y4)+I(x,y2)+I(x,y+2)+I(x,y+4)。 sum2=I(x2,y+4)+I(x1,y+2)+I(x+1,y2)+I(x+2,y4)。 sum3=I(x2,y+2)+I(x4,y+4)+I(x+2,y2)+I(x+4,y4)。 sum4=I(x2,y+1)+I(x4,y+2)+I(x+2,y1)+I(x+4,y2)。 sum5=I。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。