Esempio n. 1
0
        private Card FindBestMatch(ulong needle, List <Card> referenceCards, SetFilter fromSet, List <Card> ignoreCards)
        {
            Card bestMatch     = null;
            var  lowestHamming = int.MaxValue;

            var phash       = new pHash();
            var setComparer = new SetEqualityComparer();

            foreach (var referenceCard in referenceCards)
            {
                if (fromSet != SetFilter.All && !setComparer.Equals(referenceCard.Set, fromSet.Set))
                {
                    continue;
                }

                if (ignoreCards.Any() && ignoreCards.Contains(referenceCard))
                {
                    continue;
                }

                var hamming = phash.HammingDistance(referenceCard.pHash, needle);
                if (hamming < lowestHamming)
                {
                    lowestHamming = hamming;
                    bestMatch     = referenceCard;
                }
            }

            return(bestMatch);
        }
Esempio n. 2
0
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { WidthTextBox.Text,
                               HeightTextBox.Text,
                               ThresholdTextBox.Text }, e);
 }
Esempio n. 3
0
        public List <IdentifiedCard> Identify(List <DetectedCard> detections, List <Card> referenceCards,
                                              SetFilter fromSet, List <Card> ignoreCards)
        {
            var phash        = new pHash();
            var matchedCards = new List <IdentifiedCard>();

            foreach (var detectedCard in detections)
            {
                var cardHash  = phash.ImageHash(detectedCard.CardBitmap);
                var bestMatch = FindBestMatch(cardHash, referenceCards, fromSet, ignoreCards);

                if (bestMatch != null)
                {
                    // highly experimental

#if NULL
                    const string tessDataDir = @".\\tessdata";

                    using (var engine = new TesseractEngine(tessDataDir, "eng", EngineMode.Default))
                        using (var image = Pix.LoadFromFile(".\\tempCard" + cardTempId + ".jpg"))
                            using (var page = engine.Process(image))
                            {
                                string text = page.GetText();
                                Console.WriteLine("DEBUG: Mean confidence: {0}", page.GetMeanConfidence());
                                Console.WriteLine("DEBUG: " + text);
                            }
#endif
                    matchedCards.Add(new IdentifiedCard(detectedCard, bestMatch));
                }
            }

            return(matchedCards);
        }
Esempio n. 4
0
 public void Add(SetFilter set)
 {
     if (!IsAll)
     {
         (sets ??= new()).Add(set);
     }
 }
 private void IterationsTextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { MorphMethodComboBox.SelectedItem.ToString(),
                               IterationsTextBox.Text, BorderTypeComboBox.SelectedItem.ToString(),
                               MorphShapesComboBox.SelectedItem.ToString(),
                               SizeWidthTextBox.Text, SizeHeightTextBox.Text }, e);
 }
Esempio n. 6
0
 private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     SetFilter?.Invoke(new[] { MaxValueTextBox.Text, AdaptiveMethodComboBox.SelectedItem.ToString(),
                               ThresholdTypeComboBox.SelectedItem.ToString(), BlockSizeTextBox.Text, ConstantTextBox.Text },
                       new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
     {
         Source = ControlName
     });
 }
Esempio n. 7
0
 private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     SetFilter?.Invoke(new[] { HorizontalNumeric.Value.GetValueOrDefault(0).ToString(),
                               VerticalNumeric.Value.GetValueOrDefault(0).ToString(), UnitComboBox.SelectedItem.ToString() },
                       new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
     {
         Source = ControlName
     });
 }
 private void CropModeBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     SetFilter?.Invoke(new[] { LeftTextBox.Text, TopTextBox.Text,
                               RightTextBox.Text, BottomTextBox.Text, CropModeBox.SelectedItem.ToString() },
                       new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
     {
         Source = ControlName
     });
 }
 private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     SetFilter?.Invoke(new[] { ThreshTextBox.Text, MaxValueTextBox.Text
                               , ThresholdTypeComboBox.SelectedItem.ToString() },
                       new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
     {
         Source = ControlName
     });
 }
 private void CheckBox_Click(object sender, RoutedEventArgs e)
 {
     SetFilter?.Invoke(new[] { InputTextBox.Text,
                               CheckBox.IsChecked.GetValueOrDefault().ToString() },
                       new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
     {
         Source = ControlName
     });
 }
Esempio n. 11
0
 private void CheckBoxOnlyGrayscale_Click(object sender, RoutedEventArgs e)
 {
     SetFilter?.Invoke(new[] { CheckBoxOnlyGrayscale.IsChecked.GetValueOrDefault().ToString(),
                               ChannelsComboBox.SelectedItem.ToString() },
                       new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
     {
         Source = ControlName
     });
 }
 private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     SetFilter?.Invoke(new[] { MorphMethodComboBox.SelectedItem.ToString(),
                               IterationsTextBox.Text, BorderTypeComboBox.SelectedItem.ToString(),
                               MorphShapesComboBox.SelectedItem.ToString(),
                               SizeWidthTextBox.Text, SizeHeightTextBox.Text },
                       new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
     {
         Source = ControlName
     });
 }
 private void ChannelsComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (ChannelsComboBox.Visibility != System.Windows.Visibility.Visible)
     {
         return;
     }
     SetFilter?.Invoke(new[] { RadiusTextBox.Text,
                               SigmaTextBox.Text, ChannelsComboBox.SelectedItem.ToString() },
                       new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
     {
         Source = ControlName
     });
 }
Esempio n. 14
0
        private void EnumComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (EnumComboBox.Items.Count == 0)
            {
                return;
            }

            SetFilter?.Invoke(new[] { EnumComboBox.SelectedItem.ToString() },
                              new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
            {
                Source = ControlName
            });
        }
Esempio n. 15
0
        private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var inputBox = sender as ComboBox;

            if (inputBox.Visibility != System.Windows.Visibility.Visible)
            {
                return;
            }
            SetFilter?.Invoke(new[] { (inputBox.SelectedItem as ComboBoxItem).Content.ToString() },
                              new TextChangedEventArgs(e.RoutedEvent, UndoAction.None)
            {
                Source = ControlName
            });
        }
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { StrengthTextBox.Text,
                               ColorStrengthTextBox.Text }, e);
 }
Esempio n. 17
0
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { (sender as TextBox).Text }, e);
 }
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { ThreshTextBox.Text, MaxValueTextBox.Text
                               , ThresholdTypeComboBox.SelectedItem.ToString() }, e);
 }
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { CodeComboBox.SelectedItem.ToString(),
                               dstCnTextBox.Text }, e);
 }
 private void TextBoxCL_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { LeftTextBox.Text, TopTextBox.Text,
                               RightTextBox.Text, BottomTextBox.Text, CropModeBox.SelectedItem.ToString() }, e);
 }
    public static ISet Filter(ISet a, SetFilter filter) 
    {
      IMutableSet inter = new HashSet();

      foreach(object elem in a) 
      {
        if (filter(elem))
        {
          inter.Add(elem);
        }
      }	
      return inter;
    }
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { RadiusTextBox.Text,
                               SigmaTextBox.Text, ChannelsComboBox.SelectedItem.ToString() }, e);
 }
Esempio n. 23
0
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { HorizontalNumeric.Value.GetValueOrDefault(0).ToString(),
                               VerticalNumeric.Value.GetValueOrDefault(0).ToString(), UnitComboBox.SelectedItem.ToString() }, e);
 }
Esempio n. 24
0
 private void InputTextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(GetInputs(), e);
 }
Esempio n. 25
0
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { MaxValueTextBox.Text, AdaptiveMethodComboBox.SelectedItem.ToString(),
                               ThresholdTypeComboBox.SelectedItem.ToString(), BlockSizeTextBox.Text, ConstantTextBox.Text }, e);
 }
Esempio n. 26
0
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { TargetTextBox.Text,
                               ReplacementTextBox.Text, FuzzinessTextBox.Text }, e);
 }
 private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
 {
     e.Source = ControlName;
     SetFilter?.Invoke(new[] { InputTextBox.Text,
                               CheckBox.IsChecked.GetValueOrDefault().ToString() }, e);
 }