基于MATLAB GUI手指指尖检测

基于MATLAB GUI手指指尖检测

一、简介

基于matlab GUI手指指尖的图像采集与检测,可以作为手势识别和石头剪刀布的基础课题。

二、源代码

function varargout = hands(varargin)

% HANDS MATLAB code for hands.fig

%      HANDS, by itself, creates a new HANDS or raises the existing

%      singleton*.

%

%      H = HANDS returns the handle to a new HANDS or the handle to

%      the existing singleton*.

%

%      HANDS('CALLBACK',hObject,eventData,handles,...) calls the local

%      function named CALLBACK in HANDS.M with the given input arguments.

%

%      HANDS('Property','Value',...) creates a new HANDS or raises the

%      existing singleton*.  Starting from the left, property value pairs are

%      applied to the GUI before hands_OpeningFcn gets called.  An

%      unrecognized property name or invalid value makes property application

%      stop.  All inputs are passed to hands_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 hands



% Last Modified by GUIDE v2.5 07-Jul-2019 22:20:32



% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name',       mfilename, ...

                   'gui_Singleton',  gui_Singleton, ...

                   'gui_OpeningFcn', @hands_OpeningFcn, ...

                   'gui_OutputFcn',  @hands_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 hands is made visible.

function hands_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 hands (see VARARGIN)



% Choose default command line output for hands

handles.output = hObject;



% Update handles structure

guidata(hObject, handles);



% UIWAIT makes hands wait for user response (see UIRESUME)

% uiwait(handles.figure1);





% --- Outputs from this function are returned to the command line.

function varargout = hands_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)

global obj

obj = videoinput('winvideo',1,'MJPG_640x480');

vidRes = get(obj,'VideoResolution');

nBands = get(obj,'NumberOfBands');

axes(handles.axes1);

global hImage

hImage = image(zeros(vidRes(2),vidRes(1),nBands));

preview(obj,hImage);





% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject    handle to pushbutton2 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

global obj

stoppreview(obj)



% --- 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)

global InputImg

[filename,pathname] = uigetfile({'*.bmp','BMP files';'*.jpg','JPG files'},'选择格式');

if isequal(filename,0) || isequal(pathname,0)

    return

else

    fpath = fullfile(pathname,filename);

end

InputImg = imread(fpath);

axes(handles.axes1);

imshow(InputImg);





% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles)

% hObject    handle to pushbutton4 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

global InputImg

global BinaryImg

global OutlineImg

[BinaryImg,OutlineImg] = ColorofSkinDection(InputImg);

axes(handles.axes1);

imshow(OutlineImg);



% --- Executes on button press in pushbutton5.

function pushbutton5_Callback(hObject, eventdata, handles)

% hObject    handle to pushbutton5 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

global obj;

frame = getsnapshot(obj);

[filename,pathname] = uiputfile({'*.bmp','BMP files';'*.jpg','JPG files'},'选择格式');

if isequal(filename,0) || isequal(pathname,0)

    return

else

    fpath = fullfile(pathname,filename);

end

imwrite(frame,fpath);



% --- Executes on button press in pushbutton7.

function pushbutton7_Callback(hObject, eventdata, handles)

% hObject    handle to pushbutton7 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

%退出

h = questdlg('您确定要退出识别系统吗?','退出提示','Yes','No','No');

if h=='Yes'

    close(gcf);

end



% --- Executes when figure1 is resized.

function figure1_SizeChangedFcn(hObject, eventdata, handles)

% hObject    handle to figure1 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)





% --- If Enable == 'on', executes on mouse press in 5 pixel border.

% --- Otherwise, executes on mouse press in 5 pixel border or over pushbutton1.

function pushbutton1_ButtonDownFcn(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)





% --- Executes on button press in pushbutton8.

function pushbutton8_Callback(hObject, eventdata, handles)

% hObject    handle to pushbutton8 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

global OutlineImg

global InputImg

[Res,OutImg] = finger(InputImg,OutlineImg);

axes(handles.axes1);

imshow(OutImg);





% --- Executes on key press with focus on pushbutton5 and none of its controls.

function pushbutton5_KeyPressFcn(hObject, eventdata, handles)

% hObject    handle to pushbutton5 (see GCBO)

% eventdata  structure with the following fields (see MATLAB.UI.CONTROL.UICONTROL)

% Key: name of the key that was pressed, in lower case

% Character: character interpretation of the key(s) that was pressed

% Modifier: name(s) of the modifier key(s) (i.e., control, shift) pressed

% handles    structure with handles and user data (see GUIDATA)

global InputImg

if double(get(gcf,'CurrentCharacter'))==32   %如果按下的是空格(32)  

    [filename,pathname] = uigetfile({'*.bmp','BMP files';'*.jpg','JPG files'},'选择格式');

    if isequal(filename,0) || isequal(pathname,0)

        return

    else

        fpath = fullfile(pathname,filename);

    end

    InputImg = imread(fpath);

    axes(handles.axes1);

    imshow(InputImg);

end

三、运行结果

基于MATLAB GUI手指指尖检测

 

上一篇:【脑电信号】基于matlab小波变换+样本熵的癫痫脑电信号特征提取【含Matlab源码 1154期】


下一篇:【脑电信号】基于matlab小波变换+样本熵的癫痫脑电信号特征提取【含Matlab源码 1154期】