✅作者简介:热爱科研的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);
⛄ 运行结果