openni+nite体感鼠标模拟2
2016-11-16 16:38
197 查看
这一部分主要是关于多线程的问题,因为使用过程中为了保证实时性,使用多线程是必要的,多线程的使用很复杂,但是在这里我们只用最基本的功能,所以还是比较简单的。首先是多线程所使用的函数的定义。
DWORD WINAPI ReadDepthMapThread(LPVOID lpParamter)
{
while (1)
{
g_Context.WaitAndUpdateAll();
g_ImageGenerator.GetMetaData(imageMD);
Mat cvRGBImage(imageMD.FullYRes(),imageMD.FullXRes(),CV_8UC3,(char*) imageMD.Data());
cvtColor(cvRGBImage,cvBGRImage,CV_RGB2BGR);
MouseControl();
imshow("User skeleton",cvBGRImage);
waitKey(30);
}
return true;
}更新数据,并通过opencv进行RGB图像的显示。
主程序中通过如下方式注册多线程
HANDLE hThread_ReadDepthMap=NULL;
hThread_ReadDepthMap=CreateThread(0,0,ReadDepthMapThread,0,0,0);
if (!hThread_ReadDepthMap)
{
printf("thread create failed!");
return;
}
DWORD WINAPI ReadDepthMapThread(LPVOID lpParamter)
{
while (1)
{
g_Context.WaitAndUpdateAll();
g_ImageGenerator.GetMetaData(imageMD);
Mat cvRGBImage(imageMD.FullYRes(),imageMD.FullXRes(),CV_8UC3,(char*) imageMD.Data());
cvtColor(cvRGBImage,cvBGRImage,CV_RGB2BGR);
MouseControl();
imshow("User skeleton",cvBGRImage);
waitKey(30);
}
return true;
}更新数据,并通过opencv进行RGB图像的显示。
主程序中通过如下方式注册多线程
HANDLE hThread_ReadDepthMap=NULL;
hThread_ReadDepthMap=CreateThread(0,0,ReadDepthMapThread,0,0,0);
if (!hThread_ReadDepthMap)
{
printf("thread create failed!");
return;
}
相关文章推荐
- openni+nite体感鼠标模拟5(补充)
- openni+nite体感鼠标模拟3(左右手选择)
- openni+nite体感鼠标模拟
- openni+nite体感鼠标模拟4(鼠标点击模拟)
- OPENNI学习实践-用身体模拟鼠标
- OPENNI学习实践-OPENNI体感开发实战中NITE手势识别样例
- C#鼠标模拟+内存搜索
- C# 模拟鼠标移动与点击
- C#模拟键盘鼠标事件
- VC指定窗口模拟按键或鼠标事件
- SendInput模拟鼠标键盘
- Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现)
- 模拟鼠标移动和左键单击
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- 模拟鼠标键盘操作,含硬件模拟技术。[转]
- stm32模拟鼠标的单击/右击/滑动,给pc上报的数据如下
- Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现)
- 在windows下模拟鼠标键盘输入的几种方法 (附带源代码)
- 使用API模拟鼠标事件
- qtp录制鼠标右键单击事件要通过模拟键盘操作来实现