Zum Hauptinhalt
IQSH
  • Startseite
  • Kalender
  • Mehr
Systemweite Suche Schließen
Sucheingabe umschalten
Deutsch ‎(de)‎
Deutsch ‎(de)‎ English ‎(en)‎
Sie sind als Gast angemeldet
Login
IQSH
Startseite Kalender
  1. Dashboard
  2. GYM-INF-SLK-Bildverarbeitung
  3. Kursziele und Grundlagen
  4. Aufgabe 3: Bildeffekte

Aufgabe 3: Bildeffekte

Abschlussbedingungen

In dieser Aufgabe werden Bilder pixelweise manipuliert, um verschiedene Effekte zu erzeugen. Sie können zur Bearbeitung dieser Aufgaben die Grundgerüste aus dem Ordner Beispielprogramme verwenden oder auf anderen Beispielen aus der Vorlesung aufbauen.

(a) Bedingte Anweisung

Schreiben Sie ein Python-Programm Bild_zu_schwarzweiss.py, das ein Farbbild in ein Schwarz-Weiß-Bild umwandelt:

  • Laden Sie das Bild aus der Datei Graffiti-2.png (oder eine andere Bilddatei aus dem Unterordner Segmentierung).
  • Wandeln Sie das Bild in ein Graustufenbild um.
  • Gehen Sie dieses Bild pixelweise durch und setzen Sie alle Grauwerte entweder auf schwarz (= 0) oder weiß (= 255), je nachdem, ob der entsprechende Grauwert dunkler als 50% Helligkeit (d. h. < 128) ist oder heller.
  • Lassen Sie sich das Resultat mit der Methode show anzeigen und speichern Sie das Ergebnis zusätzlich in einer Datei Ausgabe_Schwarzweiss.png.


Für besonders Schnelle: Wenden Sie dieses Verfahren auf ein Farbbild an, um einen "Comiceffekt" zu erzeugen:

  • Wandeln Sie das Bild dazu nicht in ein Graustufenbild um, und setzen Sie alle Rot-, Grün- und Blauwerte unabhängig voneinander auf 0% (= 0) oder 100% (= 255), je nachdem ob sie unter 50% liegen oder darüber.


(b) Variable Skalierung

Schreiben Sie ein Python-Programm Gradienteneffekt.py, das einen einfachen "Gradienteneffekt" auf ein Farbbild anwendet:

  • Laden Sie das Bild aus der Datei Auto.png (oder ein anderes Bild Ihrer Wahl).
  • Das Bild soll nun von oben nach unten zunehmend abgedunkelt werden, so dass ein Gradienteneffekt entsteht.
  • Gehen Sie das Bild dazu pixelweise durch und skalieren Sie alle RGB-Werte mit einem Faktor, der von oben nach unten von 1 bis 0 abnimmt.
  • Lassen Sie sich das Resultat mit der Methode show anzeigen und speichern Sie das Ergebnis zusätzlich in einer Datei Ausgabe_Gradienteneffekt.png.


Für Profis: Passen Sie Ihr Programm so an, dass das Bild nicht von oben nach unten abgedunkelt wird, sondern von der Mitte aus nach oben und unten. Oder passen Sie es so an, dass das Bild von der Mitte aus zum Rand hin abgedunkelt wird ("Vignettierung").

(c) Vertiefung für besonders Schnelle

Schreiben Sie ein Python-Programm Bildschirmeffekt.py, das einen "Bildschirmeffekt" (d. h. ähnlich einem alten Röhrenfernseher) auf ein Farbbild anwendet:

  • Färben Sie das Bild grün ein, indem Sie für jedes Pixel dessen Helligkeit berechnen und diese als Grün-Wert speichern (Rot und Blau werden auf 0 gesetzt). Die Helligkeit eines RGB-Werts wird üblicherweise mit der Formel 0.3·R + 0.6·G + 0.1·B berechnet.
  • Skalieren Sie die Werte in jeder zweiten Zeile auf 50% Helligkeit herunter, um die charakteristischen "Scanlines" des Röhrenfernsehers zu simulieren. (Tipp: Verwenden Sie ggf. den Modulo-Operator %, um zu entscheiden, ob die y-Koordinate einer Pixelposition (x, y) gerade oder ungerade ist. Für gerade Werte y ergibt y % 2 den Wert 0.)
  • Verwenden Sie Auto.png (oder ein anderes Bild Ihrer Wahl) als Eingabebild und speichern Sie das Ergebnis in Ausgabe_Bildschirmeffekt.png.


Abgabe: Laden Sie Ihre erstellten Python-Programme hier zur Abgabe hoch. Anmerkungen können Sie als Kommentare in den Programmen angeben.

Moodle Support Portal

Sie sind als Gast angemeldet (Login)
Unsere Datenlöschfristen
Laden Sie die mobile App