diff --git a/algorithm/sv_algorithm_base.cpp b/algorithm/sv_algorithm_base.cpp index e059fe7..1745559 100644 --- a/algorithm/sv_algorithm_base.cpp +++ b/algorithm/sv_algorithm_base.cpp @@ -80,6 +80,12 @@ ArucoDetector::ArucoDetector() } +void ArucoDetector::getIdsWithLengths(std::vector& ids_, std::vector& lengths_) +{ + ids_ = this->_ids_need; + lengths_ = this->_lengths_need; +} + void ArucoDetector::_load() { JsonValue all_value; diff --git a/include/sv_algorithm_base.h b/include/sv_algorithm_base.h index 1e17993..249ffdd 100644 --- a/include/sv_algorithm_base.h +++ b/include/sv_algorithm_base.h @@ -46,6 +46,7 @@ class ArucoDetector : public CameraAlgorithm public: ArucoDetector(); void detect(cv::Mat img_, TargetsInFrame& tgts_); + void getIdsWithLengths(std::vector& ids_, std::vector& lengths_); private: void _load(); bool _params_loaded; diff --git a/include/sv_video_base.h b/include/sv_video_base.h index 55e1519..64fd2cd 100644 --- a/include/sv_video_base.h +++ b/include/sv_video_base.h @@ -128,6 +128,7 @@ public: bool getBox(Box& b); bool getAruco(int& id, std::vector &corners); + bool getAruco(int& id, std::vector &corners, cv::Vec3d &rvecs, cv::Vec3d &tvecs); bool getEllipse(double& xc_, double& yc_, double& a_, double& b_, double& rad_); std::string getJsonStr(); diff --git a/video_io/sv_video_base.cpp b/video_io/sv_video_base.cpp index 3a78973..e7530ad 100644 --- a/video_io/sv_video_base.cpp +++ b/video_io/sv_video_base.cpp @@ -588,6 +588,15 @@ bool Target::getAruco(int& id, std::vector &corners) return this->has_aruco; } +bool Target::getAruco(int& id, std::vector &corners, cv::Vec3d &rvecs, cv::Vec3d &tvecs) +{ + id = this->_a_id; + corners = this->_a_corners; + rvecs = this->_a_rvecs; + tvecs = this->_a_tvecs; + return this->has_aruco; +} + bool Target::getBox(Box& b) { b = this->_b_box;