Ich habe einen Filter geschrieben, der das Strichzeichnungsbild mit schwarzen Linien auf weißem Hintergrund locker verdünnt. Das Ausdünnen dient nicht zur Analyse wie dem Extrahieren einer 1-Pixel-Linie, sondern zur praktischen Verwendung im Bereich der Retuschiersoftware. Neben dem Ausdünnen geht es auch darum, mehrere Linien unterschiedlicher Dicke so gleichmäßig wie möglich zu gestalten.
Funktioniert mit Python.
https://github.com/a-nakanosora/blender-scripts/blob/master/Image/Petit%20Thinning%20CLI/petit_thinning.py
Sie benötigen "Kissen", um es zu verwenden. (Es wird empfohlen, Anaconda zu verwenden, das diese Bibliothek aus Standard-Python enthält.)
Nachtrag: In der ersten Version waren Numpy und Pillow für die externe Bibliothek erforderlich, aber mit der Verbesserung durch @ pashango2 wurde Pillow vereinheitlicht und beschleunigt. Danke vielmals! </ font>
$ python petit_thinning.py 6 0.95 5 input.png output.png
Das Befehlszeilenargument lautet
petit_thinning.py <emptyrange> <emptythres> <dilation_max_depth> <path_in> [<path_out>] [-p]
Es sieht aus wie das.
Emptyrange
, Emptythres
und Dilation_max_depth
sind die Parameter, die die Wirkung des Filters ändern.
Emptyrange
: Eine Ganzzahl größer oder gleich 1. Eine Richtlinie dafür, wie reibungslos jede Ausdünnungsstufe gemischt wirdEmptythres
: Eine reelle Zahl im Bereich von 0,0 bis 1,0. Je näher es an 1,0 liegt, desto stärker wirkt sich das Ausdünnen der Linie aus, aber die Linie neigt dazu, unterbrochen zu werden.dilation_max_depth
: Eine Ganzzahl größer oder gleich 1. Sie können dickere Linien dünner machen, indem Sie eine größere Anzahl angeben. Wenn die Linien jedoch zu dick sind, tritt häufig Rauschen auf.path_in
: Pfad der Eingabedateipath_out
: Pfad der Ausgabedatei. Wenn nicht angegeben, wird der Eingabepfadname mit "_out" am Ende verwendet.-p
Flag: Druckt verschiedene Parameter und BerechnungszeitWenn "leerer Bereich" auf einen Wert eingestellt wird, der größer als "dilation_max_depth" ist, wird das Rauschen im Grunde genommen verringert, aber auch der Grad der Ausdünnung wird verringert. Es ist sicher, dilation_max_depth
auf ungefähr 5
zu setzen.
Ich mache nur eine Erweiterung des Morphologiefilters und synthetisiere sie.
Recommended Posts