我ID的第一骨架Kinect的跟蹤,然後怎麼做的東西用它做的東西與它。我只對第一個骨架感興趣,並且在我不需要它們之後發生。優選地,進入的下一個骨架根本不被跟蹤。Kinect的:我怎麼ID的第一跟蹤骨架和後
有人可以幫助我的感謝。目前下面的代碼使用不起作用。我已經嘗試了一些快速linq查詢,但我不知道如何使用它。始終有錯誤。
有人可以給我一些例子,我可以工作,感謝提前!
private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
Skeleton[] skeletons = new Skeleton[0];
using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
{
if (skeletonFrame != null)
{
skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
skeletonFrame.CopySkeletonDataTo(skeletons);
}
}
using (DrawingContext dc = this.drawingGroup.Open())
{
// Draw a transparent background to set the render size
dc.DrawRectangle(Brushes.Black, null, new Rect(160, 0.0, RenderWidth, RenderHeight));
if (skeletons.Length != 0)
{
foreach (Skeleton skel in skeletons)
{
RenderClippedEdges(skel, dc);
if (skel.TrackingState == SkeletonTrackingState.Tracked)
{
this.TrackingId = Skel;
sensor.SkeletonStream.AppChoosesSkeletons = true;
sensor.SkeletonStream.ChooseSkeletons(skel.TrackingId);
this.DrawBonesAndJoints(skel, dc);
if (skel == null)
{
Process.Start("wmplayer.exe", "C:\\Users\\User\\Downloads\\Test.wma");
}
}
else if (skel.TrackingState == SkeletonTrackingState.NotTracked)
{
sensor.SkeletonStream.AppChoosesSkeletons = false;
}
}
}
// prevent drawing outside of our render area
this.drawingGroup.ClipGeometry = new RectangleGeometry(new Rect(160, 0.0, RenderWidth, RenderHeight));
}
}
感謝您的回覆狐猴。我可以理解你的例子,但無論如何,我可以繪製出第一個被跟蹤的骨架骨架嗎?像這樣.DrawBonesAndJoints(First,dc); – Azl
@ user3032405是的,這將做到這一點,因爲它一次只能檢測一個骨架 –