Dokumentation
Funktionen
Funktionen zur Rektifizierung von Stereo-Aufnahmen

Funktionen


Dokumentation der Funktionen

int calcRectification ( const MPTCamera camLeft,
const MPTCamera camRight,
MPTMatrix3x3 rectMatrixLeft,
MPTMatrix3x3 rectMatrixRight 
)

Erstellt zu einem Stereo-Kamera-Paar ein Paar an möglichen Rektifizierungsmatrizen.

Die Erstellten Matrizen berücksichtigen nicht nicht die Verzeichnungsparamter der Kameras. Eine Anwendung ist nur auf entzerrten Pixeln bzw. Koordinaten zulässig.

Die Rektifizierungsmatrizen arbeiten im Pixel-Koordinatensystem, wobei sich eine rektifizierte Pixelkoordinate als einfache homogene Multiplikation mit der Matrix ergibt:

\[ \hat{P}_{rect} = \begin{bmatrix} x_{rect} \\ y_{rect} \\ z_{rect}\end{bmatrix} = R \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}, \\ P_{rect} = \begin{bmatrix} \frac{x_{rect}}{z_{rect}} \\ \frac{y_{rect}}{z_{rect}} \end{bmatrix}, \]

Parameter:
camLeftParameter der linken Kamera.
camRightParameter der rechten Kamera.
rectMatrixLeftLinke Rektifizierungsmatrix.
rectMatrixRightRechte Rektifizierungsmatrix.
Rückgabe:
Immer MPT_NO_ERROR.
Zu beachten:
Für schnelle Entzerrungen und Rektifizierungen in einem Schritt sollte mit einem MPTRectifier gearbeitet werden.
Siehe auch:
createRectifier(), rectifyCoords(), rectifyImage()
int deRectifyCoords ( const MPTMatrix3x3 rect,
const MPTCamera cam,
const MPTPoint2d pointsRect,
MPTPoint2d pointsDerect,
int  pointCount 
)

De-rektifiziert Kamerakoordinaten.

Dies ist die inverse Funktion zu rectifyCoords().

Parameter:
rectMatrix zur Rektifizierung von Pixeln.
camZugehörige Kamera.
pointsRectRektifizierte Quellkoordinaten im mm-Koordinatensystem.
pointsDerectZielkoordinaten. Darf mit den Quellkoordinaten identisch sein.
pointCountAnzahl der zu transformierenden Koordinaten
Rückgabe:
Immer MPT_NO_ERROR.
int deRectifyImage ( const MPTMatrix3x3 rect,
const MPTImage imgRect,
MPTImage imgDeRect 
)

De-rektifiziert ein vollständiges Bild.

Diese Funktion wurde der Vollständigkeit halber in die API mit aufgenommen. Quell- und Zielbild müssen im Graustufenformat vorliegen und identische Auflösungen besitzen.

Parameter:
rectMatrix zur Rektifizierung von Pixeln.
imgDeRectQuellbild, bereits rektifiziert.
imgRectZielbild, nicht rektifiziert. Das Zielbild darf nicht identisch mit dem Quellbild sein.
Rückgabewerte:
MPT_NO_ERRORwenn kein Fehler auftrat
MPT_ERR_IMAGE_GRAY_EXPECTEDwenn das Quellbild nicht im Graustufenformat vorliegt
MPT_ERR_IMAGE_TYPE_MISMATCHwenn das Zielbild nicht im Graustufenformat vorliegt
MPT_ERR_IMAGE_DIM_MISMATCHwenn die Auflösungen von Quell- und Zielbild nicht identisch sind.
int deRectifyPixels ( const MPTMatrix3x3 rect,
const MPTPoint2d pixelsRect,
MPTPoint2d pixelsDeRect,
int  pixelCount 
)

De-rektifiziert Pixel-Koordinaten.

Das ist die Homogene Multiplikation

\[ \hat{P} = R^{-1} \cdot \hat{P}_{rect} \]

Parameter:
rectRektifizierungsmatrix
pixelsRectRektifizierte Quellkoordinaten. Einheit ist Pixel
pixelsDeRectZielkoordinaten: De-rektifiziert und entzerrt. Einheit ist Pixel. Quelle und Ziel dürfen identisch sein.
pixelCountAnzahl der Pixel
Rückgabe:
Immer MPT_NO_ERROR
int rectifyCoords ( const MPTMatrix3x3 rect,
const MPTCamera cam,
const MPTPoint2d pointsDeRect,
MPTPoint2d pointsRect,
int  pointCount 
)

Rektifiziert Koordinaten in mm.

Mit dieser Funktion können Koordinaten, die im mm-Koordinatensystem auf dem Chip vorliegen rektifiziert werden. Ausgabe sind ebenfalls wieder Koordinaten im mm-Koordinatensystem. Diese Funktion sollte nicht für Einzelpunkte sondern für größere Mengen an Punkten am Stück aufgerufen werden, da der konstante Zeitfaktor recht hoch ist, die Berechnung für den einzelnen Punkt dafür aber sehr schnell.

Parameter:
rectMatrix zur Rektifizierung von Pixeln.
camZugehörige Kamera.
pointsDeRectQuellkoordinaten im mm-Koordinatensystem.
pointsRectZielkoordinaten. Darf mit den Quellkoordinaten identisch sein.
pointCountAnzahl der zu transformierenden Koordinaten
Rückgabe:
Immer MPT_NO_ERROR.
Siehe auch:
deRectifyCoords(), rectifyPixels()
int rectifyImage ( const MPTMatrix3x3 rect,
const MPTImage imgDeRect,
MPTImage imgRect 
)

Rektifiziert ein vollständiges Bild.

Mit dieser funktion lässt sich beispielsweise optisch prüfen, ob eine berechnete Rektifizierungsmatrix korrekt ist. Quell- und Zielbild müssen im Graustufenformat vorliegen und identische Auflösungen besitzen.

Parameter:
rectMatrix zur Rektifizierung von Pixeln.
imgDeRectQuellbild.
imgRectZielbild. Das Zielbild darf nicht identisch mit dem Quellbild sein.
Rückgabewerte:
MPT_NO_ERRORwenn kein Fehler auftrat
MPT_ERR_IMAGE_GRAY_EXPECTEDwenn das Quellbild nicht im Graustufenformat vorliegt
MPT_ERR_IMAGE_TYPE_MISMATCHwenn das Zielbild nicht im Graustufenformat vorliegt
MPT_ERR_IMAGE_DIM_MISMATCHwenn die Auflösungen von Quell- und Zielbild nicht identisch sind.
int rectifyPixels ( const MPTMatrix3x3 rect,
const MPTPoint2d pixelsDeRect,
MPTPoint2d pixelsRect,
int  pixelCount 
)

Rektifiziert Pixelkoordinaten.

Das ist die gewöhnliche Matrix-Multiplikation $ P_{rect} = M_{rect} \dot P_{derect} $. Die zu transformierenden Punkte müssen in Pixelkoordinaten vorliegen.

Diese Fiunktion sollte mit größeren Punktemengen aufgerufen werden.

Parameter:
rectMatrix zur Rektifizierung von Pixeln.
pixelsDeRectPixelkoordinaten zur Rektifizierung
pixelsRectErgebnis. Rektifizierte Pixel. Darf identisch sein mit pixelsDerect
pixelCountAnzahl der Pixel
Rückgabe:
Immer MPT_NO_ERROR
Siehe auch:
rectifyImage(), deRectifyPixels()


Copyright © 2012 Fraunhofer IFF
Version 1.0