返回

【图像识别-指纹识别】指纹特征提取附matlab代码

发布时间:2022-09-15 06:38:12 416
# vim# 研究# 信息

1 内容介绍

一 指纹增强

采用Lin Hong等人提出的基于Gabor滤波的方法进行指纹增强,可分为以下步骤:

标准化:标准化是把图像的平均灰度和方差调整到预定的级别上,以减少脊线上的灰度差异,方便后续处理。

方向估计:将图像分成的不相交块,对每一块求块内脊线的主方向。如对tr2.BMP求方向图:

【图像识别-指纹识别】指纹特征提取附matlab代码_模版【图像识别-指纹识别】指纹特征提取附matlab代码_像素点_02

图1 左侧为原图 右侧围方向图

用MATLAB函数blkproc对图像分块时还将求出图像的掩模,后期求特征点时可用于除去边界的端点。

【图像识别-指纹识别】指纹特征提取附matlab代码_模版_03

图2 图像掩模

频率估算:利用标准化的图像和方向图求每个分块脊线的频率。

分割:将图像分为可恢复区域和不可恢复区域。

滤波:利用由脊线主方向和脊线区域组成的关联信息,用Gabor滤波器来增强脊线结构。

滤波并二值化后的指纹图像见图3。【图像识别-指纹识别】指纹特征提取附matlab代码_模版_04

图3 增强后的指纹图像

二 细化

细化的基本原则是模版法,只有符合图4的模版时才将中心点去除。

【图像识别-指纹识别】指纹特征提取附matlab代码_模版_05

图4 细化模版

​为了达到更好的效果,采用了MATLAB函数bwmorph,细化后的指纹图像见图5【图像识别-指纹识别】指纹特征提取附matlab代码_像素点_06

图5 细化后的指纹图像

三 抽取特征点

为了加快速度,在细化后的图像中,对每个像素点求八领域的像素和n,如果n=7,说明该像素点是端点,如果n=5,说明该像素点是分叉点。

​为了除去指纹边缘的端点(伪特征点),需要用到图2的掩模,对该掩模做腐蚀处理,见图6【图像识别-指纹识别】指纹特征提取附matlab代码_模版_07

图6 腐蚀后的掩模

如果得到的端点位于黑色区域就认为是伪端点。

为了除去指纹内部的伪特征点,求两个特征点之间的距离,如果距离小于一个阈值(例如10),则将两个伪特征点都删除。最后抽取出的特征点见图7,其中红色叉号表示分叉点,蓝色空心圆表示端点。

【图像识别-指纹识别】指纹特征提取附matlab代码_模版_08

图7 抽取出的特征点

2 部分代码

% RIDGESEGMENT - Normalises fingerprint image and segments ridge region




function [normim, mask, maskind] = ridgesegment(im, blksze, thresh)

    

    im = normalise(im,0,1);  % normalise to have zero mean, unit std dev

    

    fun = inline('std(x(:))*ones(size(x))');

    

    stddevim = blkproc(im, [blksze blksze], fun);

    

    mask = stddevim > thresh;

    maskind = find(mask);

    

    % Renormalise image so that the *ridge regions* have zero mean, unit

    % standard deviation.

    im = im - mean(im(maskind));

    normim = im/std(im(maskind));    

3 运行结果

【图像识别-指纹识别】指纹特征提取附matlab代码_像素点_09

4 参考文献

[1]李金铎. 基于图像处理的指纹识别算法研究[D]. 哈尔滨工程大学, 2016.

部分理论引用网络文献,若有侵权联系博主删除。


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线