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

Schwellenwert und Histogramm

Nach dieser Lektion: Ich kann mit einem Histogramm einen Schwellenwert wählen und die Pixel über ihm zählen.

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

Wie ein Schwellenwert Objekt und Hintergrund trennt

Ein Schwellenwert (englisch Threshold) teilt die Pixel eines Graubildes in zwei Gruppen: heller als eine gewählte Zahl und nicht heller. So trennt ein Programm ein Objekt vom Hintergrund.

Ein Histogramm zählt, wie viele Pixel zu jedem Grauwert gehören. Mit ihm finden Sie eine Zahl, die wirklich trennt, statt zu raten.

Am Ende dieser Lektion

Notiz

Ich kann mit einem Histogramm einen Schwellenwert wählen und die Pixel über ihm zählen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Schwellenwertein Grauwert, der die Pixel in zwei Gruppen teilt100
Histogrammeine Zählung der Pixel je Gruppe von Grauwerten
Maskeein Bild aus 0 und 1, das ein Objekt markiert
Hintergrundalles im Bild, was kein Objekt ist
Rauschenzufällige kleine Schwankungen der Pixel

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

Ein Histogramm zeigt, wo die Pixel liegen

Man teilt die Grauwerte 0 bis 255 in Gruppen und zählt die Pixel jeder Gruppe. Beim Münzbild nehmen wir vier gleich breite Gruppen und erhalten zwei große Häufungen.

Dunkel liegt der Hintergrund, hell liegen die Münzen. In der Mitte ist fast nichts. Genau dort passt ein Schwellenwert hin.

Beispiel: das Münzbild in vier Grauwert-Gruppen

GrauwertePixelWas dort liegt
0 bis 6363231der Hintergrund
64 bis 1270nichts: die Lücke
128 bis 19113566die Münzen
192 bis 2553fast nichts

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

Pixel über einer Schwelle zählen

Code: python
# Ein kleines Graubild und ein Schwellenwert.
bild = [
    [12, 40, 200, 35],
    [18, 250, 60, 22],
    [10, 30, 45, 15],
]
schwelle = 100
anzahl = 0
for zeile in bild:
    for wert in zeile:
        if wert > schwelle:
            anzahl = anzahl + 1
print("Pixel über der Schwelle:", anzahl)
# Probieren Sie die Schwelle 40 und dann 30.

Drei Schwellenwerte am Münzbild probieren

Das Skript threshold.py gibt englische Wörter aus: keeps heißt behält, pixels of heißt Pixel von. Es probiert die Schwellen 30, 100 und 160 an 76800 Pixeln.

Bei 30 bleiben 58806 Pixel, fast das ganze Bild, denn der Hintergrund schwankt um 35. Bei 100 bleiben 13569, das sind die Münzen. Bei 160 bleiben 10062, die Schwelle schneidet in die Münzen. Es speichert die Maske für 100 als coins_mask.png.

Drei Schwellenwerte vergleichen

Befehl
docker exec jupyter python3 steps/threshold.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.

Eine feste Schwelle scheitert bei ungleichem Licht

Das Bild scan.png ist eine Seite mit Textzeilen, links hell beleuchtet und rechts dunkler. Der Befehl gibt den Mittelwert der linken und der rechten 40 Spalten aus.

Die Ausgabe ist 191.2 155.6. Das Papier ist links also im Mittel heller. Eine Schwelle, die links Text von Papier trennt, trennt rechts womöglich nichts mehr.

Links und rechts vergleichen

Befehl
docker exec jupyter python3 -c "from PIL import Image; import numpy as np; a = np.array(Image.open('images/scan.png')); print(a[:, :40].mean().round(1), a[:, -40:].mean().round(1))"

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

Ein häufiger Fehler

Warnung

Viele denken, der Computer finde den richtigen Schwellenwert von allein. Sie haben 100 gewählt, weil Sie die Lücke im Histogramm gesehen haben. Prüfen Sie jede Maske mit dem Auge, bevor Sie einer Zahl trauen.

Ü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.