demo:matlab下使用kinect获取骨骼点数据

代码主要copy的mathworks。遇到了一些错误,主要是:
1、kinect1.0和2.0的一些函数对应不上,查找了对应函数关系
2、原代码有些地方由于顺序等原因在我的电脑上也出错,调整了一些顺序
3、原来采集100帧,报的内存不足,(但在老师电脑上也这个配置,老师说是由于我的电脑usb3.0的质量问题),所以改成50帧
删减修改后

imaqhwinfo
colorVid = videoinput('kinect',1);
%preview(colorVid)%可以预览视频流
depthVid = videoinput('kinect',2);
%preview(depthVid)

triggerconfig(depthVid,'manual');
triggerconfig(colorVid,'manual');
depthVid.FramesPerTrigger = 1;
depthVid.TriggerRepeat = inf;
set(getselectedsource(depthVid),'EnableBodyTracking','on')%v2和v1不同,后来改动

start(depthVid);figure;
for i=1:50%为啥采集50帧?为了让人做好准备进入相框?
    trigger(depthVid);
    [depthMap,~,depthMetadata] = getdata(depthVid);
    imshow(depthMap,[0 4096]);
end
stop(depthVid);

skeletonJoints = depthMetadata.DepthJointIndices(:,:,depthMetadata.IsBodyTracked);
imshow(depthMap,[0 4096]);
hold on;plot(skeletonJoints(:,1),skeletonJoints(:,2),'*');

这个skeletonJoints( ;)就是骨骼点信息啦
结果:

demo:matlab下使用kinect获取骨骼点数据
腿的骨骼点跑偏了…不要在意这些细节

曾经的错误和解决方法也贴一贴吧:
demo:matlab下使用kinect获取骨骼点数据
因为这个trackingmode是v1.0的用法
demo:matlab下使用kinect获取骨骼点数据demo:matlab下使用kinect获取骨骼点数据
demo:matlab下使用kinect获取骨骼点数据
等等

其中对应关系:
kinect1.0
demo:matlab下使用kinect获取骨骼点数据
kinect2.0
demo:matlab下使用kinect获取骨骼点数据