KinectV2 彩色图像上融合人体骨骼图
vs2013平台下 KinectV2 显示彩色图像 , 同时将人体骨骼画到对应的彩色图像上
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-29 16:55 bone
目录 0 2017-11-29 16:50 boneDebug
文件 71168 2017-11-29 16:50 boneDebugone.exe
文件 398420 2017-11-29 16:50 boneDebugone.ilk
文件 1986560 2017-11-29 16:50 boneDebugone.pdb
目录 0 2017-08-09 09:22 boneone
目录 0 2017-11-29 16:50 boneoneDebug
文件 2778 2017-11-29 16:50 boneoneDebugone.log
目录 0 2017-11-29 16:50 boneoneDebugone.tlog
文件 37386 2017-11-29 16:50 boneoneDebugone.tlogCL.read.1.tlog
文件 440 2017-11-29 16:50 boneoneDebugone.tlogCL.write.1.tlog
文件 169 2017-11-29 16:50 boneoneDebugone.tlogone.lastbuildstate
文件 624 2017-11-29 16:50 boneoneDebugone.tlogcl.command.1.tlog
文件 2800 2017-11-29 16:50 boneoneDebugone.tloglink.command.1.tlog
文件 6996 2017-11-29 16:50 boneoneDebugone.tloglink.read.1.tlog
文件 424 2017-11-29 16:50 boneoneDebugone.tloglink.write.1.tlog
文件 1059840 2017-11-29 16:50 boneoneDebugvc120.idb
文件 1609728 2017-11-29 16:50 boneoneDebugvc120.pdb
文件 257265 2017-11-29 16:50 boneoneDebug源.obj
文件 4080 2017-08-09 09:12 boneoneone.vcxproj
文件 944 2017-08-09 09:12 boneoneone.vcxproj.filters
文件 5899 2017-08-09 09:22 boneone源.cpp
文件 54067200 2017-11-29 16:55 boneone.sdf
文件 958 2017-08-09 08:39 boneone.sln
文件 19968 2017-11-29 16:55 boneone.v12.suo
#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 boneDebug
文件 71168 2017-11-29 16:50 boneDebugone.exe
文件 398420 2017-11-29 16:50 boneDebugone.ilk
文件 1986560 2017-11-29 16:50 boneDebugone.pdb
目录 0 2017-08-09 09:22 boneone
目录 0 2017-11-29 16:50 boneoneDebug
文件 2778 2017-11-29 16:50 boneoneDebugone.log
目录 0 2017-11-29 16:50 boneoneDebugone.tlog
文件 37386 2017-11-29 16:50 boneoneDebugone.tlogCL.read.1.tlog
文件 440 2017-11-29 16:50 boneoneDebugone.tlogCL.write.1.tlog
文件 169 2017-11-29 16:50 boneoneDebugone.tlogone.lastbuildstate
文件 624 2017-11-29 16:50 boneoneDebugone.tlogcl.command.1.tlog
文件 2800 2017-11-29 16:50 boneoneDebugone.tlogli
文件 6996 2017-11-29 16:50 boneoneDebugone.tlogli
文件 424 2017-11-29 16:50 boneoneDebugone.tlogli
文件 1059840 2017-11-29 16:50 boneoneDebugvc120.idb
文件 1609728 2017-11-29 16:50 boneoneDebugvc120.pdb
文件 257265 2017-11-29 16:50 boneoneDebug源.obj
文件 4080 2017-08-09 09:12 boneoneone.vcxproj
文件 944 2017-08-09 09:12 boneoneone.vcxproj.filters
文件 5899 2017-08-09 09:22 boneone源.cpp
文件 54067200 2017-11-29 16:55 boneone.sdf
文件 958 2017-08-09 08:39 boneone.sln
文件 19968 2017-11-29 16:55 boneone.v12.suo
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)