资源简介
这里面读取了kinect2.0的深度和骨骼图,并进行匹配,用右手骨骼控制鼠标移动,并没有点击的动作,留给你们自己开发。
代码片段和文件信息
#include
#include
#include
#include
#pragma comment ( lib “kinect20.lib“ )
# pragma comment(lib“user32.lib“ )
using namespace std;
using namespace cv;
//释放接口需要自己定义
template
inline void SafeRelease(Interface *& pInterfaceToRelease)
{
if (pInterfaceToRelease != NULL){
pInterfaceToRelease->Release();
pInterfaceToRelease = NULL;
}
}
void DrawBone(Mat& SkeletonImage CvPoint pointSet[] const Joint* pJoints int whichone JointType joint0 JointType joint1);
void drawSkeleton(Mat& SkeletonImage CvPoint pointSet[] const Joint* pJoints int whichone);
int main(int argc char **argv[])
{
//OpenCV中开启CPU的硬件指令优化功能函数
setUseOptimized(true);
// Sensor
IKinectSensor* pSensor;
HRESULT hResult = S_OK;
hResult = GetDefaultKinectSensor(&pSensor);
if (FAILED(hResult)){
std::cerr << “Error : GetDefaultKinectSensor“ << std::endl;
return -1;
}
hResult = pSensor->Open();
if (FAILED(hResult)){
std::cerr << “Error : IKinectSensor::Open()“ << std::endl;
return -1;
}
//Source
IDepthframeSource *pDepthrSource;
hResult = pSensor->get_DepthframeSource(&pDepthrSource);
if (FAILED(hResult)){
std::cerr << “Error : IKinectSensor::get_DepthframeSource()“ << std::endl;
}
IBodyframeSource* pBodySource;
hResult = pSensor->get_BodyframeSource(&pBodySource);
if (FAILED(hResult)){
std::cerr << “Error : IKinectSensor::get_BodyframeSource()“ << std::endl;
return -1;
}
// Reader
IDepthframeReader*pDepthReader;
hResult = pDepthrSource->OpenReader(&pDepthReader);
if (FAILED(hResult)){
std::cerr << “Error : IDepthframeReader::OpenReader()“ << std::endl;
return -1;
}
IBodyframeReader* pBodyReader;
hResult = pBodySource->OpenReader(&pBodyReader);
if (FAILED(hResult)){
std::cerr << “Error : IBodyframeSource::OpenReader()“ << std::endl;
return -1;
}
// Description
iframeDescription* pDescription;
hResult = pDepthrSource->get_frameDescription(&pDescription);
if (FAILED(hResult)){
std::cerr << “Error : IDepthframeSource::get_frameDescription()“ << std::endl;
return -1;
}
int width = 0;
int height = 0;
pDescription->get_Width(&width);
pDescription->get_Height(&height);
UINT16 *data = new UINT16[width*height];
cv::Mat bufferMat(height width CV_8UC1);
cv::Mat bodyMat(height / 2 width / 2 CV_8UC4);
cv::namedWindow(“Body“);
// Color Table
cv::Vec3b color[BODY_COUNT];
color[0] = cv::Vec3b(255 0 0);
color[1] = cv::Vec3b(0 255 0);
color[2] = cv::Vec3b(0 0 255);
color[3] = cv::Vec3b(255 255 0);
color[4] = cv::Vec3b(255 0 255);
color[5] = cv::Vec3b(0 255 255);
// Coordinate Mapper
ICoordinateMapper* pCoordinateMapper;
hResult = pSensor->get_CoordinateMapper(&pCoordinateMapper);
if (FAILED(hResult)){
std::cerr << “Error : IKinectSensor::get_CoordinateMapper()“ << std::endl;
return -1;
}
while
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-08-09 09:25 K+CV控制鼠标\
目录 0 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\
文件 42663936 2016-08-09 09:25 K+CV控制鼠标\ConsoleApplication2.sdf
文件 1003 2016-03-31 20:56 K+CV控制鼠标\ConsoleApplication2.sln
文件 27648 2016-08-09 09:25 K+CV控制鼠标\ConsoleApplication2.v12.suo
文件 4691 2016-03-31 21:00 K+CV控制鼠标\ConsoleApplication2\ConsoleApplication2.vcxproj
文件 945 2016-03-31 21:00 K+CV控制鼠标\ConsoleApplication2\ConsoleApplication2.vcxproj.filters
文件 165 2016-08-08 20:15 K+CV控制鼠标\ConsoleApplication2\ConsoleApplication2.vcxproj.user
目录 0 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\
目录 0 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\
文件 6362 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\cl.command.1.tlog
文件 333898 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\CL.read.1.tlog
文件 1688 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\CL.write.1.tlog
文件 178 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\ConsoleApplication2.lastbuildstate
文件 16916 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\li
文件 11884 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\li
文件 1622 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\li
文件 2021 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleApplication2.log
文件 301189 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\open.obj
文件 1633280 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\vc120.idb
文件 1585152 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\Debug\vc120.pdb
文件 11847 2016-08-09 09:24 K+CV控制鼠标\ConsoleApplication2\open.cpp
目录 0 2016-08-08 20:18 K+CV控制鼠标\Debug\
文件 85504 2016-08-09 09:24 K+CV控制鼠标\Debug\ConsoleApplication2.exe
文件 509040 2016-08-09 09:24 K+CV控制鼠标\Debug\ConsoleApplication2.ilk
文件 2075648 2016-08-09 09:24 K+CV控制鼠标\Debug\ConsoleApplication2.pdb
相关资源
- synergy-1.4.12 多台主机共享键盘鼠标,
- qt实现类似QQ伸缩窗口--鼠标事件应用
- 绝地求生罗技LUA编程鼠标宏分享附导
- (解压密码123)ET2019免狗版鼠标直接
- 鼠标加速算法 c 源码
- 鼠标获取OpenGL模型的坐标
- 多功能鼠标键盘连点器
- 启用禁用按钮允许或禁止所有鼠标及
- PS2主板双联双位键盘鼠标插座PCB封装
- Flash圆环鼠标跟随动画附源文件.rar
- 点击鼠标后水波荡漾的flash特效.rar
- 基于S3C2440的USB HOST裸机驱动,支持U盘
- PUBG鼠标宏脚本
- QCustomPlot鼠标跟随显示坐标值
- 基于flashas3做的鼠标跟随旋转
- 罗技鼠标宏编程 API 参考文档.zip
- Kinect2.0PPT翻页
- OpenGL立方体带黑白格格纹理有光照可
- arcgisforjs自定义鼠标样式.zip
- opengl鼠标旋转,键盘缩放和平移
- pyqt5:Qpainter绘制基础图形,鼠标拖动
- 鼠标定时点击器.zip
- 雷蛇 雷云3鼠标绝地求生PU宏文件
- 崩坏三八重樱鼠标指针主题包
- MAC OS X 鼠标指针 非常漂亮
- qt用QCustomPlot实现鼠标实时回调xy轴数
- 手势控制鼠标
- STM32的PS2鼠标程序,亲测可用
- 基于arduino的光电鼠标A3050数据读取
- kinect 鼠标移动及确认
评论
共有 条评论