Mit PIL Bild auf wenige Pixel und Farben reduzieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ovali
User
Beiträge: 1
Registriert: Sonntag 29. September 2019, 17:52

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... :|
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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
Benutzeravatar
__blackjack__
User
Beiträge: 13199
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Bei `Image.quantize()` kann man angeben wie viele Farben die Palette haben soll, oder eine Palette angeben die verwendet werden soll.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Antworten