Fotofilter mit Snap!

Die Raspberry Pi Foundation bietet über FutureLearn interessante Kurse zum Bereich „Medien und Informatik“ an. Einer dieser Kurse, „Representing Data with Images and Sound: Bringing Data to Life“ greift unter anderem das Thema Foto-Filter auf und bietet dazu auch einige interessante Code-Beispiele mit Python, welche die Fähigkeiten von Anfängerinnen und Anfängern wohl teilweise übersteigen. Eine Umsetzung mit Snap! erleichtert nicht nur die Programmierung, durch die Verwendung der Webcam ist auch das Einbinden von Bilddateien wesentlich einfacher.

In Snap! programmierte Farbfilter. Das Originalbild befindet sich links oben.

Programmierung in Snap!

Ein geeignetes Bild kann man in Snap! mittels der Zusatzbibliothek „Pixels“ leicht über die Webcam aufnehmen.

In Snap! kann man einem Objekt (Sprite) ein Bild der Webcam als Kostüm zuweisen.

Der abgebildete Programmcode verschiebt zusätzlich das aufgenommene Bild in die linke obere Ecke.

Ein zweites Objekt liest nun die Pixel vom Bildschirm ab, rechnet diese um und bildet das Ergebnis an einer anderen Stelle des Bildschirms ab. Der folgende Programmcode erzeugt drei Abbildungen:

  • Graustufenbild: Alle drei Farbkanäle (Rot, Grün, Blau) werden auf den Wert des Rotkanals gesetzt;
  • Negativbild: Für alle drei Farben wird die neue Farbe berechnet, indem der Farbwert des Kanals von 255 subtrahiert wird.
  • Rotierende Farben: Jeder Farbwert wird mit einem Faktor multipliziert. Damit kein Wert grösser 255 entsteht, wird das Produkt anschliessend modulo 255 gerechnet, d.h., es handelt sich um den Rest nach einer Division durch 255.

Im Wesentlichen besteht das Programm aus zwei verschachtelten Schlaufen, die dafür sorgen, dass jeder Pixel ausgelesen wird. In der inneren Schlaufe wird der Farbwert ausgelesen, umgerechnet und ein entsprechender Pixel an der richtigen Stelle geschrieben.

Das Hauptprogramm rechnet die ausgelesenen Farbwerte in drei Varianten um und schreibt die so berechneten Bilder auf den Bildschirm.

Das verwendete Verfahren ist zwar sehr langsam, dafür aber recht anschaulich. Dieses kann gut anhand eines kleinen Bildes von Hand nachvollzogen werden, da die neuen Bilder zeilenweise auf dem Bildschirm erscheinen.

Verwendung im Unterricht

Foto-Filter gehören zum Alltag von Jugendlichen und werden von diesen auch gerne genutzt. Nebst dem technischen Aspekt (Medien und Informatik) kann das Beispiel auch im Kunstunterricht (Bildnerisches Gestalten) verwendet werden. Für ansprechende Farbfilter sind dabei unter Umständen schon recht komplexe Umrechnungen notwendig.

Haben die Schülerinnen und Schüler das Prinzip einmal begriffen, lädt die Aktivität zu umfangreichen Experimenten ein.

Quellen

Representing Data with Images and Sound: Bringing Data to Life: https://www.futurelearn.com/courses/representing-data-with-images-and-sound

Python: https://www.python.org

Raspberry Pi Foundation: https://www.raspberrypi.org

Snap-Programmierumgebung: https://snap.berkeley.edu/snap/snap.html

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert