用FPGA实现优化的指纹识别预处理算法
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的低功耗特点使其在便携式设备上具有广阔的应用前景。
- 基于DSP CCS 2.2实现指纹识别预处理系统(07-28)
- 基于FPS200传感器和DSP的指纹识别系统(01-12)
- 基于嵌入式Linux平台的指纹门禁系统(01-20)
- 基于DSP CCS2.2实现指纹识别预处理系统设计(06-10)
- 基于DSP CCS2.2实现指纹识别预处理系统设计方案(06-17)
- 基于DSP的指纹识别系统设计方案(07-03)