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); }
private void PopulateLearnedItemsList() { List <ObjectSignatureData> learnedObjects = ObjectMemoryService.GetSignatures(); this.LearnedObjectsList.Items.Clear(); foreach (ObjectSignatureData objectSignatureData in learnedObjects) { this.LearnedObjectsList.Items.Add(objectSignatureData.ObjectName); } }
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"); } }
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); }