Ejemplo n.º 1
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            m_imageInfo = new ImageInfo(ImageResolution.Resolution1920x1080, Xtr3D.Net.ImageInfo.ImageFormat.RGB888);
            try
            {
                InitGenerator();
            }
            catch (MissingLicenseException)
            {
                SkeletonTrackingState.Text = "Missing License";
                return;
            }
            catch (InvalidLicenseException)
            {
                SkeletonTrackingState.Text = "Invalid License";
                return;
            }
            catch (ExpiredLicenseException)
            {
                SkeletonTrackingState.Text = "Expired License";
                return;
            }
            GeneratorSingleton.Instance.SetGestureRecognitionFile("SamplePoses.xml");

            m_skeletonDrawer       = new SkeletonDrawer(m_imageInfo);
            SkeletonDisplay.Source = m_skeletonDrawer.ImageSource;
            m_colorImageDrawer     = new ColorImageDrawer(m_imageInfo);

            //  AdjustDisplay();
            //Register to the AllFramesReady event with our event handler, which will synchronize between camera and skeleton and draw them on the screen.
            //In case displaying the skeleton is not needed (e.g. calibration stage), using only GeneratorSingleton.Instance.ColorImageFrameReady results in better performance.
            //For that matter, see MyAllFramesReadyEventHandler on how to easily allow switching between waiting for synchronized frames,
            //coming from all streams (via GeneratorSingleton.Instance.AllFramesReady)
            //and waiting separately for each stream (GeneratorSingleton.Instance.DataFrameReady and GeneratorSingleton.Instance.ColorImageFrameReady).
            GeneratorSingleton.Instance.AllFramesReady +=
                new EventHandler <AllFramesReadyEventArgs>(MyAllFramesReadyEventHandler);

            // Start event pumping
            GeneratorSingleton.Instance.Start();
            if (CSharpVisualSkeletonSample.Properties.Settings.Default.EnableSmoothing)
            {
                GeneratorSingleton.Instance.DataStream.Enable(new TransformSmoothParameters()
                {
                    Smoothing  = CSharpVisualSkeletonSample.Properties.Settings.Default.SmoothingCoeff,
                    Correction = CSharpVisualSkeletonSample.Properties.Settings.Default.CorrectionCoeff,
                    OutlierRemovalSensitivity      = CSharpVisualSkeletonSample.Properties.Settings.Default.OutlierRemovalSensitivity,
                    MaxNumberOfConsecutiveRemovals = CSharpVisualSkeletonSample.Properties.Settings.Default.MaxConsecutiveRemovals
                });
            }
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            m_imageInfo = new ImageInfo(ImageResolution.Resolution1920x1080, Xtr3D.Net.ImageInfo.ImageFormat.RGB888);
            try
            {
                InitGenerator();
            }
            catch (MissingLicenseException)
            {
                SkeletonTrackingState.Text = "Missing License";
                return;
            }
            catch (InvalidLicenseException)
            {
                SkeletonTrackingState.Text = "Invalid License";
                return;
            }
            catch (ExpiredLicenseException)
            {
                SkeletonTrackingState.Text = "Expired License";
                return;
            }
            GeneratorSingleton.Instance.SetGestureRecognitionFile("SamplePoses.xml");

            m_skeletonDrawer = new SkeletonDrawer(m_imageInfo);
            SkeletonDisplay.Source = m_skeletonDrawer.ImageSource;
            m_colorImageDrawer = new ColorImageDrawer(m_imageInfo);

              //  AdjustDisplay();
            //Register to the AllFramesReady event with our event handler, which will synchronize between camera and skeleton and draw them on the screen.
            //In case displaying the skeleton is not needed (e.g. calibration stage), using only GeneratorSingleton.Instance.ColorImageFrameReady results in better performance.
            //For that matter, see MyAllFramesReadyEventHandler on how to easily allow switching between waiting for synchronized frames,
            //coming from all streams (via GeneratorSingleton.Instance.AllFramesReady)
            //and waiting separately for each stream (GeneratorSingleton.Instance.DataFrameReady and GeneratorSingleton.Instance.ColorImageFrameReady).
            GeneratorSingleton.Instance.AllFramesReady +=
                new EventHandler<AllFramesReadyEventArgs>(MyAllFramesReadyEventHandler);

            // Start event pumping
            GeneratorSingleton.Instance.Start();
            if (CSharpVisualSkeletonSample.Properties.Settings.Default.EnableSmoothing)
            {
                GeneratorSingleton.Instance.DataStream.Enable(new TransformSmoothParameters()
                {
                    Smoothing = CSharpVisualSkeletonSample.Properties.Settings.Default.SmoothingCoeff,
                    Correction = CSharpVisualSkeletonSample.Properties.Settings.Default.CorrectionCoeff,
                    OutlierRemovalSensitivity = CSharpVisualSkeletonSample.Properties.Settings.Default.OutlierRemovalSensitivity,
                    MaxNumberOfConsecutiveRemovals = CSharpVisualSkeletonSample.Properties.Settings.Default.MaxConsecutiveRemovals
                });
            }
        }