【发布时间】:2012-04-17 10:43:10
【问题描述】:
我正在使用 SDK 创建一个应用程序,其中我必须只有一个用户并将其锁定,以便如果其他人出现,即使该人更接近 Kinect,应用程序也会继续跟踪它跟踪的第一个骨架。
从 msdn 库中,我发现我可以使用 Skeletom Stream 类:
属性:AppChoosesSkeletons = 获取或设置一个布尔值,用于确定应用程序是否选择要跟踪的骨架。
方法:SkeletonStream.ChooseSkeletons (Int32) = 选择一个要跟踪的骨架。 语法:public void ChooseSkeletons (int trackingId1)
我不是很擅长编程,而且我使用的是 C#,我想写下类似代码的东西,但它说我使用的是无效表达式。
SkeletonFrame SFrame = e.OpenSkeletonFrame();
if (SFrame == null) return;
Skeleton[] Skeletons = new Skeleton[SFrame.SkeletonArrayLength];
SFrame.CopySkeletonDataTo(Skeletons);
int firstSkeleton = Skeletons[0].TrackingId;
sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton);
if (firstSkeleton == null)
return;
if (SkeletonTrackingState.Tracked == firstSkeleton.TrackingState)
{
//body...
问题出在sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton,上面写着int firstSkeleton cannot be used。
有人可以帮我吗?谢谢!
【问题讨论】:
-
请告诉我,您在何时何地收到该错误。
-
@Likurg 我以不同的方式编写了它,不确定它是否会起作用或者它是否是最好的方式
Skeleton closestSkeleton = (from s in Skeletons where s.TrackingState == SkeletonTrackingState.Tracked && s.Joints[JointType.Head].TrackingState == JointTrackingState.Tracked select s).OrderBy(s => s.TrackingId).FirstOrDefault();从我之前发布的代码中,问题出在sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton);它说不能使用 int firstSkeleton。我认为我的逻辑不太正确,缺少一些东西,但我不知道该怎么做。谢谢你的回答 -
你试过使用骷髅
TrackingID吗?也许只关注第一个? -
如何在 Kinect SDK 1.0 中使用它