繁体   English   中英

Kinect v1和Kinect v2类的替代品

[英]Kinect v1, and Kinect v2 classes alternatives

在将使用Kinect V1类的代码转换为Kinect V2类时,我一直在调试很多错误。 由于这个规定,也有一些变化。
到目前为止,我已经设法将诸如Skeleton之类的某些类调试为Body,但是Skeleon和AllFramesReadyEventsArgs缺少一些部分:

private void KinectAllFramesReady(object sender, AllFramesReadyEventArgs e)
        {
            // Have we already been "shut down" by the user of this viewer, 
            // or has the SkeletonStream been disabled since this event was posted?
            if ((this.Kinect == null) || !((KinectSensor)sender).SkeletonStream.IsEnabled)// Error with Skeleton Stream
            {
                return;
            }

            bool haveSkeletonData = false;

            using (BodyFrame skeletonFrame = e.OpenSkeletonFrame())
            {
                if (skeletonFrame != null)
                {
                    if (this.skeletonCanvases == null)
                    {
                        this.CreateListOfSkeletonCanvases();
                    }

                    if ((this.skeletonData == null) || (this.skeletonData.Length != skeletonFrame.SkeletonArrayLength))// Error with SkeletonArrayLength
                    {
                        this.skeletonData = new Body[ skeletonFrame.SkeletonArrayLength];
                    }

                    skeletonFrame.CopySkeletonDataTo(this.skeletonData);// Error with Skeleton Frrame

                    haveSkeletonData = true;
                }
            }

我仍然拥有Frame Reader,Kinect V2的替代品是什么? 我有以下针对Kinect V1的代码:

protected override void OnKinectChanged(KinectSensor oldKinectSensor, KinectSensor newKinectSensor)
        {
            if (oldKinectSensor != null)
            {
                oldKinectSensor.AllFramesReady -= this.KinectAllFramesReady;
                this.HideAllSkeletons();
            }

            if (newKinectSensor != null && newKinectSensor.Status == KinectStatus.Connected)
            {
                newKinectSensor.AllFramesReady += this.KinectAllFramesReady;
            }
        }

要替换OnKinectChanged事件,可以在KinectSensor对象上使用IsAvailableChanged事件。

主要区别在于Kinect V1中的Skeleton类和kinect V2中的Body类之间,但是要使用SDK2开发kinectV2,则必须使用MultiSourceFrameReader类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM