Conscience Core
CscDetectorEngineArucoToObjects.h
Go to the documentation of this file.
1 //
2 // CscDetectorEngineArucoToObjects.hpp
3 // ConscienceRobotManager
4 //
5 // Created by Ilies Zaoui on 15/02/2021.
6 // Copyright © 2021 Conscience Robotics. All rights reserved.
7 //
8 
9 #ifndef CscDetectorEngineArucoToObjects_h
10 #define CscDetectorEngineArucoToObjects_h
11 
15 #include "Util/conscience_log.h"
16 #include <ctime>
17 #include <opencv2/aruco.hpp>
18 #include <opencv2/opencv.hpp>
19 
20 #include <vector>
21 
22 using std::string;
23 using std::vector;
24 
26 
28  public:
29  inline static const string ADDITIONAL_PARAM_OFFSET_TOP = "offsetTop";
30  inline static const string ADDITIONAL_PARAM_OFFSET_RIGHT = "offsetRight";
31  inline static const string ADDITIONAL_PARAM_LOCATE_IN_SCENE = "locateInSimulator";
32 
33  CscDetectorEngineArucoToObjects(const map<int, int> &association, const ptr<cv::aruco::DetectorParameters> parameters, cv::Mat camMatrix, cv::Mat distCoeffs, float markerLength = 0.226, const vector<const CscLocationTag*>& arucoLocations = vector<const CscLocationTag*>(), double angleCamera = 0.0);
34 
35  // find the camera focal
37  const DetectorSourceImage &image, ptr<DetectionParameters> parameters) override;
38 
39  virtual bool equals(CscDetectorEngine *) const override;
40 
41  const vector<const CscLocationTag*>& getArucoTags() const;
42  double getAngleCamera() const;
43  private:
44  unique_ptr<CscLogger> logger = nullptr;
45 
46  mutex detectionMutex;
47 
48  cv::Mat markerImage;
49  map<int, int> association;
50  const vector<const CscLocationTag*> arucoLocations;
51  double angleCamera = 0.0;
52 
53  float markerLength; // .266m Corresponds to the length of an aruco printed on a A3 paper (landscape orientation)
54 
55  cv::Ptr<cv::aruco::DetectorParameters> parameters;
56  cv::Mat camMatrix, distCoeffs;
57  cv::aruco::Dictionary dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::DICT_6X6_250);
58 
59  const bool drawRejected = false;
60 
61  cv::Mat getPreparedImage(cv::Mat &image);
62  };
63 }
64 
65 #endif /* CscDetectorEngineArucoToObjects_hpp */
conscience_log.h
conscience_core::detector_engine::CscDetectorEngineArucoToObjects::detectOnImage
ptr< DetectionResult > detectOnImage(const DetectorSourceImage &image, ptr< DetectionParameters > parameters) override
Definition: CscDetectorEngineArucoToObjects.cpp:42
conscience_core::detector_engine::CscDetectorEngine
Definition: CscDetectorEngine.h:107
conscience_core::detector_engine
Definition: ConscienceVisionDetectorRepository.cpp:30
CscDetectorEngine.h
conscience_core::detector_engine::CscDetectorEngineArucoToObjects::getAngleCamera
double getAngleCamera() const
Definition: CscDetectorEngineArucoToObjects.cpp:240
conscience_core::detector_engine::CscDetectorEngineArucoToObjects::equals
virtual bool equals(CscDetectorEngine *) const override
Definition: CscDetectorEngineArucoToObjects.cpp:244
conscience_core::detector_engine::CscDetectorEngineArucoToObjects
Definition: CscDetectorEngineArucoToObjects.h:27
CscWorldObject.h
conscience_core::detector_engine::CscDetectorEngineArucoToObjects::getArucoTags
const vector< const CscLocationTag * > & getArucoTags() const
Definition: CscDetectorEngineArucoToObjects.cpp:236
conscience_core::detector_engine::CscDetectorEngineArucoToObjects::ADDITIONAL_PARAM_OFFSET_TOP
static const string ADDITIONAL_PARAM_OFFSET_TOP
Definition: CscDetectorEngineArucoToObjects.h:29
conscience_core::detector_engine::DetectorSourceImage
Definition: CscDetectorEngine.h:66
conscience_core::detector_engine::CscDetectorEngineArucoToObjects::ADDITIONAL_PARAM_OFFSET_RIGHT
static const string ADDITIONAL_PARAM_OFFSET_RIGHT
Definition: CscDetectorEngineArucoToObjects.h:30
CscEntityModel.h
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::detector_engine::CscDetectorEngineArucoToObjects::CscDetectorEngineArucoToObjects
CscDetectorEngineArucoToObjects(const map< int, int > &association, const ptr< cv::aruco::DetectorParameters > parameters, cv::Mat camMatrix, cv::Mat distCoeffs, float markerLength=0.226, const vector< const CscLocationTag * > &arucoLocations=vector< const CscLocationTag * >(), double angleCamera=0.0)
Definition: CscDetectorEngineArucoToObjects.cpp:28
conscience_core::detector_engine::CscDetectorEngineArucoToObjects::ADDITIONAL_PARAM_LOCATE_IN_SCENE
static const string ADDITIONAL_PARAM_LOCATE_IN_SCENE
Definition: CscDetectorEngineArucoToObjects.h:31