【指纹识别】基于模板匹配实现指纹识别附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电子书和数学建模资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值