• 大小: 12.94MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-19
  • 语言: 其他
  • 标签: kinect2.0  鼠标  

资源简介

这里面读取了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\link.command.1.tlog
     文件       11884  2016-08-09 09:24  K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\link.read.1.tlog
     文件        1622  2016-08-09 09:24  K+CV控制鼠标\ConsoleApplication2\Debug\ConsoleA.E0F74E12.tlog\link.write.1.tlog
     文件        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

评论

共有 条评论