Ocean
TestCVSegmentation.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_TESTCV_TESTSEGMENTATION_TESTCVSEGMENTATION_H
9 #define META_OCEAN_TEST_TESTCV_TESTSEGMENTATION_TESTCVSEGMENTATION_H
10 
12 
13 namespace Ocean
14 {
15 
16 namespace Test
17 {
18 
19 namespace TestCV
20 {
21 
22 namespace TestSegmentation
23 {
24 
25 /**
26  * @ingroup testcv
27  * @defgroup testcvsegmentation Ocean Test CV Segmentation Library
28  * @{
29  * The Ocean Test CV Segmentation Library provides several function to test the performance and validation of the computer vision segmentation functionalities.
30  * The library is platform independent.
31  * @}
32  */
33 
34 /**
35  * @namespace Ocean::Test::TestCV::TestSegmentation Namespace of the CV Segmentation Test library.<p>
36  * The Namespace Ocean::Test::TestCV::TestSegmentation is used in the entire Ocean CV Segmentation Test Library.
37  */
38 
39 // Defines OCEAN_TEST_CV_SEGMENTATION_EXPORT for dll export and import.
40 #if defined(_WINDOWS) && defined(OCEAN_RUNTIME_SHARED)
41  #ifdef USE_OCEAN_TEST_CV_SEGMENTATION_EXPORT
42  #define OCEAN_TEST_CV_SEGMENTATION_EXPORT __declspec(dllexport)
43  #else
44  #define OCEAN_TEST_CV_SEGMENTATION_EXPORT __declspec(dllimport)
45  #endif
46 #else
47  #define OCEAN_TEST_CV_SEGMENTATION_EXPORT
48 #endif
49 
50 /**
51  * Tests the entire Computer Vision Segmentation library.
52  * @param testDuration Number of seconds for each test, with range (0, infinity)
53  * @param worker The worker object to distribute some computation on as many CPU cores as defined in the worker object
54  * @param width The width of the test frame in pixel, with range [32, infinity)
55  * @param height The height of the test frame in pixel, with range [32, infinity)
56  * @param testFunctions Optional name of the functions to be tested
57  * @return True, if the entire test succeeded
58  * @ingroup testcvsegmentation
59  */
60 OCEAN_TEST_CV_SEGMENTATION_EXPORT bool testCVSegmentation(const double testDuration, Worker& worker, const unsigned int width = 1280u, const unsigned int height = 720u, const std::string& testFunctions = std::string());
61 
62 /**
63  * Tests the entire Computer Vision Segmentation library.
64  * This function returns directly as the actual test is invoked in an own thread.<br>
65  * Use this function in intendet for non-console applications like e.g., mobile devices.
66  * @param testDuration Number of seconds for each test, with range (0, infinity)
67  * @param width The width of the test frame in pixel, with range [32, infinity)
68  * @param height The height of the test frame in pixel, with range [32, infinity)
69  * @param testFunctions Optional name of the functions to be tested
70  * @ingroup testcvadvanced
71  */
72 OCEAN_TEST_CV_SEGMENTATION_EXPORT void testCVSegmentationAsynchron(const double testDuration, const unsigned int width = 1280u, const unsigned int height = 720u, const std::string& testFunctions = std::string());
73 
74 }
75 
76 }
77 
78 }
79 
80 }
81 
82 #endif // META_OCEAN_TEST_TESTCV_TESTSEGMENTATION_TESTCVSEGMENTATION_H
This class implements a worker able to distribute function calls over different threads.
Definition: Worker.h:33
OCEAN_TEST_CV_SEGMENTATION_EXPORT void testCVSegmentationAsynchron(const double testDuration, const unsigned int width=1280u, const unsigned int height=720u, const std::string &testFunctions=std::string())
Tests the entire Computer Vision Segmentation library.
OCEAN_TEST_CV_SEGMENTATION_EXPORT bool testCVSegmentation(const double testDuration, Worker &worker, const unsigned int width=1280u, const unsigned int height=720u, const std::string &testFunctions=std::string())
Tests the entire Computer Vision Segmentation library.
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15