Exemplo n.º 1
0
        private void PrintDebugDataToScreen(FaceWithEmotions[] faces)
        {
            var ignored = this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                //then show the data values
                if (faces != null)
                {
                    FaceCollection.Clear();

                    foreach (FaceWithEmotions faceEmotion in faces)
                    {
                        if (faceEmotion != null && faceEmotion.Face != null)
                        {
                            if (faceEmotion.Bitmap != null)
                            {
                                lastSendImage.Source = faceEmotion.Bitmap;
                            }
                            Emotion emotion     = faceEmotion.Emotion;
                            Face face           = faceEmotion.Face;
                            FaceAttributes attr = face.FaceAttributes;
                            if (attr != null)
                            {
                                FaceCollection.Insert(0, FaceDetails.FromFaceAndEmotion(face, emotion));
                            }
                        }
                    }
                }
            });
        }
Exemplo n.º 2
0
        public static FaceDetails FromFaceAndEmotion(Face face, Emotion emotion)
        {
            FaceDetails ret = new FaceDetails();

            if (face.FaceAttributes != null)
            {
                ret.FaceAttributes = face.FaceAttributes;
                ret.FaceId         = face.FaceId;
                ret.FaceLandmarks  = face.FaceLandmarks;
                ret.FaceRectangle  = face.FaceRectangle;

                switch ((int)face.FaceAttributes.Glasses)
                {
                case 1:    // Glasses.Sunglasses:
                    ret.Glasses = "Sunglasses";
                    break;

                case 2:    // Glasses.ReadingGlasses:
                    ret.Glasses = "Glasses";
                    break;

                case 3:    // Glasses.SwimmingGoggles:
                    ret.Glasses = "SwimmingGoggles";
                    break;

                default:
                    ret.Glasses = "No glasses";
                    break;
                }

                if (face.FaceAttributes.FacialHair.Beard > 0)
                {
                    ret.FacialHair = "Beard";
                }
                else
                {
                    if (face.FaceAttributes.FacialHair.Moustache > 0)
                    {
                        ret.FacialHair = "Moustache";
                    }
                    else
                    {
                        if (face.FaceAttributes.FacialHair.Sideburns > 0)
                        {
                            ret.FacialHair = "Sideburns";
                        }
                    }
                }

                ret.Smile = "Smile Value " + face.FaceAttributes.Smile;
            }

            if (emotion != null)
            {
                ret._moods.Add("Anger", emotion.Scores.Anger);
                ret._moods.Add("Contempt", emotion.Scores.Contempt);
                ret._moods.Add("Disgust", emotion.Scores.Disgust);
                ret._moods.Add("Fear", emotion.Scores.Fear);
                ret._moods.Add("Happiness", emotion.Scores.Happiness);
                ret._moods.Add("Neutral", emotion.Scores.Neutral);
                ret._moods.Add("Sadness", emotion.Scores.Sadness);
                ret._moods.Add("Surprise", emotion.Scores.Surprise);

                List <KeyValuePair <string, float> > sorted = (from kv in ret._moods orderby kv.Value select kv).ToList();

                ret.Mood1 = sorted[7].Key;
                ret.Mood2 = sorted[6].Key;
                ret.Mood3 = sorted[5].Key;
            }

            return(ret);
        }