Exemplo n.º 1
0
        public void ScannerConnect()
        {
            _sensor = KinectSensor.GetDefault();

            if (_sensor != null)
            {
                _sensor.Open();

                _reader = _sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth | FrameSourceTypes.BodyIndex);
                //_reader = _sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth);
                _reader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived;
                this.ImageScreenshot             = new WriteableBitmap(this._sensor.DepthFrameSource.FrameDescription.Width, this._sensor.DepthFrameSource.FrameDescription.Height, 96.0, 96.0, PixelFormats.Gray8, null);
                this.coordinateMapper            = this._sensor.CoordinateMapper;
                backgroundRemovalTool            = new PointCloudUtils.BackgroundRemoval(_sensor.CoordinateMapper);
            }
            bStopAfterFrameInterpolation = false;
        }
Exemplo n.º 2
0
        public override bool StartScanner()
        {
            InitScanner();
            isScanning    = true;
            scannerSensor = KinectSensor.GetDefault();
            //scannerSensor.DepthFrameSource
            if (scannerSensor != null)
            {
                if (PointCloudScannerSettings.ShowSkeleton)
                {
                    this.bodyFrameReader = this.scannerSensor.BodyFrameSource.OpenReader();
                    this.bodyFrameReader.FrameArrived += this.BodyReader_FrameArrived;
                }

                // 2) Initialize the face source with the desired features
                //if (PointCloudScannerSettings.ShowFace)
                //{
                //    //_faceSource = new HighDefinitionFaceFrameSource(_sensor);
                //    //_faceReader = _faceSource.OpenReader();
                //    //_faceReader.FrameArrived += FaceReader_FrameArrived;
                //    //_facePointCloud = new FaceModel();
                //    //_faceAlignment = new FaceAlignment();


                //    _faceSource = new HighDefinitionFaceFrameSource(scannerSensor);
                //    //_faceSource = new FaceFrameSource(scannerSensor, 0, FaceFrameFeatures.BoundingBoxInColorSpace |
                //    //                                      FaceFrameFeatures.FaceEngagement |
                //    //                                      FaceFrameFeatures.Glasses |
                //    //                                      FaceFrameFeatures.Happy |
                //    //                                      FaceFrameFeatures.LeftEyeClosed |
                //    //                                      FaceFrameFeatures.MouthOpen |
                //    //                                      FaceFrameFeatures.PointsInColorSpace |
                //    //                                      FaceFrameFeatures.RightEyeClosed);
                //    _faceReader = _faceSource.OpenReader();
                //   _faceReader.FrameArrived += FaceReader_FrameArrived;
                //    _facePointCloud = new FaceModel();
                //    _faceAlignment = new FaceAlignment();

                //}


                scannerReader = scannerSensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth | FrameSourceTypes.BodyIndex | FrameSourceTypes.Infrared);
                scannerReader.MultiSourceFrameArrived += Scanner_MultiSourceFrameArrived;

                this.ImageScreenshot = new Bitmap(this.scannerSensor.DepthFrameSource.FrameDescription.Width, this.scannerSensor.DepthFrameSource.FrameDescription.Height, System.Drawing.Imaging.PixelFormat.Format16bppGrayScale);

                this.coordinateMapper = this.scannerSensor.CoordinateMapper;
                backgroundRemovalTool = new PointCloudUtils.BackgroundRemoval(scannerSensor.CoordinateMapper);

                bStopAfterFrameInterpolation = false;
                InitPictureBoxesForUI();

                scannerSensor.Open();
            }
            else
            {
                return(false);
            }

            return(true);
        }