西南民族大学学报·自然科学版第 34 卷第 4 期 Journal of Southwest University for Nationalities⋅Natural Science Edition Aug. 2008 ___________________________________________________________________ ___________________________ 收稿日期:2008-03-11 作者简介:太艳荣(1983-),女,西南交通大学硕士研究生, 研究方向:指纹识别技术研究. 文章编号: 1003-2843(2008)04-0836-03 基于 MATLAB 实现的指纹图像预处理 太艳荣 ( 西南交通大学, 成都 610031) 摘 要: 指纹图像的质量相对于指纹识别而言非常关键, 但实际操作中获取到的图像往往包含各种噪声, 比如伤疤、汗渍、污迹以及与指纹采集设备的不均匀接触. 在前人的基础上提出了一套基于 Matlab 实现的指纹识别预处理算法. 本文给出了用 Matlab 对每个指纹图像处理功能模块的算法实现、改进方法及处理结果, 主要包括分割、归一化、增强和细化等. 用Matlab实现的这种方法, 既能分步对指纹图像预处理算法进行仿真测试, 又可以很直观地看到图像处理算法的效果, 有效配合了算法的研究. 实验证明, 用 Matlab 实现的算法处理结果比较理想, 满足识别的应用性. 关键词: 指纹识别;预处理;分割;增强;细化 中图分类号:TP391 文献标识码: A 指纹识别已经有 100 多年的历史, 由于指纹具有唯一性、永久性和稳定性使得指纹识别成为最广泛使用的 生物特征识别技术. 近 30 年来, 自动指纹识别技术取得了较大的成功, 但是由于各种噪声仍然存在, 比如伤疤、汗渍、污迹、扭曲等等, 直接影响到指纹识别的效率[1]. 所以, 指纹图像预处理算法仍然是模式识别领域的一个热点. Matlab 既是一种高效、直观的计算机语言, 同时又是一个科学计算平台. 它为数据分析和数据可视化算法、应用程序开发提供了核心的数学和高级图形工具. 作为图像处理的仿真工具, Matlab 提供了功能强大的图像处理函数, 给仿真者提供了很大的便利性[2,3]. 最重要的是它缩短了开发周期. 在指纹预处理仿真过程中, Matlab强大的数学函数和和方便的图像显示功能得到极大的发挥. 本文在前人的基础上提出一套基于 Matlab 实现的指纹图像预处理算法, 并给出了改进的几个模块算法. 本文的算法都是通过 Matlab 仿真而验证的, 以 Matlab 作为指纹识别算法仿真的平台. 1 指纹识别系统的工作原理 指纹识别流程如图 1 所示[4,5]. 采集到的指纹图像包含各种噪声, 所以很有必要去除噪声以实现正确匹配. 通常预处理包括分割、归一化、平滑、方向滤波、二值化和细化, 它的好坏直接影响到指纹识别的效果. 在此基础上, 提取指纹特征信息, 得到输入指纹特征模板, 然后用输入指纹特征模板与已登记的指纹特征模板相比较, 最后显示识别结果. 2 分割 分割是把前景区域和背景区域分离开来. 前景区域是感兴趣部分, 对指纹图像来说, 就是包含脊线和谷线 的清晰区域. 所以分割操作能有效去除噪声, 并使后续操作更加简单. 这也是首先进行分割操作的原因. 本文使用的分割方法基于形态学操作. 具体操作是:首先腐蚀原图得到离散块, 然后利用阈值法[2]得到掩 837太艳荣:基于 MATLAB 实现的指纹图像预处理