Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| talit:image_processing_python [2024-06-03 12:44] – sca | talit:image_processing_python [2025-06-15 19:41] (aktuell) – [Aufgabe 2: Fun with Flags] hof | ||
|---|---|---|---|
| Zeile 24: | Zeile 24: | ||
| Ein Pixel, welches Rot in voller Stärke leuchten soll, wird also durch $[255, | Ein Pixel, welches Rot in voller Stärke leuchten soll, wird also durch $[255, | ||
| + | === Transparenz === | ||
| + | Nicht alle Bildformate unterstützen Transparenz, | ||
| + | Im folgenden wird der Alpha-Kanal darum teilweise weggelassen, | ||
| + | |||
| + | === Beispiel === | ||
| Betrachte das folgende Bild: | Betrachte das folgende Bild: | ||
| Zeile 45: | Zeile 50: | ||
| Der folgende Code liest das Bild `input_image.png` (im gleichen Ordner wie Python-File) ein und speichert es unter dem Namen `output_image.png`. Achtung: Das Bild `output_image.png` wird bei jedem Ausführen überschrieben. | Der folgende Code liest das Bild `input_image.png` (im gleichen Ordner wie Python-File) ein und speichert es unter dem Namen `output_image.png`. Achtung: Das Bild `output_image.png` wird bei jedem Ausführen überschrieben. | ||
| <code python> | <code python> | ||
| + | import numpy as np | ||
| from skimage import io # to read image | from skimage import io # to read image | ||
| import matplotlib.pyplot as plt # to show (and save) image | import matplotlib.pyplot as plt # to show (and save) image | ||
| + | import copy | ||
| + | |||
| + | img_org = io.imread(' | ||
| - | img = io.imread(' | + | # make copy of image before you manipulate it |
| + | img = copy.deepcopy(img_org) | ||
| - | # here can manipulate img | + | # TODO: manipulate img here |
| pass | pass | ||
| Zeile 73: | Zeile 83: | ||
| * Die zweite Zahl gibt die Anzahl Pixel in horizontale Richtung ($x$) an. | * Die zweite Zahl gibt die Anzahl Pixel in horizontale Richtung ($x$) an. | ||
| * Die dritte Zahl gibt an, dass für jedes Pixel $4$ Werte (RGB und Alpha) benötigt werden. | * Die dritte Zahl gibt an, dass für jedes Pixel $4$ Werte (RGB und Alpha) benötigt werden. | ||
| - | * `dtype=int` stellt sicher, dass im Array nur ganze Zahlen (integers) und keine Nachkommazahlen stehen. Ohne dies kann man die Transparent | + | * `dtype=int` stellt sicher, dass im Array nur ganze Zahlen (integers) und keine Nachkommazahlen stehen. Ohne dies kann man die Transparenz |
| ==== Bildbearbeitung ==== | ==== Bildbearbeitung ==== | ||
| Zeile 145: | Zeile 155: | ||
| 1. Erstelle auf GitHub ein **neues Repo** mit passendem Namen, z.B. " | 1. Erstelle auf GitHub ein **neues Repo** mit passendem Namen, z.B. " | ||
| - | | + | |
| 1. Füge **alle Files**, die du im Verlaufe dieses Themas erstellen/ | 1. Füge **alle Files**, die du im Verlaufe dieses Themas erstellen/ | ||
| 1. Commite und Pushe immer dann, wenn du Fortschritte gemacht hast. | 1. Commite und Pushe immer dann, wenn du Fortschritte gemacht hast. | ||
| Zeile 161: | Zeile 171: | ||
| 1. Studiere die [[image_processing_python# | 1. Studiere die [[image_processing_python# | ||
| 1. Erstelle ein Jupyter-Notebook `pixel_art.ipynb` im Repo und arbeite darin. | 1. Erstelle ein Jupyter-Notebook `pixel_art.ipynb` im Repo und arbeite darin. | ||
| - | 1. Nehme das Array aus dem [[https:// | + | 1. Nehme das Array aus dem [[talit: |
| - | 1. Verändere es nun so, dass die italienische Flagge angezeigt wird (zu Ehren der Pizza und *nicht* Berlusconi): {{ : | + | 1. Verändere es nun so, dass die italienische Flagge angezeigt wird (zu Ehren der Pizza): {{ : |
| - | 1. Wähle nun eine schöne (und einfache) [[https:// | + | 1. Wähle nun eine schöne (und einfache) [[wpde>Liste_der_Nationalflaggen|Flagge]] und zeichne sie selbst mithilfe eines Numpy-Arrays. |
| === Aufgabe 3: Pixel Art === | === Aufgabe 3: Pixel Art === | ||
| Zeile 271: | Zeile 281: | ||
| * Farbkanal isolieren (Andy Warhol) | * Farbkanal isolieren (Andy Warhol) | ||
| * Invertieren | * Invertieren | ||
| - | * Flippen | + | * Flippen |
| * Bildausschnitt | * Bildausschnitt | ||
| * Verpixeln | * Verpixeln | ||