Encontre uma janela deslizante de 3x3 sobre uma imagem

Eu tenho uma imagem.

Eu quero obter uma janela 3x3 (pixels vizinhos) para cada pixel na imagem.

Eu tenho este código Python:

for x in range(2,r-1,1):
    for y in range(2,c-1,1):
        mask5=numpy.array([cv.Get2D(copy_img,x-1,y-1),cv.Get2D(copy_img,x-1,y),cv.Get2D(copy_img,x-1,y+1),cv.Get2D(copy_img,x,y-1),cv.Get2D(copy_img,x,y),cv.Get2D(copy_img,x,y+1),cv.Get2D(copy_img,x+1,y-1),cv.Get2D(copy_img,x+1,y),cv.Get2D(copy_img,x+1,y+1)])
        cent=[cv.Get2D(copy_img,x,y)]

mask5 é a janela 3x3. cent é o pixel central.

Existe uma maneira mais eficiente de fazer isso - ou seja, usando mapas, iteradores - qualquer coisa além dos dois loops aninhados que usei?

questionAnswers(3)

yourAnswerToTheQuestion