Suchen Sie ein 3x3-Schiebefenster über einem Bild

Ich habe ein Bild.

Ich möchte für jedes Pixel im Bild ein 3x3-Fenster (benachbarte Pixel) erhalten.

Ich habe diesen Python-Code:

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 ist das 3x3 Fenster. cent ist das zentrale Pixel.

Gibt es eine effizientere Möglichkeit, dies zu tun - d. H. Mithilfe von Maps und Iteratoren -, als die zwei verschachtelten Schleifen, die ich verwendet habe?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage