如何锁定单个骨架

Pao*_*ola 5 c# sdk kinect

我正在使用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...
Run Code Online (Sandbox Code Playgroud)

sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton它说,问题在于它int firstSkeleton cannot be used.
有人可以帮帮我吗?谢谢!

Fix*_*xus 3

sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton);
Run Code Online (Sandbox Code Playgroud)

您想通过这条线实现什么目标?

在我看来,如果你想将firstSkeleton转换为int,请像这样写:

sensor.SkeletonStream.ChooseSkeletons((int) firstSkeleton);
Run Code Online (Sandbox Code Playgroud)

如果你不想强制转换它而只是将 int 变量赋予方法,只需编写:

sensor.SkeletonStream.ChooseSkeletons(firstSkeleton);
Run Code Online (Sandbox Code Playgroud)