Dokumentation
Funktionen
Geometrische Funktionen

3D- und 2D-Geometrie-Funktionen. Mehr ...

Funktionen


Ausführliche Beschreibung

3D- und 2D-Geometrie-Funktionen.

Hier sind alle Funktionen definiert, die sich in die Kategorie Geometrie einordnen lassen. Das sind bisher die dreidimensionalen Vorwärtsschnitte im Raum.


Dokumentation der Funktionen

int resectForward ( const MPTCamera camLeft,
const MPTCamera camRight,
const MPTPoint2d pointsLeft,
const MPTPoint2d pointsRight,
MPTPoint3d pointsWorld,
double *  err,
int  pointCount 
)

Räumlicher Vorwärtsschnitt durch zwei Pixelkoordinaten.

Schießt zwei Strahlen vom Projektionszentrum ausgehend durch zwei Pixelkoordinaten und berechnet den Schnittpunkt der Strahlen. Wird benutzt, um bei der Stereo-Rekonstruktion im letzten Schritt den 3D-Punkt zu berechnen. In dieser Funktion werden ideale Pixelkoordinaten erwartet.

Sollten sich die Kamerastrahlen nicht exakt schneiden (was in der Realität i.A. durch Kalibrierungsfehler immer der Fall ist), so wird der Raumpunkt zurückgegeben, der den kürzesten Abstand zu beiden Strahlen besitzt. Zur Kontrolle der Ergebnisse kann für jedes Punktepaar der Schnittfehler in err abgelesen werden.

Diese Funktion sollte im letzten Schritt der Stereo-Rekonstruktion für alle berechneten korrespondierenden Pixel aufgerufen werden und nicht für jeden Pixel einzeln. Bei der Stereo-Rekonstruktion kann es nicht auftreten, dass zwei Strahlen parallel verlaufen.

Für rektifizierte Koordinaten steht resectForwardRect() zur Verfügung.

Parameter:
camLeftLinke Kamera. Ausgehend von diesem Projektionszentrum werden Strahlen durch die linken Pixel gelegt.
camRightRechte Kamera. Äquivalent werden durch dieses Projektionszentrum Strahlen durch die rechten Pixel gelegt.
pointsLeftIdeale Pixelkoordinaten im linken Bild.
pointsRightZugeghörige ideale Pixelkoordinten im rechten Bild.
pointsWorldBerechnete Raumkoordinaten. Es muss für pointCount Punkte ausreichend Speicher vorhanden sein.
errWenn ungleich NULL wird hier der Schnittfehler für jedes Pixelpaar abgelegt. Das ist der Abstnd der Geraden in mm. Es muss dann für pointCount Werte ausreichend Speicher vorhanden sein.
pointCountAnzahl der übergebenen Pixelpaare.
MPT_API int resectForwardRect ( const MPTCamera camLeft,
const MPTCamera camRight,
const MPTMatrix3x3 matRectLeft,
const MPTMatrix3x3 matRectRight,
const MPTPoint2d pointsLeft,
const MPTPoint2d pointsRight,
MPTPoint3d pointsWorld,
double *  err,
int  pointCount 
)

Räumlicher Vorwärtsschnitt durch zwei rektifizierte Pixelkoordinaten.

Arbeitet exakt wie resectForward() jedoch werden hier rektifizierte Pixelkoordinaten erwartet. Daher ist diese Funktion besonders praktisch, wenn von rektifizierten Koordianten die Korrespondenzen berechnet wurden.

Alternativ zu dieser Funktion kann auch mit einem MPTRectifier - Objekt gearbeitet werden, dann ist resectForwardRectifier() zu verwenden.

Parameter:
camLeftLinke Kamera. Ausgehend von diesem Projektionszentrum werden Strahlen durch die linken Pixel gelegt.
camRightRechte Kamera. Äquivalent werden durch dieses Projektionszentrum Strahlen durch die rechten Pixel gelegt.
matRectLeftRektifizierungsmatrix der linken Kamera. Zu bestimmen mit calcRectification().
matRectRightRektifizierungsmatrix der rechten Kamera. Ebenfalls mit calcRectification() zu bestimmen.
pointsLeftIdeale Pixelkoordinaten im linken Bild.
pointsRightZugeghörige ideale Pixelkoordinten im rechten Bild.
pointsWorldBerechnete Raumkoordinaten. Es muss für pointCount Punkte ausreichend Speicher vorhanden sein.
errWenn ungleich NULL wird hier der Schnittfehler für jedes Pixelpaar abgelegt. Das ist der Abstnd der Geraden in mm. Es muss dann für pointCount Werte ausreichend Speicher vorhanden sein.
pointCountAnzahl der übergebenen Pixelpaare.


Copyright © 2012 Fraunhofer IFF
Version 1.0