资源简介
vs2013平台下 KinectV2 显示彩色图像 , 同时将人体骨骼画到对应的彩色图像上
代码片段和文件信息
#include
//#include //opencv头文件
//#include
//#include
#include
#include
#include
#include //Kinect头文件
using namespace std;
using namespace cv;
void draw(Mat & img Joint & r_1 Joint & r_2 ICoordinateMapper * myMapper);
int main(void)
{
IKinectSensor * mySensor = nullptr;
GetDefaultKinectSensor(&mySensor);
mySensor->Open();
IColorframeSource * myColorSource = nullptr;
mySensor->get_ColorframeSource(&myColorSource);
IColorframeReader * myColorReader = nullptr;
myColorSource->OpenReader(&myColorReader);
int colorHeight = 0 colorWidth = 0;
iframeDescription * myDescription = nullptr;
myColorSource->get_frameDescription(&myDescription);
myDescription->get_Height(&colorHeight);
myDescription->get_Width(&colorWidth);
IColorframe * myColorframe = nullptr;
Mat original(colorHeight colorWidth CV_8UC4);
//**********************以上为Colorframe的读取前准备**************************
IBodyframeSource * myBodySource = nullptr;
mySensor->get_BodyframeSource(&myBodySource);
IBodyframeReader * myBodyReader = nullptr;
myBodySource->OpenReader(&myBodyReader);
int myBodyCount = 0;
myBodySource->get_BodyCount(&myBodyCount);
IBodyframe * myBodyframe = nullptr;
ICoordinateMapper * myMapper = nullptr;
mySensor->get_CoordinateMapper(&myMapper);
//**********************以上为Bodyframe以及Mapper的准备***********************
while (1)
{
while (myColorReader->AcquireLatestframe(&myColorframe) != S_OK);
myColorframe->CopyConvertedframeDataToArray(colorHeight * colorWidth * 4 original.data ColorImageFormat_Bgra);
Mat copy = original.clone(); //读取彩色图像并输出到矩阵
while (myBodyReader->AcquireLatestframe(&myBodyframe) != S_OK); //读取身体图像
IBody ** myBodyArr = new IBody *[myBodyCount]; //为存身体数据的数组做准备
for (int i = 0; i < myBodyCount; i++)
myBodyArr[i] = nullptr;
if (myBodyframe->GetAndRefreshBodyData(myBodyCount myBodyArr) == S_OK) //把身体数据输入数组
for (int i = 0; i < myBodyCount; i++)
{
BOOLEAN result = false;
if (myBodyArr[i]->get_IsTracked(&result) == S_OK && result) //先判断是否侦测到
{
Joint myJointArr[JointType_Count];
if (myBodyArr[i]->GetJoints(JointType_Count myJointArr) == S_OK) //如果侦测到就把关节数据输入到数组并画图
{
draw(copy myJointArr[JointType_Head] myJointArr[JointType_Neck] myMapper);
draw(copy myJointArr[JointType_Neck] myJointArr[JointType_SpineShoulder] myMapper);
draw(copy myJointArr[JointType_SpineShoulder] myJointArr[JointType_ShoulderLeft] myMapper);
draw(copy myJointArr[JointType_SpineShoulder] myJointArr[JointType_SpineMid] myMapper);
draw(copy myJointArr[JointType_SpineShoulder] myJointArr[JointType_ShoulderRight] myMapper);
draw(copy myJointArr[JointType_ShoulderLeft
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-29 16:55 bone\
目录 0 2017-11-29 16:50 bone\Debug\
文件 71168 2017-11-29 16:50 bone\Debug\bone.exe
文件 398420 2017-11-29 16:50 bone\Debug\bone.ilk
文件 1986560 2017-11-29 16:50 bone\Debug\bone.pdb
目录 0 2017-08-09 09:22 bone\bone\
目录 0 2017-11-29 16:50 bone\bone\Debug\
文件 2778 2017-11-29 16:50 bone\bone\Debug\bone.log
目录 0 2017-11-29 16:50 bone\bone\Debug\bone.tlog\
文件 37386 2017-11-29 16:50 bone\bone\Debug\bone.tlog\CL.read.1.tlog
文件 440 2017-11-29 16:50 bone\bone\Debug\bone.tlog\CL.write.1.tlog
文件 169 2017-11-29 16:50 bone\bone\Debug\bone.tlog\bone.lastbuildstate
文件 624 2017-11-29 16:50 bone\bone\Debug\bone.tlog\cl.command.1.tlog
文件 2800 2017-11-29 16:50 bone\bone\Debug\bone.tlog\li
文件 6996 2017-11-29 16:50 bone\bone\Debug\bone.tlog\li
文件 424 2017-11-29 16:50 bone\bone\Debug\bone.tlog\li
文件 1059840 2017-11-29 16:50 bone\bone\Debug\vc120.idb
文件 1609728 2017-11-29 16:50 bone\bone\Debug\vc120.pdb
文件 257265 2017-11-29 16:50 bone\bone\Debug\源.obj
文件 4080 2017-08-09 09:12 bone\bone\bone.vcxproj
文件 944 2017-08-09 09:12 bone\bone\bone.vcxproj.filters
文件 5899 2017-08-09 09:22 bone\bone\源.cpp
文件 54067200 2017-11-29 16:55 bone\bone.sdf
文件 958 2017-08-09 08:39 bone\bone.sln
文件 19968 2017-11-29 16:55 bone\bone.v12.suo
评论
共有 条评论