Rarity/Garnwahl

Aus RaumZeitLabor Wiki
Zur Navigation springen Zur Suche springen

Beim Sticken vorgegebener Motive habe ich regelmäßig das Problem, aus den 334 verschiedenen Garnfarben diejenigen auszusuchen, die den Motiv-Farben am ähnlichsten sind.

Deshalb habe ich ein kleines Programm geschrieben, das mir die Garnwahl erleichtert, den Code findet ihr auf Github.

Die Idee ist einfach: Beim Start des Programms wird eine Datei eingelesen, die in jeder Zeile zuerst eine Farbnummer enthält, gefolgt von einem Leerzeichen und der zugehörigen Farbe in hexadezimaler RGB-Darstellung, z.B. so:

   501 b4b9a5
   502 efc810
   505 0c082d
   508 f9e6ca
   520 fdf3da

Dann kann der Benutzer hexadezimale RGB-Farbwerte eingeben und bekommt 1-2 Farb-Nummern vorgeschlagen, die der gesuchten Farbe ähnlich sind. Als Ähnlichkeitsmaße werden unabhängig voneinander der euklidsche Abstand im Lab-Farbraum und der euklidsche Abstand im DIN99-Farbraum verwendet.

Für die Konvertierung von RGB nach Lab werden OpenCV-Routinen benutzt, unter Debian müsst ihr daher vor dem kompilieren das Paket *libopencv-dev* installieren, wenn ihr andere Betriebssysteme benutzt heißt das Paket ggf. anders. Den Code inklusive der Beispiel-Tabelle mit den Sulky-Garnnummern könnt ihr folgendermaßen klonen:

   git clone https://github.com/abrock/color-matcher.git

Der Befehl *make* erzeugt die Programmdatei *color-matcher*, das Programm wird dann folgendermaßen aufgerufen und benutzt:

   alexander@toothless:~/rzl/color-matcher$ ./color-matcher sulky.data 
   Tests passed, read 334 values from file sulky.data
   73a6f6
   Input was interpreted as (115, 166, 246)
   best LAB match: 1534 (rgb: 347dcb), difference: 16.3557 (large)
   best DIN match: 1249 (rgb: 62aadc), difference: 9.12243 (large)

Die letzten beiden Zeilen zeigen die ähnlichste Farbe bezüglich des Lab-Ähnlichkeitsmaßes (1524) und bezüglich des DIN99-Ähnlichkeitsmaßes (1249) an, dazu die jeweiligen RGB-Werte und den gemessenen Abstand. Zu dem DIN99-Ähnlichkeitsmaß habe ich keine Angabe gefunden, ab wann der Abstand als "groß" o.ä. gilt, daher sind diese Angaben mit Vorsicht zu genießen.

Den RGB-Wert, der hier in der dritten Zeile eingegeben wird bekommt man in Inkscape z.B. indem man die Funktion "Pick colours from image (F7)" auswählt und den Mauszeiger über die gewünschte Farbe bewegt. Der Farbcode wird dann unten angezeigt, siehe Bild 1. In GIMP bekommt man eine ähnliche Funktion über "Tools->Color Picker (O)", da muss man dann auf die gewünschte Farbe klicken. Eine einfache Alternative zu den genannten Bildverarbeitungsprogrammen ist gcolor2, dessen einzige Aufgabe die Auswahl von Farben ist.

Die Software ist nicht auf die Auswahl von Garnen beschränkt, mit geeigneten Tabellen könnte man auch Plotterfolien zuordnen o.ä.