Одна проблема, которую я вижу, состоит в том, что одно изображение может содержаться разными способами в другом, как вы определяете правильный ответ?
Должно ли оно быть в реальном времени?Если нет, то вы можете выполнить простой поиск O (n ^ 4) с помощью фитнес-функции.
Фитнес-функцией может быть ошибка между изображениями (что дает алгоритм ^ 8).
ОБНОВЛЕНИЕ: Неправильный анализ меня извините.Поиск - n ^ 2, а функция пригодности - n ^ 2, что дает n ^ 4.
Весь алгоритм должен выглядеть примерно так:
w1 = width of image 1
w2 = width of image 2
h1 = height of image 1
h2 = height of image 2
for x = -w1 to w1+w2
for y = -h1 to h1+h2
find max fitness(x,y)
fitness(xc,yc){
m=0
for each x where image 1 overlaps image 2 displaced by xc
for each y where image 1 overlaps image 2 displaced by yc
if (image1[x][y] == image2[x+xc][y+yc])
m += 1
return m
}
ОБНОВЛЕНИЕ: Модифицированная функция пригодности длянайдите количество совпадений, а затем попытайтесь найти наибольшее число совпадений.