A.R.G.U.S 2.1.0
Adaptive Real-Time Guardian for Unsafe Situations
Loading...
Searching...
No Matches
VisionProcessor.hpp
Go to the documentation of this file.
1
25#pragma once
26
27#include <opencv2/opencv.hpp>
28#include <opencv2/objdetect/aruco_detector.hpp> // Requires OpenCV >= 4.7
29#include <chrono>
30#include <vector>
31
32#include "Types.hpp"
33#include "VisionConfig.hpp"
34
35
37public:
38
39 // Construction
40
57 explicit VisionProcessor(const VisionConfig& config);
58
59 // Core Interface
60
86 const cv::Mat& frame,
87 std::chrono::steady_clock::time_point captureTimestamp);
88
98 void updateConfig(const VisionConfig& newConfig);
99
100private:
101
102 // Configuration
103
110 VisionConfig config_;
111
112 // Reserved marker-detection members (currently inactive on this branch)
113 //
114 // Kept only for compatibility with marker-based configurations.
115
124 cv::aruco::Dictionary dictionary_;
125
132 cv::aruco::DetectorParameters detectorParams_;
133
141 cv::aruco::ArucoDetector detector_;
142
143 // Reserved inter-frame members from marker pipeline (currently inactive)
144
148 cv::Point2f previousPosition_;
149
153 bool hasPrevious_ = false;
154
158 std::chrono::steady_clock::time_point lastTimestamp_{};
159
163 mutable std::vector<std::vector<cv::Point2f>> rejected_;
164};
Shared data types passed between ARGUS pipeline components.
Configuration parameters for the VisionProcessor.
SafetyResult process(const cv::Mat &frame, std::chrono::steady_clock::time_point captureTimestamp)
Processes a single camera frame and evaluates tool safety.
void updateConfig(const VisionConfig &newConfig)
Updates the safety configuration at runtime.
Output of VisionProcessor::process() for each camera frame.
Definition Types.hpp:51
All tunable safety thresholds and zone boundaries for VisionProcessor.