資源簡介
這里面讀取了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“?< return?-1;
}
hResult?=?pSensor->Open();
if?(FAILED(hResult)){
std::cerr?<“Error?:?IKinectSensor::Open()“?< return?-1;
}
//Source??
IDepthframeSource?*pDepthrSource;
hResult?=?pSensor->get_DepthframeSource(&pDepthrSource);
if?(FAILED(hResult)){
std::cerr?<“Error?:?IKinectSensor::get_DepthframeSource()“?< }
IBodyframeSource*?pBodySource;
hResult?=?pSensor->get_BodyframeSource(&pBodySource);
if?(FAILED(hResult)){
std::cerr?<“Error?:?IKinectSensor::get_BodyframeSource()“?< return?-1;
}
//?Reader??
IDepthframeReader*pDepthReader;
hResult?=?pDepthrSource->OpenReader(&pDepthReader);
if?(FAILED(hResult)){
std::cerr?<“Error?:?IDepthframeReader::OpenReader()“?< return?-1;
}
IBodyframeReader*?pBodyReader;
hResult?=?pBodySource->OpenReader(&pBodyReader);
if?(FAILED(hResult)){
std::cerr?<“Error?:?IBodyframeSource::OpenReader()“?< return?-1;
}
//?Description??
iframeDescription*?pDescription;
hResult?=?pDepthrSource->get_frameDescription(&pDescription);
if?(FAILED(hResult)){
std::cerr?<“Error?:?IDepthframeSource::get_frameDescription()“?< 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()“?< 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
評論
共有 條評論