基于Opencv凸包检测的手势识别,使用训练好的XML文件,可以识别0,1,2,3,4,5,6,8等手势。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 35840 2018-01-27 17:35 gestureDistinguish.vsgestureDistinguishv14.suo
文件 7388 2018-01-22 17:06 gestureDistinguishgestureDistinguishgestureDistinguish.vcxproj
文件 945 2018-01-22 17:06 gestureDistinguishgestureDistinguishgestureDistinguish.vcxproj.filters
文件 9281 2018-01-27 16:55 gestureDistinguishgestureDistinguishmain.cpp
文件 764 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlogCL.command.1.tlog
文件 51790 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlogCL.read.1.tlog
文件 784 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlogCL.write.1.tlog
文件 178 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tloggestureDistinguish.lastbuildstate
文件 9254 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tloggestureDistinguish.write.1u.tlog
文件 1660 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tloglink.command.1.tlog
文件 3398 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tloglink.read.1.tlog
文件 770 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tloglink.write.1.tlog
文件 3830 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureDistinguish.log
文件 809255 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64Debugmain.obj
文件 1674240 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64Debugvc140.idb
文件 2387968 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64Debugvc140.pdb
文件 49479680 2018-01-27 17:35 gestureDistinguishgestureDistinguish.sdf
文件 1336 2018-01-23 19:54 gestureDistinguishgestureDistinguish.sln
文件 184832 2018-01-23 21:12 gestureDistinguishx64DebuggestureDistinguish.exe
文件 853 2018-01-23 20:57 gestureDistinguishx64DebuggestureDistinguish.exp
文件 1350236 2018-01-23 21:12 gestureDistinguishx64DebuggestureDistinguish.ilk
文件 2120 2018-01-23 20:57 gestureDistinguishx64DebuggestureDistinguish.lib
文件 3772416 2018-01-23 21:12 gestureDistinguishx64DebuggestureDistinguish.pdb
目录 0 2018-01-27 19:43 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlog
目录 0 2018-01-27 19:43 gestureDistinguish.vsgestureDistinguishv14
目录 0 2018-01-27 19:43 gestureDistinguishgestureDistinguishx64Debug
目录 0 2018-01-27 19:43 gestureDistinguish.vsgestureDistinguish
目录 0 2018-01-27 19:43 gestureDistinguishgestureDistinguishx64
目录 0 2018-01-27 19:43 gestureDistinguishx64Debug
...D.H. 0 2018-01-27 19:43 gestureDistinguish.vs
............此处省略6个文件信息
#include “math.h“
#include
#include
#include
#include
#include
#include
#include
//多线程
#include
using namespace cv;
using namespace std;
DWORD WINAPI myThread(char* _addr);
float ComputeAngle(float float float float);
int fingerSignal[10][2] = { 0 };
int centerToUnity[2] = { 0 };
int fingerNum = 0;
int gesture = -1;
//获取手势信息,在unity的c#脚本中被调用
extern “C“ _declspec(dllexport) void _stdcall GetGesture(int _signal[10][2] int _centerToUnity[2] int &_fingerNum int &_gesture)
{
_fingerNum = fingerNum;
for (int i = 0; i < 10; i++)
{
_signal[i][0] = 0;
_signal[i][1] = 0;
}
for (int i = 0; i < _fingerNum; i++)
{
_signal[i][0] = fingerSignal[i][0];
_signal[i][1] = fingerSignal[i][1];
}
_centerToUnity[0] = centerToUnity[0];
_centerToUnity[1] = centerToUnity[1];
_gesture = gesture;
}
//开启一个线程
extern “C“ _declspec(dllexport) void _stdcall StartDevice(char* addr)
{
HANDLE myHandle = CreateThread(NULL 0 (LPTHREAD_START_ROUTINE)myThread addr 0 NULL);//创建线程
}
//手势识别主要线程函数
DWORD WINAPI myThread(char* addr)
{
int delay = 1;
char c;
int frameNum = -1; // frame counter
VideoCapture captRefrnc(0);
captRefrnc.set(CV_CAP_PROP_frame_WIDTH 640);
captRefrnc.set(CV_CAP_PROP_frame_HEIGHT 480);
if (!captRefrnc.isOpened())
{
return -1;
cout << “Opening camera failed!“;
}
Size refS = Size((int)captRefrnc.get(CV_CAP_PROP_frame_WIDTH)
(int)captRefrnc.get(CV_CAP_PROP_frame_HEIGHT));
bool bHandFlag = false;
const char* WIN_SRC = “Source“;
const char* WIN_RESULT = “Result“;
namedWindow(WIN_SRC CV_WINDOW_AUTOSIZE);
namedWindow(WIN_RESULT CV_WINDOW_AUTOSIZE);
Mat frame; // 读取视频帧序列
Mat gray; //灰度图像
Mat segmented; //二值化阈值分割
Mat frameHSV; // hsv空间
Mat mask(frame.rows frame.cols CV_8UC1); // 2值掩膜
Mat dst(frame); // 输出图像
vector< vector > contours; // 存储轮廓信息
vector< vector > f
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 35840 2018-01-27 17:35 gestureDistinguish.vsgestureDistinguishv14.suo
文件 7388 2018-01-22 17:06 gestureDistinguishgestureDistinguishgestureDistinguish.vcxproj
文件 945 2018-01-22 17:06 gestureDistinguishgestureDistinguishgestureDistinguish.vcxproj.filters
文件 9281 2018-01-27 16:55 gestureDistinguishgestureDistinguishmain.cpp
文件 764 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlogCL.command.1.tlog
文件 51790 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlogCL.read.1.tlog
文件 784 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlogCL.write.1.tlog
文件 178 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tloggestureDistinguish.lastbuildstate
文件 9254 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tloggestureDistinguish.write.1u.tlog
文件 1660 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlogli
文件 3398 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlogli
文件 770 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlogli
文件 3830 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64DebuggestureDistinguish.log
文件 809255 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64Debugmain.obj
文件 1674240 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64Debugvc140.idb
文件 2387968 2018-01-23 21:12 gestureDistinguishgestureDistinguishx64Debugvc140.pdb
文件 49479680 2018-01-27 17:35 gestureDistinguishgestureDistinguish.sdf
文件 1336 2018-01-23 19:54 gestureDistinguishgestureDistinguish.sln
文件 184832 2018-01-23 21:12 gestureDistinguishx64DebuggestureDistinguish.exe
文件 853 2018-01-23 20:57 gestureDistinguishx64DebuggestureDistinguish.exp
文件 1350236 2018-01-23 21:12 gestureDistinguishx64DebuggestureDistinguish.ilk
文件 2120 2018-01-23 20:57 gestureDistinguishx64DebuggestureDistinguish.lib
文件 3772416 2018-01-23 21:12 gestureDistinguishx64DebuggestureDistinguish.pdb
目录 0 2018-01-27 19:43 gestureDistinguishgestureDistinguishx64DebuggestureD.7CD43DD9.tlog
目录 0 2018-01-27 19:43 gestureDistinguish.vsgestureDistinguishv14
目录 0 2018-01-27 19:43 gestureDistinguishgestureDistinguishx64Debug
目录 0 2018-01-27 19:43 gestureDistinguish.vsgestureDistinguish
目录 0 2018-01-27 19:43 gestureDistinguishgestureDistinguishx64
目录 0 2018-01-27 19:43 gestureDistinguishx64Debug
...D.H. 0 2018-01-27 19:43 gestureDistinguish.vs
............此处省略6个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)