Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:image_processing_python [2024-06-17 11:05] – [Aufgabe B1] scatalit:image_processing_python [2025-04-10 05:30] (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,0,0,255]$ beschrieben. Ein Pixel, welches Rot in voller Stärke leuchten soll, wird also durch $[255,0,0,255]$ beschrieben.
  
 +=== Transparenz ===
 +Nicht alle Bildformate unterstützen Transparenz, das populäre [[wpde>JPEG]]-Format (`*.jpg`) hat beispielsweise keinen Alpha-Kanal.
 +Im folgenden wird der Alpha-Kanal darum teilweise weggelassen, dann sind die Pixel nicht transparent, ein Bildpunkt besteht nur aus drei statt vier Werten.
 +
 +=== 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('input_image.png') # read image, is stored as numpy-array in variable img
  
-img = io.imread('input_image.png'# read image, is stored as numpy-array in variable img+# make copy of image before you manipulate it 
 +img = copy.deepcopy(img_org)
  
 # here can manipulate img # here can manipulate img
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 (Alpha) nicht einstellen.+   * `dtype=int` stellt sicher, dass im Array nur ganze Zahlen (integers) und keine Nachkommazahlen stehen. Ohne dies kann man die Transparenz (Alpha) nicht einstellen.
  
 ==== Bildbearbeitung ==== ==== Bildbearbeitung ====
Zeile 145: Zeile 155:
  
    1. Erstelle auf GitHub ein **neues Repo** mit passendem Namen, z.B. "image\_processing\_python".    1. Erstelle auf GitHub ein **neues Repo** mit passendem Namen, z.B. "image\_processing\_python".
-   1. Gebe das Repo der **LP (anschae) frei**.+   1. Gib das Repo den **LPs frei** (`anschae` / `tkilla77`).
    1. Füge **alle Files**, die du im Verlaufe dieses Themas erstellen/bearbeiten wirst *unaufgefordert* dem Repo hinzu.    1. Füge **alle Files**, die du im Verlaufe dieses Themas erstellen/bearbeiten wirst *unaufgefordert* dem Repo hinzu.
    1. Commite und Pushe immer dann, wenn du Fortschritte gemacht hast.    1. Commite und Pushe immer dann, wenn du Fortschritte gemacht hast.
Zeile 163: Zeile 173:
    1. Nehme das Array aus dem [[https://sca.ksr.ch/doku.php?id=talit:image_processing_python#pixel|Beispiel zu "Pixel"]], also `img = ...` und zeige das Bild mit matplotlib an.    1. Nehme das Array aus dem [[https://sca.ksr.ch/doku.php?id=talit:image_processing_python#pixel|Beispiel zu "Pixel"]], also `img = ...` und zeige das Bild mit matplotlib an.
    1. Verändere es nun so, dass die italienische Flagge angezeigt wird (zu Ehren der Pizza und *nicht* Berlusconi): {{ :talit:italia.png?200 |}}    1. Verändere es nun so, dass die italienische Flagge angezeigt wird (zu Ehren der Pizza und *nicht* Berlusconi): {{ :talit:italia.png?200 |}}
-   1. Wähle nun eine schöne (und einfache) [[https://de.wikipedia.org/wiki/Liste_der_Nationalflaggen|Flagge]] und zeichne sie selbst mithilfe eines Numpy-Arrays.+   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 ===
  • talit/image_processing_python.1718622325.txt.gz
  • Zuletzt geändert: 2024-06-17 11:05
  • von sca