Распознавание игральных карт c#
Буду благодарен за любой ответ
Для распознавание я использую Accord.Imaging
Я подумал, что лучше всего это сделать на картах (игральных) и пытаюсь распознать их.
У меня есть колода из 52 карт + 1 карта из этой колоды которую мне нужно распознать.
У меня есть картинки всех 52 карт в полном размере

.+ 1 карта которую нужно распознать (это урезанная карта примерно на 40%)
Далее я перебором ищу похожу карту данным методом. Проблема в том, что он находит карту в колоде похожую с оригиналом , но и карты похожие например 6черви он определяет как и 8черви и тд. Манипуляция с if (matchings[0].Similarity > 0.91f) в бОльшу сторону или меньшую не дает нормального эффекта
Если ли какой-то метод или другая библиотека которая бы мне помогла более точно распознавать.
Возможно мне стоит распознавать не картинку ,а находить цифру или буку и карту масти?
Буду благодарен за любой ответ
string path = @"C:\Users\Pictures\cards";
var images = GetImagesPath(path);
string flop = @"C:\1\flop";
var hand = GetImagesPath(flop);
Bitmap templateImage;
Grayscale gg;
ExhaustiveTemplateMatching tm;
for (int i = 0; i < hand.Count; i++)
{
gg = new GrayscaleBT709();
templateImage = new Bitmap(hand[i]);
Bitmap grayTemplate = gg.Apply(templateImage);
tm = new ExhaustiveTemplateMatching(0);
// find all matchings with specified above similarity
for (int z = 0; z < images.Count; z++)
{
Bitmap sourceImage = new Bitmap(images[z]);
Bitmap graySource = gg.Apply(sourceImage);
TemplateMatch[] matchings = tm.ProcessImage(graySource, grayTemplate);
Graphics g = Graphics.FromImage(sourceImage);
if (matchings[0].Similarity > 0.91f)
{
int X = matchings[0].Rectangle.X;
int Y = matchings[0].Rectangle.Y;
g.DrawRectangle(new Pen(Color.Red, 3), X, Y, matchings[0].Rectangle.Width, matchings[0].Rectangle.Height);
PicTemplate.Image = sourceImage;
MessageBox.Show("Match found...");
}
else
{
}
}
}
