Vectoriser une image avec Inkscape
- parentpages:
- Inkscape
- documentation:
Présentation
Vue d'ensemble
Les images matricielles (.JPG, .PNG), sont souvent inadaptées aux techniques de fabrication numérique : découpe laser, découpe vinyle, broderie, traçage…
Vectoriser une telle image permet d'obtenir une image composée non plus de pixels mais de formes géométriques : segments, courbes, etc. Ceci permet, en plus d'adapter son fichier à la fabrication numérique, de modifier les formes qui constituent l'image (leurs couleurs, leurs tracés…), c'est bien plus facile que d'utiliser un logiciel de traitement d'image avancé comme Photoshop ! Enfin, si on veut utiliser une image dont la résolution est trop basse, la vectorisation permet d'obtenir une résolution supérieure sans effet pixelisé moche…
Source de l'image : https://unsplash.com/photos/kkJuQhp9Kw0
Objectif
On va utiliser le logiciel open-source Inkscape pour vectoriser une image matricielle .JPG ou .PNG, et obtenir un fichier vectoriel .SVG.
On va comparer les différents modes et leurs applications (machines…).
Lexique
Ce sur quoi ce tutoriel s'appuie
Prérequis :
- Savoir utiliser Inkscape
- Comprendre la différence entre image matricielle et vectorielle
Ressources :
- Inkscape tutorial: Vectoriser une image matricielle, un peu incomplet mais bien illustré → https://inkscape.org/fr/doc/tutorials/tracing/tutorial-tracing.fr.html
- Vectorisation de texte dans Inkscape → https://fr.flossmanuals.net/fontes-libres/vectorisation-dans-inkscape/
- Inkscape tutorial: Vectoriser du pixel art → https://inkscape.org/fr/doc/tutorials/tracing-pixelart/tutorial-tracing-pixelart.html
- (en) How to vectorize in Inkscape, on y voit le mode “Plusieurs Passes/Couleurs” → https://www.goinkscape.com/how-to-vectorize-in-inkscape/
- (en) Complete Guide to Trace Bitmap Inkscape 1.2, vidéo très complète pour la v1.2 (nouvelles fonctionnalités) : https://www.youtube.com/watch?v=e9pPdvJu8mg
Ce dont j'ai besoin pour faire ce tutoriel
Matériel :
- Un ordi avec Inkscape… Pas besoin de plugins particuliers
Fichiers :
- une image matricielle à vectoriser (.JPG, .PNG…). Une de vos photos, dessin, une image que vous avez trouvé sur internet… Voir images_matricielles pour trouver des fichiers.
- L'image de fleur en exemple provient de Tanalee Youngblood sur unsplash : https://unsplash.com/photos/kkJuQhp9Kw0
- La fresque abstraite provient de : https://unsplash.com/photos/HFcxrs5u4uE
- Le pixel art de pomme vient d'ici : https://www.pixilart.com/art/appel-848e43bf8ce7913?ft=topic&ft_id=20
- Les images de scans d'outils ont été réalisées à apprentiLAB, pour les empreintes dans les tiroirs. Voir Découper au laser à partir d'un dessin à la main
Étapes du tutoriel
Étape générique
Importer
Créer un nouveau fichier (même si vous voulez ensuite importer votre image dans un projet existant, c'est souvent mieux de faire la vectorisation à part), et sauvegardez-le directement, lui et tous les autres fichiers en cours d'édition (risques de plantage d'Inkscape).
Importer l'image matricielle en la faisant glisser dans la fenêtre ou en allant dans Fichier/Importer. Une fenêtre d'importation s'ouvre, choisir : Incorporer ; Déduire du fichier ; Aucun. Cliquer sur Ok, l'image apparait dans le document.
Fenêtre de vectorisation
Sélectionner l'image, faire un clic-droit dessus, “Vectoriser un objet matriciel”. Une fenêtre, ou un onglet à droite. Celle-ci contient elle-même plusieurs onglets (en haut à gauche) :
- Vectoriser un objet matriciel : c'est le menu principal de vectorisation, avec différents modes répartis en deux catégories :
- Une seule passe : tous ces modes vont générer un seul chemin, avec donc une seule couleur, souvent noir
- Plusieurs passes : ces modes génèrent autant de chemins qu'on le règle, utile notamment pour obtenir une image vectorielle multicolore
- Pixel art : mode spécial pour vectoriser une image de pixel art (par exemple, des vieux graphiques de Gameboy)
- Aide : quelques détails sur les modes et conseils généraux, en anglais
On va détailler dans la section suivante ces différents modes et leurs réglages… On peut revenir aux réglages par défaut avec le bouton Rétablir
La fenêtre contient également un aperçu du résultat, sur la droite, il faut cliquer sur Mettre à jour pour générer un nouvel aperçu après avoir modifié les réglages. Ça n'a pas l'air de fonctionner pour tous les modes, il vaut parfois mieux générer directement le résultat en cliquant sur Appliquer (en bas à droite), et le supprimer pour en créer un nouveau si on veut modifier les réglages…
Les modes en détail
Vectoriser : une seule passe
Les modes une seule passe génèrent un seul chemin, en général avec juste un remplissage ou un contour noir.
Seuil de luminosité
Pour chaque pixel de l'image, on regarde si la luminosité (niveau de gris) est supérieure ou inférieure à la valeur choisie, ce qui donne une image intermédiaire (qu'on ne voit pas) en noir et blanc (sans gris). La vectorisation est ensuite faite à partir de cette image, et on obtient un chemin rempli en noir, avec un contour nul. Plus on augmente le seuil de luminosité, plus les pixels seront considérés comme noirs au lieu de blancs, et plus l'image aura de zones de remplissage noires.
Détection de Contour
Détecte les contours dans l'image, ou les lignes de contraste, à l'aide d'un algorithme. Attention, le chemin généré n'est pas réellement un contour au sens vectoriel du terme, mais possède en réalité un remplissage noir et un contour nul. Donc, si on ajoute un contour, on va en fait avoir une espèce de double trait… On verra plus loin la différence avec le mode autotrace.
Quantification des couleurs
Ce mode est difficile à comprendre sans avoir lu la suite. La quantification des couleurs vise à réduire le nombre de couleurs de l'image à une palette restreinte de dominantes de couleurs.
Une fois la première image intermédiaire créée par quantification de couleurs, de mode va chercher les limites de changement de couleur, et créer une vectorisation à partir de ces changements de couleurs, en alternant du noir au blanc. Le choix du blanc ou du noir est ici arbitraire, on peut donc inverser l'image pour obtenir le “négatif” du résultat non-inversé.
Autotrace
Note : l'aperçu ne semble pas fonctionner avec ce mode, et les réglages (itérations, seuil) ne font pas grand chose : on voit que les chemins générés n'ont pas le même nombre de nœuds mais le résultat est similaire.
Traçage Centerline (autotrace)
Tester ce plugin à la place ? https://github.com/fablabnbg/inkscape-centerline-trace
Même chose qu'Autotrace, mais génère juste un trait au centre de la ligne détectée.
Vectoriser : plusieurs passes
Les modes suivants séparent l'image en plusieurs images, les vectorise selon le mode choisi, et crée donc un chemin par passe.
Chacun de ces modes va générer plusieurs chemins, la case “empilement” sert à définir si on veut que ces zones de remplissages s'ajoutent les unes par dessus les autres (le résultat sera plus joli mais pas forcément exploitable en fabrication numérique), ou bien une par une sans se chevaucher (il y aura souvent des petits défauts aux frontières entre les zones).
Niveaux de luminosité
Similaire au mode “Seuil de luminosité”, sauf que cette fois l'image va être découpée en plusieurs images intermédiaires, une par niveau de luminosité (donc si on coupe en 8, c'est comme si on faisait 8 fois le mode seuil, avec les seuils : 0.125, 0.25, 0.375, etc.).
Comparaison des modes avec et sans empilement, quand on espace les 8 chemins :
Couleurs
La quantification des couleurs à proprement parler ! L'algorithme va d'abord extraire des dominantes de couleur, un nombre fini de couleurs qui représentent au mieux la répartition des couleurs de l'image (sur une image de frites, la première couleur dominante sera sans doute du jaune…). Plus on augmente ce nombre de couleurs, plus on aura de teintes intermédiaires, plus on se rapprochera de l'image réelle avec toutes ces couleurs (mais plus on augmente la complexité, le temps de traitement, etc.). Voir : https://fr.abcdef.wiki/wiki/Color_quantization
On va obtenir autant de chemins que de couleurs, chacun avec un remplissage correspondant, et un contour nul.
Différents nombres de passes :
5 couleurs, sans empilement :
Niveaux de gris
Ce mode ressemble au mode niveaux de luminosité, mais en réalité il fonctionne plutôt comme le mode quantification des couleurs, simplement, l'image intermédiaire est convertie en niveaux de gris avant d'extraire les dominantes de couleurs.
Autotrace (plus lent)
Pixel art
Mode spécial pour convertir les images pixel art (graphiques style gameboy color…). Ne pas l'utiliser sur une image “normale”, avec beaucoup de pixels, le temps de traitement serait beaucoup trop long et le résultat peu adapté.
C'est un mode multicolore…
Voronoi
B-splines
Ce mode crée des zones constituées de carrés contigus…
C'est très long à générer mais ça marche, ça ne plante pas…
Pré-traitement
On visualise souvent parfaitement le résultat qu'on pense obtenir, pour au final galérer parce que le logiciel ne détecte pas les bons seuils (surtout quand on fait plusieurs passes).
Si on obtient beaucoup d'artefacts, des chemins compliqués alors qu'il n'y a pas lieu, des mauvaises couleurs… il peut être intéressant de pré-traiter l'image, c'est-à-dire de la modifier avant de la vectoriser.
Dans l'exemple ci-dessous, la première rangée est l'image d'origine. Bien qu'elle semble assez simple, les jeux de lumière sur les aplats de couleurs font apparaître des reliefs qui sont mal interprétés par Inkscape, notamment entre les deux tons un peu turquoise…
On peut essayer dans un premier temps de flouter l'image, bien que l'option “adoucir” le fasse déjà, afin de lisser les petits défauts de surface (deuxième rangée). On peut utiliser un logiciel de traitement d'image, comme Gimp, ou bien un outil en ligne. Ça n'est pas tout à fait satisfaisant, alors on peut pousser un peu et utiliser les deux outils Pipette de couleur et Seau de remplissage (avec un seuil assez haut, environ 25) pour sélectionner les couleurs dominantes de l'image et remplir les zones correspondantes. Le résultat est beaucoup plus lisse, et les couleurs plus fidèles (troisième rangée).
Post-traitement
On aura parfois des artefacts dans le résultat numérisé, il va alors falloir nettoyer l'image vectorielle.
Une des solutions les plus simples est de Simplifier le chemin (menu chemin, ou Ctrl+L).
Mais souvent on devra plutôt le faire à la main en éditant les nœuds du chemin…
Exemple dans ce tuto : Découper au laser à partir d'un dessin à la main
La fabrication numérique
On va détailler les contraintes liées à chaque technique de fabrication, et en déduire les modes de vectorisation les plus adaptés…
Découpeuse laser
Avec la découpeuse laser, on peut effectuer différents types d'opérations : gravure, marquage ou découpe (voir la page de la machine pour plus d'infos). Ces opérations n'ont pas les mêmes contraintes en termes de vectorisation.
Gravure
En réalité, on n'a même pas besoin de vectoriser pour faire de la gravure, le logiciel de la machine accepte les images matricielles. Il faut cependant convertir celles-ci en niveau de gris. On peut toujours utiliser une des techniques de vectorisation qui donne un résultat en niveaux de gris si on veut simplifier l'image ou la modifier (luminosité, contours, niveaux de gris).
Attention, dans le cas de certaines réalisation, comme la fabrication de tampons ou de pinces à embosser, l'image doit être uniquement en noir et blanc, et non en niveaux de gris avec tous les tons entre les deux. On peut soit appliquer un seuil de luminosité binaire sur l'image (avec un logiciel de traitement d'image comme Gimp ou avec le premier mode de vectorisation d'Inkscape), soit utiliser une technique de tramage.
Marquage et découpe
Le marquage et la découpe s'effectuent uniquement à partir de chemins, il faudra donc absolument vectoriser. Dans la plupart des cas, le mode autotrace sera le plus approprié. Attention à bien post-traiter le résultat (séparer les chemins, supprimer les doublons, simplifier…).
Dans le cas particulier du marquage, on ne cherche pas toujours à reproduire des contours, juste en général à gagner du temps par rapport à la gravure. On peut alors utiliser une vectorisation à plusieurs passes et hachurer les zones, comme expliqué dans ce tuto du carrefour numérique : https://cyberweb.cite-sciences.fr/wiki/doku.php?id=trucs_astuces:inkscape_les_effets_de_chemin_croquis_et_hachures_pour_gravure_laser
Brodeuse
Image multicolore : plusieurs passes - couleurs. Attention, le logiciel de broderie PE-Design n'aime pas trop les zones qui se chevauchent complètement, comme c'est le cas avec l'option “empilement”. Il faudra alors décocher cette option, ou bien post-traiter la pièce, soit chemin par chemin avec des opérations de soustraction, soit avec un plugin (pas testé encore mais il semble que PathOPs fasse exactement ça : https://gitlab.com/moini_ink/inx-pathops). Attention au nombre de passes, plus on aura de couleurs, plus il faudra changer de fil sur la machine…
Lettrage monochrome : le tuto listé en haut de cette page conseille un mode niveaux de gris à 2 passes, mais on peut très bien s'en sortir avec une seule passe en mode seuil de luminosité ou autotrace.
Trait simple (pour surpiqûre en pointillés par exemple) : une seule passe, autotrace, séparer et supprimer les chemins en double le cas échant…
Découpe vinyle
Même conseils que pour la découpe ou le marquage laser (autotrace, retirer les doublons…).
Traceur de dessin
Tout dépend de ce qu'on veut tracer…
Des traits simples → autotrace
Des zones de remplissage → selon le cas, mode couleurs ou seuil de luminosité, on pourra ensuite se référer à la doc de la machine pour utiliser des techniques de remplissage rapides qui ne font pas de pâtés (avec des hachures par exemple…). Attention au nombre de passes, la machine n'a que 8 couleurs max !
3D (impression 3D, fraisage...)
Fraiseuse Bois ; Imprimante 3D Cosmyx Nova
Vu qu'on peut importer un fichier SVG dans FreeCAD ou tout autre logiciel de modélisation, on peut utiliser une vetorisation pour créer une poche, ou une extrusion dans un solide en 3D (logo de marque, etc.). Mode autotrace…