一、简介
模型参考这里。
二、源代码
function varargout = gui1(varargin)
% GUI1 MATLAB code for gui1.fig
% GUI1, by itself, creates a new GUI1 or raises the existing
% singleton*.
%
% H = GUI1 returns the handle to a new GUI1 or the handle to
% the existing singleton*.
%
% GUI1('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in GUI1.M with the given input arguments.
%
% GUI1('Property','Value',...) creates a new GUI1 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before gui1_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to gui1_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help gui1
% Last Modified by GUIDE v2.5 19-May-2018 10:57:01
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @gui1_OpeningFcn, ...
'gui_OutputFcn', @gui1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before gui1 is made visible.
function gui1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to gui1 (see VARARGIN)
% Choose default command line output for gui1
handles.output = hObject;
A=imread('指纹3.jpg');
set(handles.pushbutton1,'CData',A);
B=imread('指纹19.jpg');
set(handles.pushbutton3,'CData',B);
C=imread('指纹18.jpg');
set(handles.pushbutton7,'CData',C);
D=imread('指纹6.jpg');
set(handles.pushbutton4,'CData',D);
E=imread('指纹17.jpg');
set(handles.pushbutton5,'CData',E);
F=imread('指纹5.jpg');
set(handles.pushbutton8,'CData',F);
G=imread('指纹8.jpg');
set(handles.pushbutton9,'CData',G);
% ha=axes('units','normalized','position',[0 0 1 1]);
% uistack(ha,'down')
% II=imread('动态图片2.jpg');%里面的参数可以是你自己的图片,把名字连同格式写进去就可以了
% image(II)
% colormap gray
% set(ha,'handlevisibility','off','visible','off');
guidata(hObject, handles);
% UIWAIT makes gui1 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = gui1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
hfigure2=Fingerprint_gui();
handles.hfigure2=hfigure2;
guidata(hObject,handles);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
function out = thinning2(in);
%thinning process obtain a one pixel wide image skeleton
% use function n_sum and t_sum
[w,h] = size(in);
out = in;
for i= 3:h-2
for j= 3:w-2
if out(i,j) == 1
if 1 < n_sum(i,j,out) & n_sum(i,j,out) < 7
if t_sum(i,j,out) == 2
if or ( and_157(i,j,out) == 0 , t_sum(i,j-1,out) ~= 2 )
if or (and_357(i,j,out) == 0 , t_sum(i+1,j,out) ~=2 )
% if and_157(i,j,out) == 0
% if and_357(i,j,out) == 0
out(i,j) = 0;
else
out(i,j) = 1;
end;
else
out(i,j) = 1;
end;
else
end;
end;
![]()
三、运行结果

![]()
四、参考文献
[1]王崇文, 李见为, 周宏文,等. 指纹识别系统的设计与实现[J]. 计算机应用, 2001(12):63-65.









