Par Victor Powell
Un noyau d’image est une petite matrice utilisée pour appliquer des effets comme ceux que vous pouvez trouver dans Photoshop ou Gimp, tels que le flou, la netteté, le contour ou le gaufrage. Ils sont également utilisés en apprentissage automatique pour l’extraction de caractéristiques, une technique permettant de déterminer les parties les plus importantes d’une image. Dans ce contexte, le processus est appelé plus généralement « convolution » (voir : réseaux neuronaux convolutifs.)
Pour voir comment ils fonctionnent, commençons par inspecter une image en noir et blanc. La matrice de gauche contient des nombres, entre 0 et 255, qui correspondent chacun à la luminosité d’un pixel dans l’image d’un visage. La grande image granuleuse a été agrandie pour la rendre plus facile à voir ; la dernière image est la taille « réelle ».
Promenons-nous pour appliquer le noyau 3×3 {{selectedKernel}} suivant à l’image d’un visage du haut.
Ci-après, pour chaque bloc 3×3 de pixels dans l’image de gauche, nous multiplions chaque pixel par l’entrée correspondante du noyau, puis nous prenons la somme. Cette somme devient un nouveau pixel dans l’image de droite. Survolez un pixel sur l’une ou l’autre image pour voir comment sa valeur est calculée.
Une subtilité de ce processus est ce qu’il faut faire le long des bords de l’image. Par exemple, le coin supérieur gauche de l’image d’entrée n’a que trois voisins. Une façon de résoudre ce problème est d’étendre les valeurs des bords de un dans l’image originale tout en gardant notre nouvelle image de la même taille. Dans cette démo, nous avons plutôt ignoré ces valeurs en les rendant noires.
Voici un terrain de jeu où vous pouvez sélectionner différentes matrices de noyau et voir comment elles affectent l’image originale ou construire votre propre noyau. Vous pouvez également télécharger votre propre image ou utiliser une vidéo en direct si votre navigateur le prend en charge.
Le noyau d’accentuation met l’accent sur les différences entre les valeurs des pixels adjacents. Cela rend l’image plus vivante.
Le noyau de flou atténue les différences entre les valeurs de pixels adjacents.
Le noyau de gaufrage (similaire au noyau de sobel et parfois désigné par la même signification) donne l’illusion de profondeur en accentuant les différences de pixels dans une direction donnée. Dans ce cas, dans une direction le long d’une ligne allant du haut gauche au bas droit.
Le noyau d’indentité laisse l’image inchangée. Comme c’est ennuyeux !
Le noyau personnalisé est ce que vous en faites.
Les noyaux sobel sont utilisés pour montrer uniquement les différences de valeurs des pixels adjacents dans une direction particulière.
Un noyau outline (également appelé noyau « edge ») est utilisé pour mettre en évidence les grandes différences de valeurs des pixels. Un pixel à côté de pixels voisins dont l’intensité est proche de la même apparaîtra en noir dans la nouvelle image, tandis qu’un pixel à côté de pixels voisins qui diffèrent fortement apparaîtra en blanc.
Pour en savoir plus, consultez l’excellente documentation de Gimp sur l’utilisation des noyaux d’image. Vous pouvez également appliquer vos propres filtres personnalisés dans Photoshop en allant dans Filtre -> Autre -> Personnalisé…
.