Ces primitives déplacent les pixels ou mélangent les pixels adjacents.
La primitive Matrice de convolution utilise les pixels voisins pour modifier la couleur d'un pixel. La façon dont un pixel est modifié est définie par une matrice de N×M avec une entrée pour chaque pixel voisin.
L'illustration ci-dessous donne un exemple de « flou gaussien » qui utilise une matrice de 5×5 autour du pixel central. Le Kernel (noyau) est une représentation en nombres entiers d'un flou gaussien à 2 dimensions avec une déviation standard de 1,4 pixels. Il est normalisé par un Diviseur[15].
Les paramètres de cet effet sont les suivants :
La primitive Matrice de convolution est nécessairement liée aux pixels évalués. Par défaut, la taille du pixel est celle de l'affichage. Cela signifie que l'image produite n'est pas indépendante de la résolution. La norme SVG fournit des façons d'éviter cela à travers les attributs filterRes (résolution du filtre) et kernelUnitLength (unité de longueur du noyau) mais Inkscape ne les supporte pas encore.
Kernel (noyau) :
Diviseur = 1,0, Déviation = 0,0, Préserver l'opacité sélectionné.
Le filtre de « Netteté » ci-dessus est un peu extrême. Ce filtre d'« Accentuation » est un peu plus subtil.
Kernel (noyau) :
Diviseur = 9,0, Déviation = 0,0.
La primitive Displacement Map (carte de déplacement) déforme une image Bitmap à l'aide d'une autre comme entrée. Un pixel de l'image Bitmap source est déplacé à une nouvelle coordonnée selon les équations x' = Redimensionnement × (CX(x,y)-0,5) et y' = Redimensionnement × (CY(x,y)-0,5) où CX et CY sont n'importe quelles composantes RVB ou Alpha, sélectionnables par les attributs Déplacement en X et Déplacement en Y. Les canaux X et Y peuvent être schématisés avec des couleurs différentes.
Le filtre Displacement Map (carte de déplacement) peut être utilisé pour produire d'intéressants effets... mais calculer une carte correcte peut être difficile. Dans les exemples suivants, le déplacement x est réglé sur rouge et le déplacement y est réglé sur vert. Le fond vert olive correspond aux valeurs vert et rouge de 127... qui correspondent (presque) à aucun déplacement.
|
|
|
|
|
|
|
|
Il y a une paire de problèmes dans la version 0.46 d'Inkscape. Le premier vient d'un bogue de l'implémentation qui utilise une image de fond. Cela vous oblige à utiliser une image externe (par le biais du filtre Image) ou à utiliser la sortie d'une autre primitive de filtre comme carte de déplacement. Un autre problème tient au débordement de l'image à l'extérieur de la surface voulue. Ce problème peut être corrigé en réglant la zone des effets de filtre sur la Boîte englobante de l'objet.
Voir l'exemple d'image stéréoscopique dans la section suivante pour un autre exemple d'utilisation de ce filtre.
Note | |
---|---|
Aucun déplacement ? Impossible avec la norme SVG. Couleur et Alpha sont décrits par un octet (8 bits), ce qui correspond à une étendue de 0 à 255. Un déplacement nul correspondrait à une valeur médiante entre 0 et 255, soit 127,5. Or il ne peut s'agir que de nombres entiers, si bien que vous ne pouvez pas avoir une valeur de 127,5. Choisissez, 127 ou 128. Dans la plupart des cas pratiques, le décalage sera négligeable. |
La primitive Flou gaussien rend les objets flous. Des reflets et réverbérations réalistes peuvent être ajoutés aux dessins ainsi que du flou. La primitive crée une image de sortie en utilisant une moyenne pondérée gaussienne des pixels d'entrée autour de l'emplacement de chaque pixel de sortie correspondant.
En interne, le niveau de flou est défini en terme de rayonnement flou qui pour les tenants des mathématiques est simplement la déviation standard du flou gaussien. Techniquement, une fonction gaussienne s'étend à l'infini. Pour des raisons pratiques, la limite du flou d'un objet est deux fois le rayonnement flou à l'extérieur de la Boîte englobante au niveau de flou maximal.
La primitive Flou gaussien sollicite fortement le processeur. La sortie est un compromis entre vitesse et qualité. On peut régler la qualité du flou pour l'affichage de l'écran dans le dialogue des Préférences d'Inkscape ( → (Maj+Ctrl+P)) sous l'entrée Filtres. Le choix d'une option de qualité basse affectera le plus les petits objets. L'export en bitmap est toujours effectué en haute qualité (et peut donc être lent).
Un filtre Flou gaussien peut être créé aussi bien par les dialogues Effets de filtres ou Remplissage et contour.
L'utilisation du dialogue Remplissage et contour pour créer un flou est rapide et facile. Le dialogue crée automatiquement le filtre pour vous (et le supprime si le flou est supprimé). Dans ce dialogue, le niveau de flou est défini en terme de pourcentage. Un flou de 100% (le maximum de flou possible) est équivalent à un rayonnement flou de 1/8ème du périmètre de la Boîte englobante (voir plus haut). Pour une Boîte englobante carrée, ce serait la moitié d'un côté.
Pour appliquer un Flou gaussien à un objet, sélectionnez l'objet puis ajustez le flou à l'aide du curseur Flou vers le bas du dialogue. Seul un flou symétrique peut être appliqué avec ce dialogue.
Astuce | |
---|---|
Les flous créés à l'aide du dialogue Remplissage et contour dépendent de la taille de l'objet flou. Pour obtenir exactement le même niveau de flou sur des objets de tailles différentes, vous pouvez soit utiliser la commande → (Maj+Ctrl+V) (si tous les attributs doivent être les mêmes), soit utiliser le dialogue Effets de filtre pour régler le rayonnement flou (Variance) aux mêmes valeurs. |
Pour une utilisation plus sophistiquée du filtre Flou gaussien il est nécessaire d'utiliser le dialogue Effets de filtre. À travers ce dialogue vous pouvez créer des flous asymétriques aussi bien qu'avoir le contrôle précis sur le rayonnement flou. Vous pouvez également élaborer des filtres plus compliqués comme démontré dans l'exemple Ombre portée en amont de ce chapitre.
Comme démontré dans l'introduction, Inkscape peut être utilisé pour créer facilement une ombre portée mise à jour automatiquement. Toutefois, avant la version 0.46, les primitives nécessaires Décalage et Bord n'étaient pas disponibles. Voici une façon détournée pour la version 0.45 d'Inkscape de créer facilement une ombre portée mise à jour automatiquement :
La primitive Flou gaussien est appliquée à un objet avant toute application de découpe ou masque. Ceci donnera un bord net à l'objet flou le long du chemin de découpe. Si vous voulez que le bord découpé soit flou, placez-le dans un Groupe en lui-même puis rendez flou le Groupe. Si vous voulez un bord adouci pour un objet comme une image bitmap, créez un masque de Transparence blanc avec un bord flou.
Le dialogue Créer un pavage de clones comporte une option pour faire varier le rayonnement flou dans l'onglet Flou & opacité.
La primitive Morphologie « graisse » ou « affine » un objet. L'attribut Opérateur peut aussi bien être Dilater ou Contracter. Le niveau de modification est contrôlé par l'attribut Rayon. Il peut avoir des valeurs x et y indépendantes.
N.B. : Inkscape semble minorer la transformation.
La primitive Décalage décale une image du niveau spécifié en x et y. L'exemple classique est l'utilisation de cette primitive pour créer une ombre. Voir l'exemple Ombre portée en amont de cette section.
Cette primitive possède deux paramètres : Delta X, le décalage dans la direction horizontale et Delta Y, le décalage dans la direction verticale. Notez que la direction positive sur y est vers le bas (comme définie par la norme SVG).
Si le décalage spécifié est grand, la zone du filtre doit être agrandie. Vous pouvez augmenter la zone du filtre dans l'onglet Paramètres généraux des filtres en bas du dialogue des Effets de filtre.
[15] Pourquoi définir un « flou gaussien » avec le filtre Matrice de convolution quand un filtre Flou gaussien existe ? Le filtre Flou gaussien est conçu pour rendre flou à grande échelle. Le filtre Matrice de convolution fonctionne à une petite échelle, en réduisant le bruit des pixels voisins.
© 2005-2009 Tavmjong Bah. | Se procurer le livre. |