Je voudrais créer cet effet de dessin animé à partir de photos simplement avec la ligne de commande.
Exemples d'effets souhaités:
Pouvez-vous décrire le processus ou donner quelques astuces pour obtenir cet effet de bande dessinée?
Info:
Comme vous l'avez peut-être déjà découvert, une caricature de filtres de postérisation provenant de diverses solutions de traitement d'image peut nécessiter un peu de peaufinage par rapport à la source d'origine avant que nous puissions obtenir des résultats similaires à ceux de vos exemples.
Deux solutions qui fonctionnent à partir de la ligne de commande peuvent vous donner des résultats proches de vos exemples, mais les résultats obtenus dépendent toujours beaucoup de l'image source utilisée.
En utilisant l'outil convert
ou mogrify
, nous pouvons appliquer le filtre -Paint
pour un style de dessin animé peint à plat à notre source:
convert -Paint <strength> <source> <output>
Remplacez <strength>
par un entier pour spécifier la taille du pinceau. Plus le nombre de détails sera réduit. Sur votre exemple, j'ai utilisé une force de 4
pour le résultat suivant:
On peut obtenir de meilleurs résultats que lors d'opérations bitmap en traçant le bitmap jusqu'à un graphique vectoriel en utilisant, par exemple, Inkscape. Nous pourrions alors aussi ajouter des traits ou adapter les couleurs obtenues pour mieux répondre à nos besoins.
Un traceur de ligne de commande peut être installé avec autotrace .
Il y a beaucoup d'options pour ajuster les résultats obtenus avec autotrace. L'exemple ci-dessous a été généré avec ces options:
autotrace -color-count 6 -filter-iterations 8 -remove-adjacent-corners -output-format svg input.png > output.svg
J'ai trouvé un bash script pour que imagemagick le fasse par Fred Weinhaus. Ses scripts sont disponibles gratuitement pour une utilisation non commerciale, UNIQUEMENT.
Utilisation de la ligne de commande:
USAGE: cartoon [-p pattern] [-n numlevels] [-m method] [-e edgeamount]
[-b brightness] [-s saturation] infile outfile
USAGE: cartoon [-h or -help]
-p ... pattern ...... segmentation pattern (shape); 0<=integer<=100;
..................... default=70
-n ... numlevels .... number of desired segmentation levels; integer>=2;
..................... default=6
-m ... method ....... Edge method; 1 or 2; default=1
-e ... edgeamount ... amount of edges; float>=0; default=4
-b ... brightness ... brightness of cartoon; integer>=0; default=100
-s ... saturation ... saturation of cartoon; integer>=0; default=150
PURPOSE: To create a cartoon-like appearance to an image.
(plus sur le site lui-même.) Que fait le script ...
(Optionally) applies a median filter to the image
Reduces the number of colors in the filtered image
Converts the original image to grayscale
(Optionally) applies a median filter to the grayscale image
Applies a gradient Edge detector to the grayscale image
Thresholds the Edge image to binary
Composites the Edge image with the color reduced image
Il y a des exemples sur son site, mais ceux-ci ne sont pas à la hauteur de vos exemples. Vous aurez probablement besoin de jouer avec les paramètres pour que ce soit ce que vos images ressemblent.