-
Notifications
You must be signed in to change notification settings - Fork 5
/
openvslam_api.hpp
77 lines (63 loc) · 1.82 KB
/
openvslam_api.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifdef RUN_SLAM
#ifndef OPENVSLAM_API_HPP
#define OPENVSLAM_API_HPP
#include <memory>
#include <mutex>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
/**
* @class OpenVSLAM_API
* @brief API for OpenVSLAM
*/
class OpenVSLAM_API{
public:
/**
* @brief Constructor
* @param [in] run reference to a bool that is set to off when the Tello object destructor is called
* @param [in] config_file_path path to camera configuration file
* @param [in] vocab_file_path path to vocabulary file
* @param [in] load_map_db_path path and file name from which the map must be loaded
* @param [in] save_map_db_path path and file name to which the map must be saved
* @param [in] mask_img_path path to pattern mask input images
* @param [in] load_map bool for whether the map should be loaded
* @param [in] continue_mapping continue adding to the map even when a map has been loaded
* @param [in] scale scale for SLAM
* @return none
*/
OpenVSLAM_API(bool& run,
const std::string config_file_path,
const std::string vocab_file_path,
const std::string load_map_db_path,
const std::string save_map_db_path,
const std::string mask_img_path,
bool load_map,
bool continue_mapping,
float scale);
/**
* @brief Destructor
* @return none
*/
~OpenVSLAM_API();
/**
* @brief add frame to queue for frames to be processed for SLAM
* @param [in] new_frame input image
* @return void
*/
void addFrameToQueue(cv::Mat new_frame);
/**
* @brief start monocular SLAM processing
* @return void
*/
void startMonoThread();
/**
* @brief get mutex for displaying images to multiple opencv windows
* @return std::mutex reference to the frame_display_sync mutex
* @details <details>
*/
std::mutex& getMutex();
private:
class impl;
std::unique_ptr<impl> openvslam_impl;
};
#endif
#endif