У меня есть kinect SDK для разработки приложения на C#. Теперь я сомневаюсь в отслеживании скелета.Оба метода отслеживания скелета верны в kinect?
У меня есть 2 кода, но есть 2 разных подхода. Я хочу знать, что оба метода приводят к тем же концепциям? или разные?
код 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
}
}
}
}
Теперь еще методы отслеживания, такие как: код 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
}
}
}
является одновременно foreach (Skeleton skeleton in m_skeletons)
и
foreach (Skeleton skeleton in m_skeletons.Where(s => s.TrackingState == SkeletonTrackingState.Tracked))
правильно? Есть ли разница?