function varargout = main(varargin)
% MAIN MATLAB code for main.fig
% MAIN, by itself, creates a new MAIN or raises the existing
% singleton*.
%
% H = MAIN returns the handle to a new MAIN or the handle to
% the existing singleton*.
%
% MAIN('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in MAIN.M with the given input arguments.
%
% MAIN('Property','Value',...) creates a new MAIN or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before main_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to main_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 main
% Last Modified by GUIDE v2.5 19-Jan-2022 23:28:04
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @main_OpeningFcn, ...
'gui_OutputFcn', @main_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 main is made visible.
function main_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 main (see VARARGIN)
% Choose default command line output for main
handles.output = hObject;
set(gcf,'name','基于BP神经网络与HU方法的特征手势识别系统');
% Choose default command line output for main
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes main wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = main_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)
%此函数用于打开图像
[file,path]=uigetfile({'*.*';'*.bmp';'*.jpg';'*.tif';'*.jpg'},'选择图像');%返回文件名,文件路径
if isequal(file,0)||isequal(path,0)
errordlg('请选择图片','提示');%程序没有选择图像则报错提示
return;
else
im_path=[path,file];%合成路径+文件名
sourceimage=imread(im_path);%根据路径读取图像
set(handles.axes1,'HandleVisibility','ON');%设置显示的坐标轴
axes(handles.axes1);%%在坐标轴1进行显示
imshow(sourceimage);%在坐标axes1显示原图像
title('原始手势图像');
end
% --- 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)
% --- 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 edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- 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)
load('net.mat');%数据初始化,加载训练文件
load('class_name.mat');%数据初始化,加载识别结果名称组
regc = '';
Image{1}=getimage(handles.axes1);%图像存入数组
im =Image{1};%索引数组
[fetuer_arr,hsv,filtimage,map,A1,A2,map1,rect] =Shape(im,0);%手势特征提取
fetuer_arr = fetuer_arr';%转置
fetuer_arr(1,:) =(fetuer_arr(1,:)-1)/(4-1);%%特征归一化
fetuer_arr(2,:) =(fetuer_arr(2,:)-10)/(100-10);%%特征归一化
fetuer_arr(3,:) =(fetuer_arr(3,:)-1)/(4-1);%%特征归一化
[result] = net(fetuer_arr);%神经网络识别
[va,ind] = max(result);%查看相似度最大的值
str= class_name{ind};%读取识别结果
set(handles.edit1,'string',str)%设置显示结果
%%%图像显示
axes(handles.axes4);imshow(hsv);title('hsv空间图像');
axes(handles.axes9);imshow(filtimage);title('中值滤波去噪图像');
axes(handles.axes5);imshow(map);title('二值化图像');
axes(handles.axes6);imshow(A1);title('腐蚀图像');
axes(handles.axes7);imshow(A2);title('膨胀图像');
axes(handles.axes8);imshow(map1);title('孔洞填充图像');
axes(handles.axes1);imshow(im);title('手势图像标记');
rectangle('Position',rect,'EdgeColor','r');%对连通域进行标记
% --- 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)
axes(handles.axes1);%清空图像
cla reset
axes(handles.axes4);%清空图像
cla reset
axes(handles.axes5);%清空图像
cla reset
axes(handles.axes6);%清空图像
cla reset
axes(handles.axes7);%清空图像
cla reset
axes(handles.axes8);%清空图像
cla reset
axes(handles.axes9);%清空图像
cla reset
set(handles.edit1,'string','');%清空结果
% --- Executes during object creation, after setting all properties.
function figure1_CreateFcn(hObject, eventdata, handles)
% hObject handle to figure1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% --- 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)
%%%视频分解程序
%%%%读取视频函数
[filename,pathname]=uigetfile({'*.*'},'选择视频');
name = [pathname,filename];%视频路径
obj = VideoReader(name); %读取视频文件
numFrames = obj.NumberOfFrames; %视频总的帧数,本视频总帧数1675帧
endframe = numFrames;%结束帧,可自行调整
for i = 1 : endframe
frame
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
通过 MATLAB 软件开发出了相关的图像处理系统,系统能够将视频分解成一帧帧图像,并读取图像进行识别手势并识别训练模型对手势定义的数字。系统除了可以将视频分解成帧图像进行识别,也可以直接输入图像进行处理和识别。识别手势0~9并输识别结果。 基于图像处理算法,针对手势进行图像识别、图片处理、视频帧数分解的手势识别系统的设计与开发。对于图像处理中,对图像预处理部分通过色彩空间换算的方式将手势图像转换成HSV空间,再通过中值滤波的方式进行图像去噪处理。手势分割部分采用灰度阈值法对需要处理的图像进行分割,通过形态学的方法进行处理操作,从而达到对手势图像的处理,即对图像进行分割细化。本次设计的手势识别系统是基于HU不变矩阵的特性以及图像的几个特征来对手势进行识别,使用了BP神经网络的训练模型来对手势含义进行定义。系统搭建方面本文利用Matlab的GUI开发功能,搭建了手势识别系统。经过大量的测试表明,系统稳定且手势的识别效率及准确率较高,具有一定的实用性。源码在压缩包文件,解压即可运行。
资源推荐
资源详情
资源评论
收起资源包目录
基于MAtlab的手势识别系统,采用BP和hu方法进行手势识别 实现视频流视频与图像识别两种方法 (267个子文件)
1 (5).avi 949KB
1 (2).avi 844KB
1 (1).avi 690KB
1 (4).avi 606KB
1 (6).avi 605KB
1 (7).avi 599KB
1 (3).avi 531KB
main.fig 91KB
22.jpg 19KB
7 (1).jpg 19KB
21.jpg 19KB
16.jpg 19KB
7 (3).jpg 19KB
19.jpg 19KB
25.jpg 18KB
32.jpg 18KB
26.jpg 18KB
18.jpg 18KB
31.jpg 18KB
33.jpg 18KB
6 (2).jpg 18KB
13.jpg 18KB
30.jpg 18KB
14.jpg 18KB
7 (2).jpg 18KB
20.jpg 18KB
15.jpg 18KB
34.jpg 18KB
6 (3).jpg 18KB
28.jpg 17KB
27.jpg 17KB
6 (1).jpg 17KB
17.jpg 17KB
29.jpg 17KB
2 (4).jpg 16KB
2 (3).jpg 16KB
2 (1).jpg 16KB
2 (5).jpg 16KB
2 (2).jpg 15KB
1 (2).jpg 15KB
2 (7).jpg 15KB
2 (8).jpg 15KB
2 (6).jpg 15KB
19.jpg 10KB
25.jpg 9KB
24.jpg 9KB
26.jpg 9KB
23.jpg 9KB
22.jpg 9KB
20 (3).jpg 9KB
3 (3).jpg 9KB
21.jpg 9KB
29.jpg 9KB
20.jpg 9KB
24.jpg 9KB
35.jpg 9KB
20.jpg 9KB
28.jpg 9KB
23.jpg 9KB
30.jpg 9KB
34.jpg 9KB
33.jpg 9KB
4 (3).jpg 9KB
25.jpg 9KB
8 (9).jpg 8KB
32.jpg 8KB
5 (1).jpg 8KB
33.jpg 8KB
34.jpg 8KB
5 (2).jpg 8KB
2 (5).jpg 8KB
26.jpg 8KB
5 (3).jpg 8KB
29.jpg 8KB
31.jpg 8KB
27.jpg 8KB
32.jpg 8KB
2 (4).jpg 8KB
2 (3).jpg 8KB
8 (8).jpg 8KB
30.jpg 8KB
8 (7).jpg 8KB
2 (1).jpg 8KB
31.jpg 8KB
12.jpg 8KB
8 (5).jpg 8KB
41.jpg 8KB
8 (6).jpg 8KB
8 (4).jpg 8KB
8 (1).jpg 8KB
2 (2).jpg 8KB
8 (2).jpg 8KB
19.jpg 8KB
8 (1).jpg 8KB
8 (3).jpg 8KB
44.jpg 8KB
9 (1).jpg 8KB
45.jpg 8KB
9 (4).jpg 8KB
31.jpg 8KB
共 267 条
- 1
- 2
- 3
资源评论
Abelon
- 粉丝: 208
- 资源: 38
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功