微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 用FPGA实现优化的指纹识别预处理算法

用FPGA实现优化的指纹识别预处理算法

时间:06-05 来源:互联网 点击:


T为该块指纹图像的平均灰度值,Nh、Nl分别为第(k,l)块指纹图像中灰度值≥T和

6 细化

现有的细化算法存在很多问题,如细化不彻底、纹线吞噬、骨架偏离纹线中心等。本设计在对快速细化和改进的OPTA细化算法分析研究后,设计一种改进的细化算法。该算法与传统的细化算法相比不破坏纹线的连接性,不会引起纹线的吞食,保护了纹线的特征。算法的主要思想是:利用快速细化算法速度快的优点对指纹图像进行一次细化。由于细化后的纹线大多不是单像素宽,再利用改进的OPTA细化算法对不是单像素宽的纹线进一步细化。算法的描述:

(1)遍历整个指纹图像,找出纹线的边界点。

(2)判断该边界点是否应该删除。对边界点P定义2个特征变量nsum和tsum:


如果P点同时满足:tsum=2且nsum≠1,nsum6,则可将其删除。

(3)继续寻找下一个边界点,直到没有可删除的点为止。

(4)得到的纹线很多不是单像素宽,从图像的左上角开始扫描,每个像素(图为P)均抽取出图7所示的15个相邻像素,把其中的8个相邻像素(P1~P8)与图9的消除模板比较,如果都不匹配,则P保留。

(5)重复上述过程,直到没有一个像素值被改变为止。

细化算法的硬件设计:细化算法的难点在于快速细化后的图像和模板比较。这次设计的主要思想是把模板图变为数据流,只有用二进制数据流的方式才便于做比较。如图10所示,黑色代表1,白色代表0。以第一行最左边的模板为例,即可变为000 111 010。考虑到FPGA的结构,用并行语句让输入的9位像素数据和模板二进制化数据进行关系运算操作,即可并行地和12个模板比较,大大提高了运算速度。FPGA模板匹配仿真图如图11,细化后的指纹图像如图12。



实验结果表明,用FPGA完全能满足指纹预处理的要求,而且提高了运算速度。FPGA的低功耗特点使其在便携式设备上具有广阔的应用前景。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top