我正在使用 SDK 创建一个应用程序,其中我必须只有一个用户并将其锁定,这样如果有人出现,即使那个人离 Kinect 更近,应用程序也会继续跟踪它跟踪的第一个骨架。
从 msdn 库中我发现我可以使用骨架流类:
属性:AppChoosesSkeletons = 获取或设置一个 bool 值,该值确定应用程序是否选择要跟踪的骨架。
方法: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
。
有人可以帮我吗?谢谢!
最佳答案
sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton);
你想用这条线达到什么目的?
如果你想将 firstSkeleton 转换为 int,我想这样写:
sensor.SkeletonStream.ChooseSkeletons((int) firstSkeleton);
如果你不想强制转换它而只是将 int 变量提供给 methid 只需写:
sensor.SkeletonStream.ChooseSkeletons(firstSkeleton);
关于c# - 如何锁定单个骨架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10189678/