Bonjour, j'essaie d'implémenter une version naïve du filtre de Sobel mais je n'obtiens qu'un amas de pixel. Si quelqu'un trouve le problème, merci d'avance.

def pconv(A,B):
somme = 0
somme += A[2][2]*B[0][0]
somme += A[2][1]*B[0][1]
somme += A[2][0]*B[0][2]
somme += A[1][2]*B[1][0]
somme += A[1][1]*B[1][1]
somme += A[1][0]*B[1][2]
somme += A[0][2]*B[2][0]
somme += A[0][1]*B[2][1]
somme += A[0][0]*B[2][0]
return somme

def exnoyau(tableau,i,j):
return [[tableau[i-1][j-1],tableau[i-1][j],tableau[i-1][j+1]],
[tableau[i][j-1],tableau[i][j],tableau[i][j+1]],
[tableau[i+1][j-1],tableau[i+1][j],tableau[i+1][j+1]]]

def sobel(P):
return (np.abs((P[0][0] + 2 * P[0][1] + P[0][2]) - (P[2][0] + 2 * P[2][1] + P[2][2])) +
np.abs((P[0][2] + 2 * P[2][0] + P[2][1]) - (P[0][0] + 2 * P[1][0] + P[2][0])))

def application(tableau,filtre):
n = len(tableau) #hauteur de l'image
p = len(tableau[0]) #largeur de l'image
for i in range(1,n-1):
for j in range(1,p-1):
tableau[i][j] = filtre(exnoyau(tableau,i,j))
return Image.fromarray(tableau)