L'effet Styliser > Convolution
L'effet Styliser > Convolution permet de modifier les pixels de vos images ou de vos séquences d'images à l'aide d'une matrice (ci-dessous à droite).
Pour les néophytes, une matrice est assimilable à un tableau de chiffres. Pour les mathématiciens, c'est un outil de calcul pratique et puissant utilisé en algèbre..
Pour faire apparaître la matrice relative à notre effet, cliquez sur le bouton Éditer du panneau.
La matrice de notre effet contient 13 lignes et 13 colonnes soit 169 valeurs numériques. Chacune de ces valeurs est usuellement appelée coefficient.
Les cases grisées sont celles situées sur les diagonales de la matrice, elles permettent une meilleure lisibilité.
Tout pixel de l'écran possède une couleur qui peut être retranscrite numériquement dans un système donné. Par exemple, l'onglet curseur du panneau palette donne les valeurs correspondant à la couleur A dans les systèmes R,V,B et T,S,L.
L'effet Styliser > Convolution calcule de nouvelles valeurs (et donc une nouvelle couleur) pour les pixels de votre image en fonction des valeurs (et donc des couleurs) des pixels avoisinants.
Du point de vue mathématique, chaque nouvelle valeur dans le système R,V,B d'un pixel est calculée comme étant la moyenne des valeurs des pixels avoisinants, moyenne pondérée par les coefficients de la matrice.
Mais voilà, pour les graphistes et/ou animateurs que vous êtes, ceci ne permet pas vraiment de se faire une idée du fonctionnement de l'effet ...
Comment obtenir des résultats probants en changeant les coefficients de la matrice ?
Les quelques exemples qui suivent devraient vous y aider.
1er exemple : Créer un flou.
Considérons la matrice ci-contre : chaque coefficient est égal à 3, excepté le coefficient central qui est égal à 1. Tous les autres coefficients sont nuls (et donc non représentés ici)
Utiliser une telle matrice dite de taille 3x3 (3 colonnes, 3 lignes) permet de faire interagir les pixels avec ceux qui les entourent.
Les pixels avoisinants un pixel donné vont donc avoir plus d'importance (ou de poids) que celui-ci : Ceci reflète le procédé de création d'un flou.
Voici un exemple concret. Dans le logo d'origine ci-contre :
* Les pixels blancs, opaques à l'extérieur du logo TVPaint sont presque tous entourés de pixels blancs et opaques.
Une moyenne pondérée de pixels blancs donnera des pixels blancs.
* Les pixels bleus à l'intérieur du logo TVPaint sont presque tous entourés de pixels bleus.
Une moyenne pondérée de pixels bleus donnera des pixels bleus.
* Pour les pixels situés à la frontière entre la zone bleue et la zone blanche, la situation est plus complexe : une moyenne pondérée entre des pixels bleus et blancs donnera des pixels bleus plus ou moins clairs.
Ci-dessous, deux zooms sur la lettre "T" de notre logo :
Des résultats précédents, il est possible de déduire l'impact de l'effet Styliser > Convolutions sur une plus grande plage de pixels.
Avant applicaton de l'effetAprès l'application de l'effet
Puis sur plusieurs centaines de pixels.
Notre flou commence à apparaître ...
Et enfin, voici le résultat global :
Avant applicaton de l'effetAprès l'application de l'effet
2nd exemple : utiliser des matrices plus grandes.
Considérons la matrice ci-contre : chaque coefficient est égal à 3, excepté le coefficient central qui est égal à 1. Tous les autres coefficients sont nuls (et donc non représentés ici)
Utiliser une telle matrice dite de taille 5x5 (5 colonnes, 5 lignes) permet de faire interagir les pixels avec ceux qui les entourent, mais dans un rayon plus large que la matrice 3x3 précédemment décrite.
Dans ce cas, le principe est le même que celui décrit plus haut, mais plus de pixels sont pris en compte pour effectuer la moyenne des couleurs. Il en résultera un flou plus étalé que celui obtenu avec la matrice de l'exemple précédent.
Ci-dessous, deux zooms sur la lettre « T » de notre logo :
Avant applicaton de l'effetAprès l'application de l'effetAvant application de l'effetAprès l'application de l'effet
Avant application de l'effetAprès l'application de l'effet
On comprend alors que plus la matrice employée sera grande (plus il y aura de coefficients 3 pour notre exemple), plus l'effet prendra en compte de pixels pour être calculé, plus le flou sera étalé
Voici ce qu'il est possible d'obtenir en utilisant des matrices plus grandes, construites sur le même modèle :
Ci-dessus, l'image de base. Ci-dessous, les flous obtenus à l'aide d'une :
Matrice 3x3Matrice 5x5Matrice 7x7
Matrice 9x9Matrice 11x11Matrice 13x13
La vitesse d'exécution de l'effet Styliser > Convolution est proportionnelle au nombre de coefficients non nuls de la matrice. En d'autres termes, plus votre matrice comportera de “0” plus le temps de calcul de l'effet sera réduit.
3ème exemple : Rendre une image plus nette :
Rendre une image plus nette est le contraire du fait de rendre une image plus floue.
Ici, un pixel donné doit être renforcé par rapport à tous ceux qui l'entourent. Dit autrement, il doit avoir plus de poids que tous ceux qui l'entourent.
Considérons la matrice 3x3 ci-contre : le coefficient central est très nettement supérieur à la somme des coefficients qui l'entourent.
Puis, appliquons l'effet sur notre logo :
Avant application de l'effetAprès l'application de l'effet
Comme précédemment, les pixels opaques entourés de pixels opaques de même couleur restent inchangés. Ce ne sera cependant pas toujours le cas (cf exemples suivants).
Les pixels situés à la frontière entre le logo et le fond vont prendre plus d'importance par rapport aux pixels qui les entourent. Ils seront plus visibles que les pixels blancs et bleus qui les entourent. En d'autres termes, ils seront plus foncés.
Il en résulte un renforcement des contours du logo...
4ème exemple : Faire ressortir les contours d'une image :
Pour faire ressortir les contours d'une image, il faut rendre l'image plus nette et faire en sorte que les pixels qui ont une couleur proche de leurs pixels voisins deviennent noirs.
Pour ce faire, nous utiliserons une matrice 3x3 très proche de la précédente : Vous noterez que la somme des coefficients situés en périphérie est l'opposée de celle du coefficient central.
Dans ce cas de figure, les pixels dont les voisins sont de même couleur deviendront noirs (ie : la moyenne pondérée des couleurs/valeurs est nulle)
Les pixels à la frontière entre le logo et le fond blanc seront, par contre, renforcés.
Voici le résultat :
Avant application de l'effetAprès l'application de l'effet
5ème exemple : Ajouter du relief à une image :
Ajouter du relief à une image s'effectue en renforçant les pixels dans une direction donnée et en diminuant l'impact des pixels dans la direction opposée.
La matrice ci-contre permet de mettre en relief une image comme si une lumière frappait l'image de droite à gauche. (ici tous les calques ont été fusionnés)
Avant application de l'effetAprès l'application de l'effet
Encore quelques options :
* Nous avons vu que notre effet modifiait la couleur des pixels de l'écran. Il est également possible d'agir sur la transparence des pixels en cliquant sur le bouton Utiliser l'alpha.
Dans ce cas, le calcul de la moyenne pondérée s'applique aussi à la composante alpha de vos pixels (transparence).
* Le menu déroulant Bordure permet de choisir comment seront calculés les pixels du bord de votre image. En effet, les pixels du bord de vos images n'ont pas de pixels voisins ...
Vous pouvez donc choisir de prendre pour pixels voisins :
- Des pixels noirs (option Aucun),
- Des pixels résultants d'une symétrie de l'image (option miroir),
- Des pixels résultants d'une reproduction de l'image entière (option pavage)
- D'une répétition de la dernière (ou première) ligne (ou colonne) de pixels.
* Le coefficient multiplicateur multiplie l'ensemble des coefficients par la valeur indiquée.
Cela permet d'accentuer l'effet de la convolution.
Si tous les coefficients différents de 0 sont les mêmes, le multiplicateur ne changera rien.
Les exemples prédéfinis :
Maintenant que vous avez quelques notions de base au sujet des matrices de convolution, vous pouvez utiliser et modifier les nombreuses matrices à votre disposition dans le bin.
Ci-dessous, les résultats obtenus à l'aide de diverses matrices :
Image FloueImage dédoubléeImage avec contours
Image mise en reliefEclairage renforcéAutres effets