2016-06-21 8 views
0

Ich implementiere eine grundlegende Crowd Dynamic Software. Bei jedem Zeitschritt werden alle Personen in einem rechteckigen Bereich mit Ausgängen in die Richtung, auf die das Modell zeigt, entwickelt. Die Ausgabe zu jedem Zeitschritt soll auf ein Bild gedruckt werden. Ich hatte keine großen Probleme, den Bereich als Rechteck und die Leute als Punkte zu zeichnen, aber jetzt müsste ich jedem Punkt eine Farbe geben, die auf der Geschwindigkeit der Person basiert, die er repräsentiert.Wie zeichne Punkte mit hellen Farben in einem Bild mit Pillow/PIL-Bibliothek

if(vel == 3): 
    draw.point((xp, yp), fill='blue') 

elif vel == 2: 
    draw.point((xp, yp), fill='red') 

elif vel == 1: 
    draw.point((xp, yp), fill='green') 

erhalte ich die folgende jpg-Datei: enter image description here

Wie Sie sehen können, ist es sehr schwierig ist, den Unterschied zwischen jedem Punkt zu erzählen. Haben Sie Tipps, wie Sie die Farben viel heller machen können? Auch Vorschläge zu verschiedenen Möglichkeiten, die Ergebnisse "auszugeben", sind willkommen. Vielen Dank!

+1

Haben Sie versucht, ein 9x9 Quadrat anstatt nur 1 Pixel zu zeichnen? Es scheint, dass das Anti-Aliasing oder Glätten die Farben weniger vibriert. Ein anderer Weg, den Sie ausprobieren sollten, ist die Ausgabe in einem verlustfreien PNG statt eines JPEG oder sogar eines JPEG mit höherer Qualität. – advance512

+1

@ advance512: Vielen Dank für Ihre Hinweise. Die Verwendung eines Quadrates von 9 Pixeln würde eine wichtige Änderung in der Algorithmuslogik erfordern, da die Bewegungseinheit auf ein Pixel eingestellt ist. Ich habe versucht, maximale JPG-Qualität zu setzen, aber ich habe die besten Ergebnisse mit PNG .. Vielen Dank dann – user123892

+0

Großartig, glücklich zu hören, dass es Ihnen geholfen hat. :) – advance512

Antwort

1

Es scheint, dass das Anti-Aliasing oder Glätten die Farben weniger dynamisch macht. Ein Weg zu versuchen ist, um zu einem verlustfreien PNG anstatt zu einem JPEG oder sogar zu einer höheren Qualität JPEG auszugeben. Ein anderes ist, ein 9x9 Pixel Quadrat zu verwenden, das weniger von der Glättung beeinflusst wird.

Verwandte Themen