Eh bien, il y a plusieurs façons de traiter les pixels limites dans l'image. Un élément courant consiste à remplir la matrice d'image avec une ligne et une colonne supplémentaires afin d'avoir des voisins pour ces pixels limites (voisins qui sont nécessaires dans l'opération de convolution du noyau).
Par exemple, vous avez ce n x n matrice d'image:
a[0][0] a[0][1] ... a[0][n-1]
a[1][0] a[1][1] ... a[1][n-1]
. . .
. . .
. . .
a[n-1][0] a[n-1][1] ... a[n-1][n-1]
Vous devez pad en mettant la première ligne en dessous de la ligne n-ième et la ligne n-ième au-dessus de la première ligne. De plus, la première colonne est copiée après la dernière colonne et la dernière colonne avant la première.
a[n-1][n-1] a[n-1][0] a[n-1][1] ... a[n-1][n-1] a[n-1][0]
a[0][n-1] a[0][0] a[0][1] ... a[0][n-1] a[0][0]
a[1][n-1] a[1][0] a[1][1] ... a[1][n-1] a[1][0]
. . . . .
. . . . .
. . . . .
a[n-1][n-1] a[n-1][0] a[n-1][1] ... a[n-1][n-1] a[n-1][0]
a[0][n-1] a[0][0] a[0][1] ... a[0][n-1] a[0][0]
Comme vous pouvez le voir, les coins sont réfléchis de manière symétrique. Le coin supérieur gauche de la nouvelle bordure prend la valeur de l'élément en bas à droite dans la matrice initiale. Vous obtenez une matrice (n + 2) x (n + 2) sur laquelle vous appliquez l'opération de convolution du noyau.