Exemplo n.º 1
0
 public void Loop(LoopObjects loopObjects) {
     _faceData.Update();
     var face = FindFace(_faceData);
     if (face == null) {
         return;
     }
     loopObjects.Add(face);
     TrackFace(face);
 }
 public void Loop(LoopObjects loopObjects) {
     var handModule = _camera.Manager.QueryHand();
     if (handModule == null) {
         return;
     }
     var handData = handModule.CreateOutput();
     handData.Update();
     TrackHandAndFingers(_camera.LeftHand, handData, PXCMHandData.AccessOrderType.ACCESS_ORDER_LEFT_HANDS);
     TrackHandAndFingers(_camera.RightHand, handData, PXCMHandData.AccessOrderType.ACCESS_ORDER_RIGHT_HANDS);
     handData.Dispose();
 }
 public void Loop(LoopObjects loopObjects) {
     PXCMFaceData.Face face = loopObjects.Get<PXCMFaceData.Face>();
     PXCMFaceData.ExpressionsData data = face?.QueryExpressions();
     if (data == null) {
         return;
     }
     _camera.Face.Mouth.IsSmiling = CheckFaceExpression(data, FaceExpression.EXPRESSION_SMILE, SmileThreshold);
     _camera.Face.Mouth.IsOpen = CheckFaceExpression(data, FaceExpression.EXPRESSION_MOUTH_OPEN, MonthOpenThreshold);
     _camera.Face.LeftEye.IsOpen = !CheckFaceExpression(data, FaceExpression.EXPRESSION_EYES_CLOSED_LEFT, EyesClosedThreshold);
     _camera.Face.RightEye.IsOpen = !CheckFaceExpression(data, FaceExpression.EXPRESSION_EYES_CLOSED_RIGHT, EyesClosedThreshold);
     _camera.Face.EyesDirection = GetEyesDirection(data);
 }
Exemplo n.º 4
0
 public void Loop(LoopObjects loopObjects) {
     var sample = _camera.Manager.QuerySample();
     if (sample == null) {
         return;
     }
     PXCMImage image = sample.color;
     PXCMImage.ImageData imageData;
     image.AcquireAccess(PXCMImage.Access.ACCESS_READ,
                         PXCMImage.PixelFormat.PIXEL_FORMAT_RGB32,
                         out imageData);
     Bitmap bitmap = imageData.ToBitmap(0, image.info.width, image.info.height);
     var ms = new MemoryStream();
     bitmap.Save(ms, ImageFormat.Bmp);
     _camera.ImageStream.CurrentBitmapImage = ms.ToArray();
     image.ReleaseAccess(imageData);
 }
Exemplo n.º 5
0
        private void TryLoop()
        {
            Debug.WriteLine("Loop started");

            var loopObjects = new LoopObjects();

            while (!_cancellationToken.IsCancellationRequested)
            {
                Manager.AcquireFrame(true);
                foreach (var capability in _enabledCapabilities)
                {
                    _availableCapabilities[capability].Loop(loopObjects);
                }
                Manager.ReleaseFrame();
                if (CyclePauseInMillis > 0)
                {
                    Thread.Sleep(CyclePauseInMillis);
                }
            }
        }
Exemplo n.º 6
0
 public void Loop(LoopObjects loopObjects) {
     if (!_camera.Face.IsVisible) {
         return;
     }
     var emotionInfo = _camera.Manager.QueryEmotion();
     if (emotionInfo == null) {
         return;
     }
     PXCMEmotion.EmotionData[] allEmotions;
     emotionInfo.QueryAllEmotionData(0, out allEmotions);
     emotionInfo.Dispose();
     if (allEmotions == null) {
         return;
     }
     var emotions =
         allEmotions.Where(e => e.eid > 0 && (int)e.eid <= 64 && e.intensity > 0.4).ToList();
     if (emotions.Any()) {
         var emotion = emotions.OrderByDescending(e => e.evidence).First();
         _camera.Face.Emotion = (Emotion)emotion.eid;
     }
     else {
         _camera.Face.Emotion = Emotion.None;
     }
 }
 public void Loop(LoopObjects loopObjects) {}
Exemplo n.º 8
0
        private void TryLoop() {
            Debug.WriteLine("Loop started");

            var loopObjects = new LoopObjects();

            while (!_cancellationToken.IsCancellationRequested) {
                Manager.AcquireFrame(true);
                foreach (var capability in _enabledCapabilities) {
                    _availableCapabilities[capability].Loop(loopObjects);
                }
                Manager.ReleaseFrame();
                if (CyclePauseInMillis > 0) {
                    Thread.Sleep(CyclePauseInMillis);
                }
            }
        }