aboutsummaryrefslogtreecommitdiff
path: root/docs/user_guide/aruco_markers/markers_detection.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/user_guide/aruco_markers/markers_detection.md')
-rw-r--r--docs/user_guide/aruco_markers/markers_detection.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/user_guide/aruco_markers/markers_detection.md b/docs/user_guide/aruco_markers/markers_detection.md
new file mode 100644
index 0000000..886ee69
--- /dev/null
+++ b/docs/user_guide/aruco_markers/markers_detection.md
@@ -0,0 +1,47 @@
+Markers detection
+=================
+
+![Detected markers](../../img/detected_markers.png)
+
+Firstly, the ArUco detector needs to know the expected dictionary and size (in centimeter) of the markers it have to detect.
+
+Notice that extra parameters are passed to detector: see [OpenCV ArUco markers detection parameters documentation](https://docs.opencv.org/4.x/d1/dcd/structcv_1_1aruco_1_1DetectorParameters.html) to know more.
+
+``` python
+from argaze.ArUcoMarkers import ArUcoDetector, ArUcoCamera
+
+# Assuming camera calibration data are loaded
+
+# Loading extra detector parameters
+extra_parameters = ArUcoDetector.DetectorParameters.from_json('./detector_parameters.json')
+
+# Create ArUco detector to track DICT_APRILTAG_16h5 5cm length markers
+aruco_detector = ArUcoDetector.ArUcoDetector(camera=aruco_camera, dictionary='DICT_APRILTAG_16h5', marker_size=5, parameters=extra_parameters)
+```
+
+Here is detector parameters JSON file example:
+
+```
+{
+ "cornerRefinementMethod": 1,
+ "aprilTagQuadSigma": 2,
+ "aprilTagDeglitch": 1
+}
+```
+
+The ArUco detector processes frame to detect markers and allows to draw detection results onto it:
+
+``` python
+# Detect markers into a frame and draw them
+aruco_detector.detect_markers(frame)
+aruco_detector.draw_detected_markers(frame)
+
+# Get corners position into frame related to each detected markers
+for marker_id, marker in aruco_detector.detected_markers.items():
+
+ print(f'marker {marker_id} corners: ', marker.corners)
+
+ # Do something with detected marker i corners
+ ...
+
+```