24 #ifndef MARKER_DETECTOR_H
25 #define MARKER_DETECTOR_H
57 virtual Marker *new_M(
double _edge_length = 0,
int _res = 0,
double _margin = 0) = 0;
58 virtual void _markers_clear() = 0;
59 virtual void _markers_push_back(
Marker *mn) = 0;
60 virtual size_t _markers_size() = 0;
61 virtual void _track_markers_clear() = 0;
62 virtual void _track_markers_push_back(
Marker *mn) = 0;
63 virtual size_t _track_markers_size() = 0;
64 virtual Marker *_track_markers_at(
size_t i) = 0;
65 virtual void _swap_marker_tables() = 0;
69 std::map<unsigned long, double> map_edge_length;
73 bool detect_pose_grayscale;
97 void SetMarkerSize(
double _edge_length = 1,
int _res = 5,
double _margin = 2);
126 bool visualize =
false,
127 double max_new_marker_error = 0.08,
128 double max_track_error = 0.2,
129 LabelingMethod labeling_method = CVSEQ,
130 bool update_pose =
true);
132 int DetectAdditional(cv::Mat &image,
134 bool visualize =
false,
135 double max_track_error = 0.2);
147 new_M(
double _edge_length = 0,
int _res = 0,
double _margin = 0)
149 return new M(_edge_length, _res, _margin);
158 _markers_push_back(
Marker *mn)
160 markers->push_back(*((M *)mn));
165 return markers->size();
168 _track_markers_clear()
170 track_markers->clear();
173 _track_markers_push_back(
Marker *mn)
175 track_markers->push_back(*((M *)mn));
178 _track_markers_size()
180 return track_markers->size();
183 _track_markers_at(
size_t i)
185 return &track_markers->at(i);
189 _swap_marker_tables()
191 std::vector<M> *tmp_markers = markers;
192 markers = track_markers;
193 track_markers = tmp_markers;
197 std::vector<M> *markers;
198 std::vector<M> *track_markers;
203 markers =
new std::vector<M>;
204 track_markers =
new std::vector<M>;
211 delete track_markers;
This file defines library export definitions, version numbers and build information.
This file implements a camera used for projecting points and computing homographies.
This file implements connected component labeling.
This file implements a collection of functions that are used to visualize lines, contours and corners...
This file implements a parametrized line.
This file implements a marker interface as well as ALVAR markers and ARToolKit markers.
This file implements a parametrized rotation.
This file implements generic utility functions and a serialization interface.
Simple Camera class for calculating distortions, orientation or projections with pre-calibrated camer...
Base class for labeling connected components from binary image.
MarkerDetector for detecting markers of type M
Templateless version of MarkerDetector. Please use MarkerDetector instead.
void SetOptions(bool _detect_pose_grayscale=false)
void SetMarkerSize(double _edge_length=1, int _res=5, double _margin=2)
void TrackMarkersReset()
Clear the markers that are tracked.
void SetMarkerSizeForId(unsigned long id, double _edge_length=1)
int Detect(cv::Mat &image, Camera *cam, bool track=false, bool visualize=false, double max_new_marker_error=0.08, double max_track_error=0.2, LabelingMethod labeling_method=CVSEQ, bool update_pose=true)
Detect Marker 's from image
void TrackMarkerAdd(int id, PointDouble corners[4])
Add markers to be tracked Sometimes application or e.g. the MultiMarker implementation knows more abo...
Basic 2D Marker functionality.
ALVAR_EXPORT Point< cv::Point2d > PointDouble
The default double point type.