public static IList <string> AnalyzeImage(WriteableBitmap imageToAnalyze)
        {
            IList <string> recognizedObjects = new List <string>();

            //get the color palletes
            Dictionary <Color, ColorInformation> imagePalette = PaletteAnalyzer.GetColorPallete(imageToAnalyze);

            //see what it matches with
            List <ObjectSignatureData> signatures = ObjectMemoryService.GetSignatures();

            foreach (ObjectSignatureData signature in signatures)
            {
                float colors  = signature.ObjectColors.Count;
                float matches = 0.0f;

                foreach (ObjectColorData colorData in signature.ObjectColors)
                {
                    if (imagePalette.ContainsKey(colorData.ObjectColor))
                    {
                        matches++;
                    }
                }

                if ((matches / colors) > AgreementCutoffPercent)
                {
                    recognizedObjects.Add(signature.ObjectName);
                }
            }

            return(recognizedObjects);
        }
Beispiel #2
0
        private void PopulateLearnedItemsList()
        {
            List <ObjectSignatureData> learnedObjects = ObjectMemoryService.GetSignatures();

            this.LearnedObjectsList.Items.Clear();
            foreach (ObjectSignatureData objectSignatureData in learnedObjects)
            {
                this.LearnedObjectsList.Items.Add(objectSignatureData.ObjectName);
            }
        }
Beispiel #3
0
 private void DeleteObjectButton_Click(object sender, RoutedEventArgs e)
 {
     if (this.LearnedObjectsList.SelectedIndex != -1)
     {
         string objectName = (string)this.LearnedObjectsList.SelectedItem;
         ObjectMemoryService.RemoveSignatureByName(objectName);
         PopulateLearnedItemsList();
     }
     else
     {
         MessageBox.Show("Please select an item to delete");
     }
 }
Beispiel #4
0
        public static void LearnObject(WriteableBitmap learningImage, WriteableBitmap backgroundImage, string objectName)
        {
            //get the object pallete
            Dictionary <Color, ColorInformation> objectPalleteData = PaletteAnalyzer.AnalyzeBitmaps(learningImage, backgroundImage);

            //convert into ColorData
            List <ObjectColorData> objectColorData = new List <ObjectColorData>();

            foreach (Color color in objectPalleteData.Keys)
            {
                objectColorData.Add(new ObjectColorData(color));
            }
            ObjectSignatureData objectSignature = new ObjectSignatureData(objectColorData, objectName);

            //save the learned object
            ObjectMemoryService.AddSignature(objectSignature);
        }