Trouver une sous-image à l'intérieur d'un Numpy image

J'ai deux tableaux Numpy (3 dimensions uint8) converti à partir PIL images.

Je veux savoir si la première image contient la deuxième image, et si oui, trouver les coordonnées du coin haut-gauche de pixels à l'intérieur de la première image où le match est.

Est-il un moyen de le faire uniquement dans Numpy, dans une façon assez rapide, plutôt que de l'aide (4! très lent) pur Python boucles?

Exemple 2D:

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

Comment faire quelque chose comme cela?

position = a.find(b)

position serait alors (0, 2).

OriginalL'auteur Etienne Perot | 2011-10-06