Ocean
|
This class implements self-calibration for multiple views. More...
Static Public Member Functions | |
static bool | findCommonIntrinsicsFromProjectionMatricesIF (const ConstIndexedAccessor< HomogenousMatrix4 > &iFlippedProjectionMatrices, SquareMatrix3 &cameraIntrinsics, SquareMatrix4 *Q=nullptr, SquareMatrix3 *omega=nullptr) |
Estimate the common intrinsic camera matrix based on an Absolute Conic omega (ω): omega = K * K^T — (ω_j = ω = KK^T). More... | |
static bool | findCommonIntrinsicsFromProjectionMatricesIF (const ConstIndexedAccessor< HomogenousMatrix4 > &iFlippedProjectionMatrices, const unsigned int imageWidth, const unsigned int imageHeight, SquareMatrix3 &cameraIntrinsics, SquareMatrix4 *Q=nullptr, SquareMatrix3 *omega=nullptr) |
Estimate a common intrinsic camera matrix based on an Absolute Conic ω: ω_j = ω = KK^T. More... | |
static bool | determineAbsoluteDualQuadricLinearIF (const ConstIndexedAccessor< HomogenousMatrix4 > &iFlippedProjectionMatrices, SquareMatrix4 &matrixQ, const unsigned int imageWidth, const unsigned int imageHeight, bool equalFxFy=true) |
Estimates the absolute dual quadric Q_infinity (Q∞) from several projection-pose matrices by solving a linear system: omega = P_j * Q_infinity * P_j^T — (ω_j = P_j * Q∞ * P_j^T). More... | |
static bool | intrinsicsFromAbsoluteDualQuadricIF (const SquareMatrix4 &symmetricQ, const ConstIndexedAccessor< HomogenousMatrix4 > &iFlippedProjectionMatrices, SquareMatrix3 *intrinsics) |
Determines individual intrinsic camera matrices from a known absolute dual quadric Q_infinity (Q∞) and corresponding camera-projection-pose matrices: omega_j = P_j * Q_infinity * P_J^T = K_j * K_j^T — (ω_j = P_j * Q∞ * P_J^T = K_j * K_j^T). More... | |
static bool | transformProjectiveToMetricIF (const SquareMatrix4 &Q, const ConstIndexedAccessor< HomogenousMatrix4 > &iFlippedProjectionMatrices, HomogenousMatrix4 *iFlippedMetricProjectionMatrices, SquareMatrix4 *transformation=nullptr) |
Transforms a projective reconstruction towards a metric reconstruction. More... | |
static bool | metricProjectionMatricesToPosesIF (const ConstIndexedAccessor< HomogenousMatrix4 > &metricProjectionsIF, const SquareMatrix3 &intrinsic, HomogenousMatrix4 *posesIF) |
Decomposes metric camera projection matrices all containing/sharing the same known camera matrix (intrinsic camera matrix) into (inverted and flipped) camera poses simply by applying the inverted intrinsic matrix. More... | |
Static Protected Member Functions | |
static bool | transformProjectionsZeroPrinciplePoint (const ConstIndexedAccessor< HomogenousMatrix4 > &iFlippedProjectionMatrices, const unsigned int imageWidth, const unsigned int imageHeight, HomogenousMatrix4 *iFlippedNormalizedProjectionMatrices, SquareMatrix3 *backTransformation=nullptr) |
Transforms an inverted and flipped camera projection matrix P = K * [R|t] in a way that the principle point of the camera profile (the camera intrinsics) is zero. More... | |
static bool | getTransformProjectiveToMetricMatrix (const SquareMatrix4 &Q, SquareMatrix4 &transformation) |
Determines the perspective transformation to get a metric reconstruction. More... | |
Static Private Member Functions | |
static bool | upperTriangleCholeskyDecomposition (const SquareMatrix3 &omega, SquareMatrix3 &cameraIntrinsic) |
Performs the decomposition of an absolute conic omega (ω) into the intrinsic camera matrix: omega = K * K^T — (ω = K * K^T), where K is the camera matrix (which is a upper triangular matrix). More... | |
static Matrix | createLinearSystemForAbsoluteDualQuadric (const unsigned int omegaRowIndex, const unsigned int omegaColumnIndex, const HomogenousMatrix4 &iFlippedProjectionMatrix) |
Creates a line for the linear system for the zero condition of absolute conic ω(i, j). More... | |
This class implements self-calibration for multiple views.
|
staticprivate |
Creates a line for the linear system for the zero condition of absolute conic ω(i, j).
The line contains values of the upper triangle entities of absolute dual quadric matrix Q_infinity — (Q∞): ω(i, j) = [P * Q∞ * P^T](i, j) = 0
omegaRowIndex | Row index of absolute conic ω |
omegaColumnIndex | Column index of absolute conic ω |
iFlippedProjectionMatrix | The inverted and flipped camera projection matrix, must be valid |
|
static |
Estimates the absolute dual quadric Q_infinity (Q∞) from several projection-pose matrices by solving a linear system:
omega = P_j * Q_infinity * P_j^T — (ω_j = P_j * Q∞ * P_j^T).
Here, we assume no skew and the principle point in the center of the camera frame.
iFlippedProjectionMatrices | The inverted and flipped camera projection matrices [K | P0], [K | P1], [K | P2], ..., with Pi = [Ri | ti], at least 3 |
matrixQ | Resulting absolute dual quadric Q_infinity — (Q∞) |
imageWidth | Width of the camera frame in pixel, with range [1, infinity) |
imageHeight | Height of the camera frame in pixel, with range [1, infinity) |
equalFxFy | Forces equal focal length in both dimension |
|
static |
Estimate a common intrinsic camera matrix based on an Absolute Conic ω:
ω_j = ω = KK^T.
Solve a linear system by assuming zero skew, a known principle point (centered in the camera frame) and equal focal length for each ω
iFlippedProjectionMatrices | Inverted and flipped camera projection matrices [K | P0], [K | P1], [K | P2], ..., with Pi = [Ri | ti], at least 3 |
imageWidth | Width of the camera frame in pixel, with range [1, infinity) |
imageHeight | Height of the camera frame in pixel, with range [1, infinity) |
cameraIntrinsics | Resulting camera intrinsics matrix |
Q | Resulting absolute dual quadric Q∞, optionally |
omega | Resulting absolute conic &omega, optionally |
|
static |
Estimate the common intrinsic camera matrix based on an Absolute Conic omega (ω):
omega = K * K^T — (ω_j = ω = KK^T).
Solve a linear system by assuming equal entities in each ω
iFlippedProjectionMatrices | The inverted and flipped camera projection matrices [K * P0], [K * P1], [K * P2], ..., with Pi = [Ri | ti], at least 3 |
cameraIntrinsics | Resulting intrinsic camera matrix |
Q | Optional resulting absolute dual quadric Q∞ |
omega | Optional resulting absolute conic &omega |
|
staticprotected |
Determines the perspective transformation to get a metric reconstruction.
Q∞ = H * Î * H^T, factorized by eigen decomposition.
Q | Absolute dual quadric Q∞ |
transformation | Resulting perspective transformation H |
|
static |
Determines individual intrinsic camera matrices from a known absolute dual quadric Q_infinity (Q∞) and corresponding camera-projection-pose matrices:
omega_j = P_j * Q_infinity * P_J^T = K_j * K_j^T — (ω_j = P_j * Q∞ * P_J^T = K_j * K_j^T).
The Cholesky decomposition is applied to factorize omega into K.
symmetricQ | The absolute dual quadric q_infinity which is symmetric |
iFlippedProjectionMatrices | The inverted and flipped camera projection pose matrices |
intrinsics | The resulting intrinsic camera matrices, one for each projection pose matrix |
|
static |
Decomposes metric camera projection matrices all containing/sharing the same known camera matrix (intrinsic camera matrix) into (inverted and flipped) camera poses simply by applying the inverted intrinsic matrix.
Based on the following equation: P_metric = K * [R t] we can determine the camera poses by: [R t] = K^-1 * p_metric.
metricProjectionsIF | The inverted and flipped metric camera projection matrices |
intrinsic | The already known intrinsic camera matrix K |
posesIF | The resulting inverted and flipped camera poses, one for each given camera projection matrix |
|
staticprotected |
Transforms an inverted and flipped camera projection matrix P = K * [R|t] in a way that the principle point of the camera profile (the camera intrinsics) is zero.
P' = T * P.
iFlippedProjectionMatrices | Inverted and flipped camera projection matrices, at least one |
imageWidth | Width of image in pixel, with range [1, infinity) |
imageHeight | Height of image in pixel, with range [1, infinity) |
iFlippedNormalizedProjectionMatrices | Resulting normalized inverted and flipped camera projection matrices, one for each given camera projection matrix |
backTransformation | Optional resulting back transformation matrix T^-1 |
|
static |
Transforms a projective reconstruction towards a metric reconstruction.
Q∞ = H * Î * H^T.
P_metric = P * H.
Q | Absolute dual quadric Q∞ |
iFlippedProjectionMatrices | The camera projection matrices (inverted flipped) |
iFlippedMetricProjectionMatrices | Resulting metric projection matrices (inverted flipped) |
transformation | Optional resulting perspective transformation matrix |
|
staticprivate |
Performs the decomposition of an absolute conic omega (ω) into the intrinsic camera matrix:
omega = K * K^T — (ω = K * K^T), where K is the camera matrix (which is a upper triangular matrix).
The Cholesky decomposition is applied.
omega | The (symmetric) absolute conic to be decomposed (ω) |
cameraIntrinsic | The resulting intrinsic camera matrix |