Распознавание значений GameCard дает неверный результат в AForge.NET - PullRequest
1 голос
/ 30 сентября 2019

На самом деле я использую AForge.NET для распознавания suit и value из игровой карты.

Вот фрагмент кода, в котором я решаю, какой suit/value есть:

public static CardTemplateIdentifier GetBestMatchingIdentifier(this List<CardTemplateIdentifier> templates, Bitmap bitmap)
{
    float maxSimilar = 0f;
    CardTemplateIdentifier result = null;
    foreach (var template in templates)
    {
        // Identify similarity between template and bmp
        ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0);
        TemplateMatch[] matchings = tm.ProcessImage(bitmap, template.Sample);

        // If the currently tested template fits better than the best one so far,
        // set the value as the identified card value
        if (matchings.Length > 0 && matchings[0].Similarity > maxSimilar)
        {
            maxSimilar = matchings[0].Similarity;
            result = template;
        }
    }

    return result;
} 

CardTemplateIdentifier содержит список всех возможных карт и их образец сравнения.

enter image description here enter image description here enter image description here enter image description here ...

Теперь Если я пытаюсь распознать изображения, я не могу рассчитывать на надежное распознавание этого изображения: иногда масштабирование изображений отличается от того, которое я сделалобразец. Или шрифт стал меньше, см. Пример ниже:

enter image description here enter image description here enter image description here enter image description here

Я думаю, что я не нахожу неправильный способ определения значений по изображениям. Есть ли лучший или удобный способ решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...