Bildfilter
Bildbearbeitung ist die Veränderung von Fotos, Negativen, Dias oder digitalen Bildern. Sie ist zu unterscheiden von der Bildverarbeitung, mit deren Hilfe die Inhalte von Bildern verarbeitet werden. Oft wird die Bildbearbeitung dazu angewandt, um Fehler zu beseitigen, die beim Fotografieren oder anderen Bilderfassungen entstehen können. Dazu gehören beispielsweise Über- und Unterbelichtung, Unschärfe, Kontrastschwäche, Bildrauschen oder Rote-Augen-Effekt. Durch diese Fehler wirken Bilder oft zu dunkel, zu hell, zu unscharf oder anderweitig mangelhaft.
Digitale Bilder kann man als zweidimensionales Array von Farbinformationen speichern. Durch Manipulation der Farbinformation oder durch Änderung der Positionen im Array können verschiedene Bildbearbeitungsoperationen realisiert werden.
Digitale Bilder bestehen aus diskreten Pixeln, die Helligkeits- oder Farbwerte repräsentieren. Bildfilter sind algorithmische Verfahren, die diese Werte verändern, um gewünschte visuelle Effekte zu erzeugen.
- Filteralgorithmen verarbeiten Pixelwerte nach bestimmten mathematischen Regeln:
- Punktoperationen: Jedes Pixel wird unabhängig von seinen Nachbarn verändert (z. B. Kanaltausch)
- Lokale Operationen: Benachbarte Pixel werden berücksichtigt (z. B. Weichzeichnen, Kantenfilter)
- globale Operationen: ganzes Bild wird miteinbezogen
Farbbild zu Graustufen
Viele der Algorithmen zur digitalen Bildbearbeitung sind leichter an Graustufen-Bildern nachzuvollziehen. Daher sollte es möglich sein, aus einem Farbbild ein Graustufen-Bild zu berechnen.
Im RGB-Farbmodell muss man aus den drei Farbkomponenten einen Graustufenwert zwischen 0 und 255 ermitteln. Diesen weist man dann allen Farbkomponenten zu. Um den Graustufenwert zu ermitteln, kann man verschiedene Möglichkeiten verwenden, die zu unterschiedlichen Ergebnissen führen. Je nach Anwendungsbereich können aber alle sinnvoll sein.
- Minimum oder Maximum der einzelnen Farbkomponenten.
- Durchschnitt der Farbkomponenten:
-
Natürlicher Eindruck: Unser Auge beurteilt die Helligkeit der einzelnen Farben unterschiedlich, da die Empfindlichkeit der Sinneszellen für die drei Wellenlängen und die Anzahl der Sinneszellen für die einzelnen Farben (z. B. nur 2% erkennen Blau) unterschiedlich ist. Um diesem Rechnung zu tragen, kann man folgende Formel verwenden:
-
Grauwert = 0.299 × Rotanteil + 0.587 × Grünanteil + 0.114 × Blauanteil
Bilderbearbeitung mit Python
Wir kennen nun die passende Datenstruktur, um Bilder zu bearbeiten, nämlich ein Array von Pixeln. Um die räumliche Struktur von einem Bild zu behalten, eignet sich ein 2D-Array besonders gut. Wir wollen nun mit Python ein Bild bearbeiten. Dabei wandeln wir ein Farbbild in ein Graustufenbild um. Dafür verwenden wir eine Programmierbibliothek von Python zur Bildbearbeitung.
Beispiel 1: Bilder mit Python
Wenn wir z.B. drei verschiedene Farben nacheinander zum Zeichnen verwenden wollen:
Question
Ändere ein paar weitere Pixel.
Beispiel 2: Alle Pixel ändern
Wenn wir nun alle Pixel ändern wollen, brauchen wir eine Schleife. Das folgende Programm addiert zu jedem Farbkanal den Wert 40. Was passiert?
Ändere die Variable konstante zu positiven oder negativen Zahlen.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Graustufen mit Python
Nun wollen wir einmal versuchen das farbige Bild in ein Graustufenbild umzuwandeln. Dazu können wir die folgende Formel anwenden: - Grauwert = 0.299 × Rotanteil + 0.587 × Grünanteil + 0.114 × Blauanteil Wir geben allen Kanälen den gleichen Grauwert.
Question
Ändere das Farbige Bild in ein Graustufenbild um, mit der Formel: Grauwert = 0.299 × Rotanteil + 0.587 × Grünanteil + 0.114 × Blauanteil
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Farbanpassungen
Die Umwandlung der Bilder in Graustufen- oder Schwarz-Weiß-Bilder ist eine erste Form der Farbanpassung. In der Regel werden Farbanpassungen aber durchgeführt, um die Qualität der Bilder zu verbessern. Es gibt z. B. auch Bildfilter, welche direkt auf den Farbkanälen operieren.
Farbkanäle tauschen
Tauscht man die Intensitäten der einzelnen Farbkomponenten kann man auch schöne Effekte erreichen.
Question
Versuche einmal die ganzen Farbkanäle zu tauschen. Also dort wo ursprünglich z. B. Blau war, wird es jetzt Rot sein usw.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Allgemeine Farbanpassung
Um eine Verbesserung der Bildqualität im RGB-Farbraum nach optischer Einschätzung vornehmen zu können, können die einzelnen Farbkomponenten mit jeweils mit einem eigenen Faktor multipliziert werden, den der Benutzer wählt. Dies führt zu einer Verstärkung oder Abschwächung einzelner Komponenten.
Question
- Reduziere den Blauanteil des Bilds in dem du den Blauenkanal mit 0.7 multiplizierst.
- Beschreibe die Wirkung
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Weichzeichnen
Beim Weichzeichnen ist das Ziel, starke Schwankungen in der Intensität auszugleichen. Dadurch verschwimmen feine Strukturen
Question
- Variiere den Parameter von
BoxBlur. - Beschreibe die Wirkung.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Bonus
Question
- Was macht dieses Programm?
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
# Tests(Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)