Hallo,
zum Thema Disparity:
Zwei nebeneinander stehende Kameras bilden ein und denselben Weltpunkt auf unterschiedliche Bildkoordinaten ab, einfach aufgrund des etwas anderen Blickpunkts. Den Unterschied in den Bildkoordinaten nennt man englisch "Disparity" oder deutsch Disparität bzw. Versatz.
Eine Disparity Map ist nun einfach ein Feld mit den selben Dimensionen wie ein Kamerabild. Jeder Pixel (x,y) in diesem Feld enthält die Disparität zwischen dem Punkt (x,y) in Bild 1 und dem zugehörigen Punkt (x',y') in Bild2.
Grundsätzlich gilt: Je weiter ein Weltpunkt von den beiden Kameras entfernt ist, desto geringer die auftretende Disparität. Sind einige Informationen über die Kameras bekannt, kann man aus der Disparität einfach die Entfernung des Weltpunktes von den Kameras berechnen.
Um die Disparität zu bestimmen, kannn man so vorgehen:
1. Suche in beiden Bildern nach markanten Punkten (z.B. mit Harris Corner Detector)
2. Für jeden gefundenen markanten Punkt (x,y) aus dem linken Bild Suche den zugehörigen Partner (x',y') im rechten Bild.
3. Die Länge des Vectors (x,y)-(x',y') ist die gesuchte Disparität.
Schritt 1 und 3 sind einfach. Schritt 2 ist schwer. Noch vergleichsweise einfach zu implementieren ist eine Zuordnung über die Korrelation der Nachbarschaften von (x,y) und den in Frage kommenden Kandidaten (x',y') aus Bild 2. Sind die Kameras exakt parallel ausgerichtet (d.h. ihre Bildebenen liegen in einer gemeinsamen Ebene) vereinfacht sich die Suche etwas. Denn dann wirkt sich die Disparität nur auf die x-Koordinate aus. Die y-Koordinate bleibt konstant (sagen wir mal +-1 Pixel). Wir suchen also den Punkt (x',y'), für den y' == y und die Korrelation der Nachbarschaften maximal wird.
Lesezeichen