• 大小: 11.48MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-20
  • 语言: 其他
  • 标签: opencv  手势识别  

资源简介

基于Opencv凸包检测的手势识别,使用训练好的XML文件,可以识别0,1,2,3,4,5,6,8等手势。

资源截图

代码片段和文件信息

#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\.vs\gestureDistinguish\v14\.suo

     文件       7388  2018-01-22 17:06  gestureDistinguish\gestureDistinguish\gestureDistinguish.vcxproj

     文件        945  2018-01-22 17:06  gestureDistinguish\gestureDistinguish\gestureDistinguish.vcxproj.filters

     文件       9281  2018-01-27 16:55  gestureDistinguish\gestureDistinguish\main.cpp

     文件        764  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\gestureD.7CD43DD9.tlog\CL.command.1.tlog

     文件      51790  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\gestureD.7CD43DD9.tlog\CL.read.1.tlog

     文件        784  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\gestureD.7CD43DD9.tlog\CL.write.1.tlog

     文件        178  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\gestureD.7CD43DD9.tlog\gestureDistinguish.lastbuildstate

     文件       9254  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\gestureD.7CD43DD9.tlog\gestureDistinguish.write.1u.tlog

     文件       1660  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\gestureD.7CD43DD9.tlog\link.command.1.tlog

     文件       3398  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\gestureD.7CD43DD9.tlog\link.read.1.tlog

     文件        770  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\gestureD.7CD43DD9.tlog\link.write.1.tlog

     文件       3830  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\gestureDistinguish.log

     文件     809255  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\main.obj

     文件    1674240  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\vc140.idb

     文件    2387968  2018-01-23 21:12  gestureDistinguish\gestureDistinguish\x64\Debug\vc140.pdb

     文件   49479680  2018-01-27 17:35  gestureDistinguish\gestureDistinguish.sdf

     文件       1336  2018-01-23 19:54  gestureDistinguish\gestureDistinguish.sln

     文件     184832  2018-01-23 21:12  gestureDistinguish\x64\Debug\gestureDistinguish.exe

     文件        853  2018-01-23 20:57  gestureDistinguish\x64\Debug\gestureDistinguish.exp

     文件    1350236  2018-01-23 21:12  gestureDistinguish\x64\Debug\gestureDistinguish.ilk

     文件       2120  2018-01-23 20:57  gestureDistinguish\x64\Debug\gestureDistinguish.lib

     文件    3772416  2018-01-23 21:12  gestureDistinguish\x64\Debug\gestureDistinguish.pdb

     目录          0  2018-01-27 19:43  gestureDistinguish\gestureDistinguish\x64\Debug\gestureD.7CD43DD9.tlog

     目录          0  2018-01-27 19:43  gestureDistinguish\.vs\gestureDistinguish\v14

     目录          0  2018-01-27 19:43  gestureDistinguish\gestureDistinguish\x64\Debug

     目录          0  2018-01-27 19:43  gestureDistinguish\.vs\gestureDistinguish

     目录          0  2018-01-27 19:43  gestureDistinguish\gestureDistinguish\x64

     目录          0  2018-01-27 19:43  gestureDistinguish\x64\Debug

    ...D.H.         0  2018-01-27 19:43  gestureDistinguish\.vs

............此处省略6个文件信息

评论

共有 条评论