PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Disparity Maps und "Zauberstab" ?



michigrunf
15.02.2006, 12:59
Hallo,

ich möchte bald mit der Bildverarbeitung in meinem Bot beginnen.
Er soll 2 Webcams bekommen (kann jemand ein Modell empfehlen?) und ich habe nun etwas von Tiefenmaps gehört. Gibt es dafür brauchbare Informationen oder Tutorials? Außerdem fand ich den Zauberstab im Programm PaintShop Pro sehr interessant. Weiß vielleicht jemand wie der funktioniert? HSV Bilder habe ich schon probiert, hat mich aber nicht überzeugt.

zefram
16.02.2006, 06:59
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.

fxlee
26.05.2006, 14:17
Hallo,
das Suchen der korrespondierten Punkten in einem Stereobildpaar ist wie zefram schon angesprochen hat in der Tat schwierig. Vorallem bezüglich Stabilität und Echtzeitfähigkeit. 3D-Rekonstruktionen, Objektverfolgung (hier braucht man Punktekorrespondenz zw. 2 aufeinander folgender Bilder) sind noch immer aktuelle Forschungsthemen. Ein Freund hat ein Echtzeit-System mit 2 Webcams entwickelt, das tief in die 3D Grafik-HW hinein geht. Aber vll gibt es jemand im Forum, der ein brauchbares System entwickelt hat.

Grüße,
Felix