Class EssentialNister5
Finds the essential matrix given exactly 5 corresponding points. The approach is described in details in [1] and works by linearlizing the problem then solving for the roots in a polynomial. It is considered one of the fastest and most stable solutions for the 5point problem.
THIS IMPLEMENTATION DOES NOT CONTAIN ALL THE OPTIMIZATIONS OUTLIED IN [1]. A full implementation is quite involved. Example: SVD instead of the proposed QR factorization.
NOTE: This solution could be generalized for an arbitrary number of points. However, it would complicate the algorithm even more and isn't considered to be worth the effort.
[1] David Nister "An Efficient Solution to the FivePoint Relative Pose Problem" Pattern Analysis and Machine Intelligence, 2004

Constructor Summary

Method Summary
Modifier and TypeMethodDescriptionboolean
processNormalized
(List<AssociatedPair> points, DogArray<DMatrixRMaj> solutions) Computes the essential matrix from point correspondences in normalized image coordinates.boolean
processPointing
(List<AssociatedPair3D> points, DogArray<DMatrixRMaj> solutions) Computes the essential matrix from point correspondences represented by pointing vectors

Constructor Details

EssentialNister5
public EssentialNister5()


Method Details

processNormalized
Computes the essential matrix from point correspondences in normalized image coordinates. Parameters:
points
 Input: List of points correspondences in normalized image coordinatessolutions
 Output: Storage for the found solutions. . Returns:
 true for success or false if a fault has been detected

processPointing
Computes the essential matrix from point correspondences represented by pointing vectors Parameters:
points
 Input: List of points correspondences as 3D pointing vectorssolutions
 Output: Storage for the found solutions. . Returns:
 true for success or false if a fault has been detected
