77范文网 - 专业文章范例文档资料分享平台

Matlab指纹识别(2)

来源:网络收集 时间:2019-03-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

指纹识别研究

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 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+(x-1)*M,j+(y-1)*M)=G1; Icc(i+(x-1)*M,j+(y-1)*M)=0; end end end end end

figure, imshow(uint8(I));title('分割');

得到的图像如图4:

图4经过分割处理后的图像

6

指纹识别研究

2.3图像二值化

一般的指纹图像都有比较清晰的方向场,方向场估计得准确性直接决定了图像增强算法的效果。

为估计方向场,我们把指纹脊线的走向分为如下8个方向,如下图:

图5 在一个像素处的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程序如下:

%二值化ˉ

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); end end I=In;

Im=zeros(m,n); for x=5:m-5; for y=5:n-5;

sum1=I(x,y-4)+I(x,y-2)+I(x,y+2)+I(x,y+4);

sum2=I(x-2,y+4)+I(x-1,y+2)+I(x+1,y-2)+I(x+2,y-4); sum3=I(x-2,y+2)+I(x-4,y+4)+I(x+2,y-2)+I(x+4,y-4); sum4=I(x-2,y+1)+I(x-4,y+2)+I(x+2,y-1)+I(x+4,y-2);

7

指纹识别研究

sum5=I(x-2,y)+I(x-4,y)+I(x+2,y)+I(x+4,y);

sum6=I(x-4,y-2)+I(x-2,y-1)+I(x+2,y+1)+I(x+4,y+2); sum7=I(x-4,y-4)+I(x-2,y-2)+I(x+2,y+2)+I(x+4,y+4); sum8=I(x-2,y-4)+I(x-1,y-2)+I(x+1,y+2)+I(x+2,y+4); sumi=[sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8]; summax=max(sumi); summin=min(sumi); summ=sum(sumi); b=summ/8;

if (summax+summin+ 4*I(x,y))> (3*summ/8) sumf = summin; else

sumf = summax; end

if sumf > b Im(x,y)=128; else

Im(x,y)=255; end end end

for i=1:m for j =1:n

Icc(i,j)=Icc(i,j)*Im(i,j); end end for i=1:m for j =1:n

if (Icc(i,j)==128) Icc(i,j)=0; else

Icc(i,j)=1; end; end end

figure,imshow(double(Icc));title('二值化');

得到的二值化图像如图6:

8

指纹识别研究

图6二值化后的图像

2.4图像增强

在当前的指纹采集条件下,不可避免的会受到环境,皮肤上的油脂、水分、污渍的影响,使采集到的指纹图像出现纹线粘连、纹线断裂等缺陷,对后续的指纹特征提取带来很大困难。所以我们必须对指纹图像进行图像增强处理,例如分离粘连的纹线,连接断裂的纹线,平滑纹线的边缘等,以保证指纹特征提取的可靠性。

实验中进行了初步去除空洞和毛刺的处理,程序如下:

u=Icc;

[m,n]=size(u) %去除空洞和毛刺 for x=2:m-1 for y=2:n-1 if u(x,y)==0

if u(x,y-1)+u(x-1,y)+u(x,y+1)+u(x+1,y)>=3 u(x,y)=1; end

else u(x,y)=u(x,y); end end end

figure,imshow(u) %title('去除毛刺') for a=2:m-1 for b=2:n-1 if u(a,b)==1 if

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))+abs(u(a,b-1)-u(a+1,b-1))+abs(u(a+1,b-1

9

指纹识别研究

)-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+1))==0 %去除空洞和毛刺

u(a,b)=0; end end end end end

figure,imshow(u) %title('去除空洞')

得到的去除毛刺后的图像和再去除空洞后的图像分别如图7和图8:

图7去除毛刺后的图像

图8去除空洞后的图像

2.5图像细化

二值化后的纹线仍然具有一定的宽度,因为指纹识别只与纹线的走向有关,所以需要对二值图像进行细化,以减少冗余信息,突出纹线的有效特征,便于后续的特征提取。

程序如下:

v=~u;

se=strel('square',3); fo=imopen(v,se);

v=imclose(fo,se); %对图像进行开操作和闭操作 w=bwmorph(v,'thin',Inf);%对图像进行细化

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Matlab指纹识别(2)在线全文阅读。

Matlab指纹识别(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/540439.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: