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

源文件下载在我的GitHub

代码主要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( ;)就是骨骼点信息啦
结果:

matlab下使用kinect获取骨骼点数据_第1张图片
腿的骨骼点跑偏了…不要在意这些细节

曾经的错误和解决方法也贴一贴吧:
在这里插入图片描述
因为这个trackingmode是v1.0的用法
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
等等

其中对应关系:
kinect1.0
matlab下使用kinect获取骨骼点数据_第2张图片
kinect2.0
matlab下使用kinect获取骨骼点数据_第3张图片

你可能感兴趣的:(matlab下使用kinect获取骨骼点数据)