Поиск фрагмента изображения внутри изображения Numpy

У меня есть два массива Numpy (3-мерный uint8), преобразованные из изображений PIL.

Я хочу узнать, содержит ли первое изображение второе изображение, и если да, то узнать координаты верхнего левого пикселя внутри первого изображения, где находится совпадение.

Есть ли способ сделать это исключительно в Numpy достаточно быстро, вместо использования (4! Очень медленных) чистых циклов Python?

Пример 2D:

a = numpy.array([
    [0, 1,  2,  3],
    [4, 5,  6,  7],
    [8, 9, 10, 11]
])
b = numpy.array([
    [2, 3],
    [6, 7]
])

Как сделать что-то подобное?

position = a.find(b)

позиция будет тогда (0, 2) .

18
задан Saullo G. P. Castro 12 May 2013 в 21:47
поделиться