Seite 1 von 1

Mit PIL Bild auf wenige Pixel und Farben reduzieren

Verfasst: Sonntag 29. September 2019, 18:03
von Ovali
Hallo.
Ich habe folgendes vor: Für ein einfaches Spiel im Rahmen Jugend forscht möchte ich aus einem Bild, das ich per Webcam aufnehme, ein Pixelraster von ca. 20x40 Pixeln erzeugen. Die Pixel sollen dabei möglichst nur 6 Farben haben.
Mit image.resize() und PIL.Image.ANTIALIAS müsste die Reduktion ja schon mal funktionieren. Wie kann ich aber die resultierenden Pixel auf 6 Farben reduzieren und das Bild so als Kopie abspeichern bzw. im weiteren Programm zugreizbar machen.
Danke für Eure Hilfe. Bin leider noch nichts so fit in Python... :|

Re: Mit PIL Bild auf wenige Pixel und Farben reduzieren

Verfasst: Sonntag 29. September 2019, 18:19
von __deets__
Du musst die resultierenden Pixelfarben in die nächstliegenden deiner Palette konvertieren. Ein erster und simpler Ansatz könnte der euklidische Abstand sein. Ggf besser ist sowas wie https://python-colormath.readthedocs.io ... lta_e.html

Re: Mit PIL Bild auf wenige Pixel und Farben reduzieren

Verfasst: Sonntag 29. September 2019, 18:42
von __blackjack__
Bei `Image.quantize()` kann man angeben wie viele Farben die Palette haben soll, oder eine Palette angeben die verwendet werden soll.