На самом деле я использую 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
содержит список всех возможных карт и их образец сравнения.
...
Теперь Если я пытаюсь распознать изображения, я не могу рассчитывать на надежное распознавание этого изображения: иногда масштабирование изображений отличается от того, которое я сделалобразец. Или шрифт стал меньше, см. Пример ниже:
Я думаю, что я не нахожу неправильный способ определения значений по изображениям. Есть ли лучший или удобный способ решить эту проблему?