Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Farbbild in Graustufen umwandeln

Nach dieser Lektion: Ich kann ein Farbbild mit gewichteten Kanälen in ein Graubild umrechnen.

Lektion, 60 Min.2 BefehleComputer-Vision-Lab: Pixel, Schwellenwerte und Objekte zählen in JupyterLab

Wie aus Farbe ein Grauwert wird

Ein Graubild hat pro Pixel nur eine Zahl, die Helligkeit. Wer ein Farbbild in Graustufen umwandelt, wirft die Farbe weg und behält das Helle und das Dunkle.

Das ist fast immer der erste Schritt, bevor ein Programm Schwellen, Kanten oder Objekte sucht. Hier lernen Sie, wie aus Rot, Grün und Blau eine einzige Zahl wird.

Am Ende dieser Lektion

Notiz

Ich kann ein Farbbild mit gewichteten Kanälen in ein Graubild umrechnen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Graustufenein Bild mit einer Helligkeitszahl je Pixel
Luminanzdie Helligkeit eines Pixels, wie das Auge sie sieht
Gewichteine Zahl, die angibt, wie stark ein Kanal zählt0,587
Kanaleine Ebene aus Zahlen, zum Beispiel Grün
Mittelwertdie Summe geteilt durch die Anzahl

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Warum zählt Grün mehr als Blau?

Der erste Gedanke ist der Mittelwert: Rot, Grün und Blau addieren und durch drei teilen. Das Auge sieht aber ein reines Grün viel heller als ein reines Blau.

Deshalb gewichtet man die Kanäle: Rot mal 0,299, Grün mal 0,587 und Blau mal 0,114. Die drei Gewichte ergeben zusammen 1. Diese Zahl heißt Luminanz.

Beispiel: drei reine Farben, ein Mittelwert, drei Helligkeiten

FarbeKanäle (R, G, B)MittelwertGewichtet
reines Rot255, 0, 08576
reines Grün0, 255, 085150
reines Blau0, 0, 2558529

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Münzpixel in Grau umrechnen

Das Münzpixel (197, 157, 62) rechnet sich so: 0,299 mal 197 ist 58,903. 0,587 mal 157 ist 92,159. 0,114 mal 62 ist 7,068. Die Summe ist 158,130, gerundet 158.

In ganzen Zahlen rechnet man alles mal 1000 und addiert 500 zum Runden. Der Mittelwert dagegen gäbe 139, also deutlich dunkler. Der Befehl zeigt beide Zahlen.

Gewichtet und gemittelt vergleichen

Befehl
docker exec jupyter python3 -c "print((299 * 197 + 587 * 157 + 114 * 62 + 500) // 1000, round((197 + 157 + 62) / 3))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Umrechnung in Python

Code: python
# Zwei Pixel: eine Münze und der Hintergrund.
pixel_liste = [[197, 157, 62], [35, 35, 35]]
for pixel in pixel_liste:
    rot = pixel[0]
    gruen = pixel[1]
    blau = pixel[2]
    # Ganze Zahlen: mal 1000 gerechnet, +500 zum Runden.
    grau = (299 * rot + 587 * gruen + 114 * blau + 500) // 1000
    print(pixel, "wird", grau)
# Ändern Sie das erste Pixel in [0, 255, 0] und starten Sie erneut.

Das Skript grey.py wandelt das Münzbild um

Das Skript gibt englische Wörter aus: colour mode ist der Farbmodus, grey mode der Grau-Modus, pixels from heißt Pixel von. L ist der Modus für ein Grau mit einem Kanal.

Es zeigt das Münzpixel in Farbe (197, 157, 62) und in Grau, 158. Dann zählt es die Pixel in vier Bändern. Von 0 bis 63 sind es 63231 und von 64 bis 127 keines. Von 128 bis 191 sind es 13566 und von 192 bis 255 sind es 3. Die Summe ist 76800.

Das Münzbild in Grau umwandeln

Befehl
docker exec jupyter python3 steps/grey.py

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was die vier Bänder verraten

Fast alle Pixel liegen in zwei Gruppen: sehr dunkel (der Hintergrund) und hell (die Münzen). Dazwischen liegt eine Lücke, in der kaum ein Pixel steht.

Das Skript speichert auch coins_grey.png. Öffnen Sie die Datei in JupyterLab und vergleichen Sie sie mit dem Farbbild. Die Lücke nutzen wir in der nächsten Lektion.

Ein häufiger Fehler

Warnung

Viele denken, der Mittelwert von Rot, Grün und Blau sei die richtige Helligkeit. Er behandelt aber alle Kanäle gleich. Nutzen Sie die Gewichte, wenn das Grau so hell wirken soll, wie das Auge es sieht.

Über dieses Lab und seinen Quellcode: Computer-Vision-Lab: Pixel, Schwellenwerte und Objekte zählen in JupyterLab

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.