【指纹识别】基于模板匹配实现指纹识别附matlab代码

简介: 【指纹识别】基于模板匹配实现指纹识别附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

指纹识别技术是生物识别技术的一种,正因为指纹具备唯一性和不变性等特征使得指纹识别技术已经被广泛的应用于身份鉴证等多种领域。一般而言,一个指纹数字图像识别系统通常由指纹数字图像预处理、特征提取、保存指纹数字图像及指纹数字图像匹配等四部分过程构成。  本文对指纹数字图像识别系统的原理和基本过程进行了较为深入的分析与研究。首先对指纹数字图像的分类、基本特征与识别原理进行了详细的论述。其次,在指纹数字图像预处理部分,本文主要对预处理的各个步骤:数字图像分割、数字图像增强、二值化、图像细化等含义及过程进行了详细的分析,并设计了一种合适的指纹数字图像预处理方案。然后详细的论述了指纹数字图像的特征提取与匹配过程,其中指纹数字图像的特征提取是从细化后的指纹数字图像图中提取出端点和分叉点,即细节特征点,此特征点会包含大量的伪特征,这样会非常耗时并且降低匹配的精度,而采用边缘去伪和距离去伪的方法能使伪特征点减少近1/3,然后再提取可靠特征点信息,从而实现指纹数字图像匹配,本文采用了基于MATLAB实现的指纹数字图像细节特征提取方式。在指纹数字图像匹配部分,本文采用基于细节点的指纹数字图像匹配算法,并进行了深入研究。最后,通过对指纹数字图像识别系统算法的详细研究,本文利用MATLAB工具设计并实现了一个指纹数字图像识别系统,完成了对指纹数字图像的处理、特征提取,保存和匹配等功能,利用编码对指纹数字图像进行入库、匹配等操作,从而完成图像的识别来判断是否同一指纹,其比对结果令人满意。

⛄ 部分代码

%matpower计算当前状态

function [P3_22,Q3_22,P5_6,Q5_6,U3,U5,U17,U11,U27]=powerflow7(Pdec,Qdec,Qab)

Pdec(1:12)=100*Pdec(1:12);

Qdec(1:12)=100*Qdec(1:12);

Qab(1:4)=100*Qab(1:4);

loaddataall = 2.5*[0.000 0.000; 39.380 12.944;-42.638 -14.014; -23.694 -7.788; 0.000 0.000;

   -10.971 -3.606;  -7.495 -2.463; 0.000 0.000; 4.691 1.542; 2.834 0.931; -115.366 -37.919;

   24.788 8.148;   -36.674 -12.054; 1.527 0.502; -54.907 -18.047; 1.403 0.461; -110.765 -36.407;

   -23.541 -7.738; -27.421 -9.013; -9.947 -3.269;5.684 1.868; 11.998 3.943; -39.063 -12.839;

   0.000 0.000 ;-45.226 -14.865 ;-10.363 -3.406 ;-38.147 -12.538 ;0.000 0.000 ;-30.542 -10.039;

   -3.645 -1.198 ;32.915 10.819;]/1000;

 

% MATPOWER

mpc.version = '2';

mpc.baseMVA = 100;

%% branch data

% fbus tbus r x b rateA rateB rateC ratio angle status angmin angmax

mpc.branch = [

1 2  0.3943 0.1855   0.0000014    400 400 400 0 0 1 -360 360;

2 3    0.2149 0.1011  0.0000008   240 240 240 0 0 1 -360 360;  

3 4  0.2266 0.1066  0.0000008   240 240 240 0 0 1 -360 360;  

4 5  0.0829 0.0390  0.0000003   240 240 240 0 0 1 -360 360;  

5 6  0.3979 0.1873  0.0000014   240 240 240 0 0 1 -360 360;  

6 7  0.2949 0.1388  0.0000010   240 240 240 0 0 1 -360 360;  

7 8  0.7579 0.3566  0.0000026   240 240 240 0 0 1 -360 360;  

8 9  0.4316 0.2031  0.0000015   240 240 240 0 0 1 -360 360;  

9  10  0.1295 0.0610  0.0000005   240 240 240 0 0 1 -360 360;  

10 11 0.8302  0.3906   0.0000029   240 240 240 0 0 1 -360 360;

11 12 1.0361  0.4876   0.0000036   240 240 240 0 0 1 -360 360;

12 13 0.9943  0.4679   0.0000035   240 240 240 0 0 1 -360 360;

13 14 1.1375  0.5352   0.000004   240 240 240 0 0 1 -360 360;

2   15  0.2077  0.0881   0.0000013   240 240 240 0 0 1 -360 360;

6   16  1.0317  0.4855   0.0000036   240 240 240 0 0 1 -360 360;

16  17  0.6191  0.2914   0.0000022   240 240 240 0 0 1 -360 360;

17  18  0.7192  0.3385   0.0000025   240 240 240 0 0 1 -360 360;

17  19  0.0843  0.0396   0.0000003   240 240 240 0 0 1 -360 360;

8   20  0.3364  0.1583   0.0000012   240 240 240 0 0 1 -360 360;

20  21  1.4447  0.6211   0.0000061   240 240 240 0 0 1 -360 360;

9   22  0.2203  0.1036   0.0000008   240 240 240 0 0 1 -360 360;  

4 23 0.8302  0.3906   0.0000029   240 240 240 0 0 1 -360 360;

23 24 1.0361  0.4876   0.0000036   240 240 240 0 0 1 -360 360;

24 25 0.9943  0.4679   0.0000035   240 240 240 0 0 1 -360 360;

25 26 1.1375  0.5352   0.000004   240 240 240 0 0 1 -360 360;

26   27  0.2077  0.0881   0.0000013   240 240 240 0 0 1 -360 360;

26   28  1.0317  0.4855   0.0000036   240 240 240 0 0 1 -360 360;

24  29  0.6191  0.2914   0.0000022   240 240 240 0 0 1 -360 360;

25  30  0.7192  0.3385   0.0000025   240 240 240 0 0 1 -360 360;

30  31  0.0843  0.0396   0.0000003   240 240 240 0 0 1 -360 360;

30  32  0.2364  0.1083   0.0000012   240 240 240 0 0 1 -360 360;  

];

%% generator data

% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf

mpc.gen = [

1 0 0 3 -3 1.03 3 1 3 1 0 0 0 0 0 0 0 0 0 0 0;];

%%%%%%%%%%%%%%%%%%%%%%%%%Q-U

a=0;      

%% bus data

% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin

mpc.bus = [

   1 3 0 0 0 0 1 1.03 0 10.5 1 1.1 0.9;

2 1 loaddataall(a+1,1) loaddataall(a+1,2) 0 0 1 1 0 10.5 1 1.1 0.9;

3 1 loaddataall(a+2,1) loaddataall(a+2,2) 0 0 1 1 0 10.5 1 1.1 0.9;

4 1 loaddataall(a+3,1)+Pdec(1) loaddataall(a+3,2)+Qdec(1) 0 0 1 1 0 10.5 1 1.1 0.9;

5 1 loaddataall(a+4,1)+Pdec(2) loaddataall(a+4,2)+Qdec(2) 0 0 1 1 0 10.5 1 1.1 0.9;

6 1 loaddataall(a+5,1) loaddataall(a+5,2) 0 0 1 1 0 10.5 1 1.1 0.9;

7 1 loaddataall(a+6,1) loaddataall(a+6,2) 0 0 1 1 0 10.5 1 1.1 0.9;

8 1 loaddataall(a+7,1) loaddataall(a+7,2)+Qab(1) 0 0 1 1 0 10.5 1 1.1 0.9;

9 1 loaddataall(a+8,1) loaddataall(a+8,2) 0 0 1 1 0 10.5 1 1.1 0.9;

10 1 loaddataall(a+9,1) loaddataall(a+9,2) 0 0 1 1 0 10.5 1 1.1 0.9;

11 1 loaddataall(a+10,1) loaddataall(a+10,2) 0 0 1 1 0 10.5 1 1.1 0.9;

12 1 loaddataall(a+11,1)+Pdec(3) loaddataall(a+11,2)+Qdec(3) 0 0 1 1 0 10.5 1 1.1 0.9;

13 1 loaddataall(a+12,1) loaddataall(a+12,2) 0 0 1 1 0 10.5 1 1.1 0.9;

14 1 loaddataall(a+13,1)+Pdec(4) loaddataall(a+13,2)+Qab(2)+Qdec(4) 0 0 1 1 0 10.5 1 1.1 0.9;

15 1 loaddataall(a+14,1) loaddataall(a+14,2) 0 0 1 1 0 10.5 1 1.1 0.9;

16 1 loaddataall(a+15,1)+Pdec(5) loaddataall(a+15,2)+Qdec(5) 0 0 1 1 0 10.5 1 1.1 0.9;

17 1 loaddataall(a+16,1) loaddataall(a+16,2) 0 0 1 1 0 10.5 1 1.1 0.9;

18 1 loaddataall(a+17,1)+Pdec(6) loaddataall(a+17,2)+Qab(3)+Qdec(6) 0 0 1 1 0 10.5 1 1.1 0.9;

19 1 loaddataall(a+18,1)+Pdec(7) loaddataall(a+18,2)+Qdec(7) 0 0 1 1 0 10.5 1 1.1 0.9;

20 1 loaddataall(a+19,1)+Pdec(8) loaddataall(a+19,2)+Qdec(8) 0 0 1 1 0 10.5 1 1.1 0.9;

21 1 loaddataall(a+20,1) loaddataall(a+20,2) 0 0 1 1 0 10.5 1 1.1 0.9;

22 1 loaddataall(a+21,1) loaddataall(a+21,2) 0 0 1 1 0 10.5 1 1.1 0.9;

23 1 loaddataall(a+22,1) loaddataall(a+22,2) 0 0 1 1 0 10.5 1 1.1 0.9;

24 1 loaddataall(a+23,1)+Pdec(9) loaddataall(a+23,2)+Qdec(9) 0 0 1 1 0 10.5 1 1.1 0.9;

25 1 loaddataall(a+24,1) loaddataall(a+24,2) 0 0 1 1 0 10.5 1 1.1 0.9;

26 1 loaddataall(a+25,1)+Pdec(10) loaddataall(a+25,2)+Qdec(10) 0 0 1 1 0 10.5 1 1.1 0.9;

27 1 loaddataall(a+26,1) loaddataall(a+26,2) 0 0 1 1 0 10.5 1 1.1 0.9;

28 1 loaddataall(a+27,1)+Pdec(11) loaddataall(a+27,2)+Qab(4)+Qdec(11) 0 0 1 1 0 10.5 1 1.1 0.9;

29 1 loaddataall(a+28,1) loaddataall(a+28,2) 0 0 1 1 0 10.5 1 1.1 0.9;

30 1 loaddataall(a+29,1)+Pdec(12) loaddataall(a+29,2)+Qdec(12) 0 0 1 1 0 10.5 1 1.1 0.9;

31 1 loaddataall(a+30,1) loaddataall(a+30,2) 0 0 1 1 0 10.5 1 1.1 0.9;

32 1 loaddataall(a+31,1) loaddataall(a+31,2) 0 0 1 1 0 10.5 1 1.1 0.9;];

  [~,bus,~,branch,~,et]=runpf(mpc);

  %nodeUQ(1:32)=bus(1:32,8);

   U3=bus(4,8)*bus(4,8);

   U5=bus(6,8)*bus(6,8);

   P3_22=branch(22,14)/100;  %单位为100MW

   Q3_22=branch(22,15)/100;

   P5_6=branch(6,14)/100;

   Q5_6=branch(6,15)/100;

   U17=bus(18,8)*bus(18,8);

   U11=bus(12,8)*bus(12,8);

   U27=bus(28,8)*bus(28,8);

⛄ 运行结果

⛄ 参考文献


⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关实践学习
基于函数计算实现AI推理
本场景基于函数计算建立一个TensorFlow Serverless AI推理平台。
相关文章
|
3月前
|
Perl
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
|
20天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
2月前
|
机器学习/深度学习 算法 计算机视觉
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
30 2
|
2月前
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
40 0
|
2月前
|
算法
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
83 0
|
2月前
|
算法
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
43 0
|
2月前
|
算法
MATLAB | 插值算法 | 一维Lagrange插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维Lagrange插值法 | 附数据和出图代码 | 直接上手
25 0
|
3月前
【数值分析】迭代法求方程的根(附matlab代码)
【数值分析】迭代法求方程的根(附matlab代码)
|
3月前
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
|
3月前
【数值分析】二分法求方程的根(附matlab代码)
【数值分析】二分法求方程的根(附matlab代码)

热门文章

最新文章