Ich benutze kinect SDK, um eine Anwendung in C# zu entwickeln. Jetzt habe ich Zweifel, ob ich das Skelett verfolgen kann.Beide Skeleton-Tracking-Methoden sind korrekt in Kinect?
Ich habe 2 Code, aber es gibt 2 verschiedene Ansätze. Ich möchte wissen, dass beide Methoden zu denselben Konzepten führen. oder anders?
Code 1:
void Kinect_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
using (SkeletonFrame frame = e.OpenSkeletonFrame())
{
m_skeletons = new Skeleton[frame.SkeletonArrayLength];
frame.CopySkeletonDataTo(m_skeletons);
}
if(m_skeletons != null && m_skeletons.Length != 0)
{
foreach (Skeleton skeleton in m_skeletons)
{
if (skeleton != null && skeleton.TrackingState == SkeletonTrackingState.Tracked)
{
//doing some operations
}
}
}
}
jetzt eine andere Verfolgungsverfahren wie: Code 2:
void Kinect_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
using (SkeletonFrame frame = e.OpenSkeletonFrame())
{
m_skeletons = new Skeleton[frame.SkeletonArrayLength];
frame.CopySkeletonDataTo(m_skeletons);
}
if(m_skeletons != null && m_skeletons.Length != 0)
{
foreach (Skeleton skeleton in m_skeletons.Where(s => s.TrackingState == SkeletonTrackingState.Tracked))
{
//doing some operations
}
}
}
sowohl foreach (Skeleton skeleton in m_skeletons)
und die
foreach (Skeleton skeleton in m_skeletons.Where(s => s.TrackingState == SkeletonTrackingState.Tracked))
sind richtig? Ist ein Unterschied?