J'ai écrit un filtre qui amincit légèrement l'image de dessin au trait avec des lignes noires dessinées sur un fond blanc. L'amincissement n'est pas destiné à une analyse telle que l'extraction d'une ligne de 1 pixel, mais plutôt à une utilisation pratique dans le domaine des logiciels de retouche. Outre l'amincissement, il vise également à uniformiser au maximum plusieurs lignes d'épaisseurs différentes.
Fonctionne avec Python.
https://github.com/a-nakanosora/blender-scripts/blob/master/Image/Petit%20Thinning%20CLI/petit_thinning.py
Vous avez besoin de «Oreiller» pour l'utiliser. (Il est recommandé d'utiliser Anaconda qui inclut cette bibliothèque de Python standard)
Addendum: Dans la première version, Numpy et Pillow étaient nécessaires pour la bibliothèque externe, mais avec l'amélioration de @ pashango2, Pillow a été unifié et accéléré. Merci beaucoup! </ font>
$ python petit_thinning.py 6 0.95 5 input.png output.png
L'argument de ligne de commande est
petit_thinning.py <emptyrange> <emptythres> <dilation_max_depth> <path_in> [<path_out>] [-p]
Ça ressemble à ça.
ʻEmptyrange, ʻemptythres
, dilation_max_depth
sont les paramètres qui changent l'effet du filtre.
dilation_max_depth
: Un entier supérieur ou égal à 1. Vous pouvez rendre les lignes plus épaisses plus fines en spécifiant un nombre plus grand, mais si les lignes sont trop épaisses, du bruit a tendance à se produire.path_in
: chemin du fichier d'entréepath_out
: chemin du fichier de sortie. Si omis, le nom du chemin d'entrée avec _out
à la fin sera utilisé.-p
: Affiche divers paramètres et temps de calculFondamentalement, si la «plage vide» est définie sur une valeur supérieure à «dilation_max_depth», le bruit sera réduit, mais le degré d'amincissement sera également réduit. Il est prudent de définir dilation_max_depth
sur environ 5
.
Je fais juste une certaine dilatation du filtre morphologique et je les synthétise.
Recommended Posts