Я пытаюсь создать приложение, которое решает головоломку (пытается разработать алгоритм графа), и я не хочу все время вводить выборочный ввод вручную.
Изменить: Я не пытаюсь создать игру. Я пытаюсь создать агента, который играет в игру "SpellSeeker"
Скажем, у меня есть изображение (см. вложение) на экране с номерами в нем, и я знаю расположение ящиков, и у меня есть точные изображения для этих номеров. Что я хочу сделать, это просто сказать, какое изображение (номер) находится в соответствующем поле.
Так что я думаю, мне нужно реализовать
bool isImageInsideImage(Bitmap numberImage,Bitmap Portion_Of_ScreenCap)
или что-то в этом роде.
Я попробовал (используя библиотеки AForge)
public static bool Contains(this Bitmap template, Bitmap bmp)
{
const Int32 divisor = 4;
const Int32 epsilon = 10;
ExhaustiveTemplateMatching etm = new ExhaustiveTemplateMatching(0.9f);
TemplateMatch[] tm = etm.ProcessImage(
new ResizeNearestNeighbor(template.Width / divisor, template.Height / divisor).Apply(template),
new ResizeNearestNeighbor(bmp.Width / divisor, bmp.Height / divisor).Apply(bmp)
);
if (tm.Length == 1)
{
Rectangle tempRect = tm[0].Rectangle;
if (Math.Abs(bmp.Width / divisor - tempRect.Width) < epsilon
&&
Math.Abs(bmp.Height / divisor - tempRect.Height) < epsilon)
{
return true;
}
}
return false;
}
Но он возвращает ложь при поиске черной точки на этом изображении.
Как я могу это реализовать?