Ocean
TestNonLinearOptimizationTransformation.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  */
7 
8 #ifndef META_OCEAN_TEST_TESTGEOMETRY_TEST_NON_LINEAR_OPTIMIZATION_TRANSFORMATION_H
9 #define META_OCEAN_TEST_TESTGEOMETRY_TEST_NON_LINEAR_OPTIMIZATION_TRANSFORMATION_H
10 
12 
14 
15 #include "ocean/math/AnyCamera.h"
16 
17 namespace Ocean
18 {
19 
20 namespace Test
21 {
22 
23 namespace TestGeometry
24 {
25 
26 /**
27  * This class implements the tests of the non linear optimization functions for transformations.
28  * @ingroup testgeometry
29  */
30 class OCEAN_TEST_GEOMETRY_EXPORT TestNonLinearOptimizationTransformation
31 {
32  public:
33 
34  /**
35  * Tests the non linear optimization function.
36  * @param testDuration Number of seconds for each test, with range (0, infinity)
37  * @param worker Optional worker object
38  * @return True, if the entire function test has succeeded
39  */
40  static bool test(const double testDuration, Worker* worker);
41 
42  /**
43  * Tests the non linear optimization function for a 6-DOF object transformation with fisheye camera.
44  * @param testDuration Number of seconds for each test, with range (0, infinity)
45  * @return True, if succeeded
46  */
47  static bool testNonLinearOptimizationObjectTransformation(const double testDuration);
48 
49  /**
50  * Tests the non linear optimizations function for a 6-DOF transformation with fisheye camera, with specified poses and correspondences.
51  * @param camera The camera model to be used, must be valid
52  * @param poses The number of camera poses, with range [2, infinity)
53  * @param correspondences The number of point correspondences, with range [5, infinity)
54  * @param testDuration Number of seconds for each test, with range (0, infinity)
55  * @return True, if succeeded
56  */
57  static bool testNonLinearOptimizationObjectTransformation(const AnyCamera& camera, const unsigned int poses, const unsigned int correspondences, const double testDuration);
58 
59  /**
60  * Tests the non linear optimization function for a 6-DOF object transformation with stereo fisheye camera.
61  * @param testDuration Number of seconds for each test, with range (0, infinity)
62  * @return True, if succeeded
63  */
64  static bool testNonLinearOptimizationObjectTransformationStereo(const double testDuration);
65 
66  /**
67  * Tests the non linear optimizations function for a 6-DOF transformation with stereo fisheye camera, with specified poses and correspondences.
68  * @param cameraA The first camera model to be used, must be valid
69  * @param cameraB The second camera model to be used, must be valid
70  * @param poses The number of camera poses, with range [2, infinity)
71  * @param correspondences The number of point correspondences, with range [5, infinity)
72  * @param testDuration Number of seconds for each test, with range (0, infinity)
73  * @return True, if succeeded
74  */
75  static bool testNonLinearOptimizationObjectTransformationStereo(const AnyCamera& cameraA, const AnyCamera& cameraB, const unsigned int poses, const unsigned int correspondences, const double testDuration);
76 };
77 
78 }
79 
80 }
81 
82 }
83 
84 #endif // META_OCEAN_TEST_TESTGEOMETRY_TEST_NON_LINEAR_OPTIMIZATION_TRANSFORMATION_H
This class implements the abstract base class for all AnyCamera objects.
Definition: AnyCamera.h:130
This class implements the tests of the non linear optimization functions for transformations.
Definition: TestNonLinearOptimizationTransformation.h:31
static bool testNonLinearOptimizationObjectTransformationStereo(const double testDuration)
Tests the non linear optimization function for a 6-DOF object transformation with stereo fisheye came...
static bool testNonLinearOptimizationObjectTransformationStereo(const AnyCamera &cameraA, const AnyCamera &cameraB, const unsigned int poses, const unsigned int correspondences, const double testDuration)
Tests the non linear optimizations function for a 6-DOF transformation with stereo fisheye camera,...
static bool testNonLinearOptimizationObjectTransformation(const AnyCamera &camera, const unsigned int poses, const unsigned int correspondences, const double testDuration)
Tests the non linear optimizations function for a 6-DOF transformation with fisheye camera,...
static bool test(const double testDuration, Worker *worker)
Tests the non linear optimization function.
static bool testNonLinearOptimizationObjectTransformation(const double testDuration)
Tests the non linear optimization function for a 6-DOF object transformation with fisheye camera.
This class implements a worker able to distribute function calls over different threads.
Definition: Worker.h:33
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15