Encontrar submatrices coincidentes dentro de una matriz

Tengo una matriz 2D de 100 x 200 expresada como una matriz numpy que consiste en celdas negras (0) y blancas (255). Es un archivo de mapa de bits. Luego tengo formas 2D (es más fácil pensarlas como letras) que también son 2D en blanco y negro.

Sé que puedo iterar ingenuamente a través de la matriz, pero esta va a ser una parte "caliente" de mi código, por lo que la velocidad es una preocupación. ¿Hay una forma rápida de realizar esto en numpy / scipy?

Miré brevemente la función de correlación de Scipy. No estoy interesado en las 'coincidencias difusas', solo coincidencias exactas. También miré algunos trabajos académicos pero están por encima de mi cabeza.

Respuestas a la pregunta(2)

Su respuesta a la pregunta