aboutsummaryrefslogtreecommitdiff
path: root/docs/user_guide/aruco_markers_pipeline
diff options
context:
space:
mode:
authorThéo de la Hogue2023-09-26 17:39:10 +0200
committerThéo de la Hogue2023-09-26 17:39:10 +0200
commit6af30f98e4d8c89e4602c4048622ce5e66dbe774 (patch)
tree23618b9c533fb69ba1d62f2b1e54fced281823a7 /docs/user_guide/aruco_markers_pipeline
parent433e68397d3fcb7d3c9ab07e1fa0a8edc0c4e583 (diff)
downloadargaze-6af30f98e4d8c89e4602c4048622ce5e66dbe774.zip
argaze-6af30f98e4d8c89e4602c4048622ce5e66dbe774.tar.gz
argaze-6af30f98e4d8c89e4602c4048622ce5e66dbe774.tar.bz2
argaze-6af30f98e4d8c89e4602c4048622ce5e66dbe774.tar.xz
Adding new aruco markers pipeline scripting chapter.
Diffstat (limited to 'docs/user_guide/aruco_markers_pipeline')
-rw-r--r--docs/user_guide/aruco_markers_pipeline/advanced_topics/scripting.md132
-rw-r--r--docs/user_guide/aruco_markers_pipeline/introduction.md2
2 files changed, 133 insertions, 1 deletions
diff --git a/docs/user_guide/aruco_markers_pipeline/advanced_topics/scripting.md b/docs/user_guide/aruco_markers_pipeline/advanced_topics/scripting.md
new file mode 100644
index 0000000..c1db6d5
--- /dev/null
+++ b/docs/user_guide/aruco_markers_pipeline/advanced_topics/scripting.md
@@ -0,0 +1,132 @@
+Script the pipeline
+===================
+
+All aruco markers pipeline objects are accessible from Python script.
+This could be particularly useful for realtime AR interaction applications.
+
+## Load ArUcoCamera configuration from dictionary
+
+First of all, [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) configuration can be loaded from a python dictionary.
+
+```python
+from argaze.ArUcoMarkers import ArUcoCamera
+
+# Edit a dict with ArUcoCamera configuration
+configuration = {
+ "name": "My FullHD camera",
+ "size": (1920, 1080),
+ ...
+ "aruco_detector": {
+ ...
+ },
+ "scenes": {
+ "MyScene" : {
+ "aruco_markers_group": {
+ ...
+ },
+ "layers": {
+ "MyLayer": {
+ "aoi_scene": {
+ ...
+ }
+ },
+ ...
+ }
+ },
+ ...
+ }
+ "layers": {
+ "MyLayer": {
+ ...
+ },
+ ...
+ },
+ "image_parameters": {
+ ...
+ }
+}
+
+# Load ArUcoCamera
+aruco_camera = ArUcoCamera.ArUcoCamera.from_dict(configuration)
+
+# Do something with ArUcoCamera
+...
+```
+
+## Access to ArUcoCamera and ArScenes attributes
+
+Then, once the configuration is loaded, it is possible to access to its attributes: [read ArUcoCamera code reference](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) to get a complete list of what is available.
+
+Thus, the [ArUcoCamera.scenes](../../../argaze.md/#argaze.ArFeatures.ArCamera) attribute allows to access each loaded aruco scene and so, access to their attributes: [read ArUcoScene code reference](../../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene) to get a complete list of what is available.
+
+```python
+from argaze import ArFeatures
+
+# Assuming the ArUcoCamera is loaded
+...
+
+# Iterate over each ArUcoCamera scene
+for name, aruco_scene in aruco_camera.scenes.items():
+ ...
+```
+
+## Pipeline execution outputs
+
+[ArUcoCamera.watch](../../argaze.md/#argaze.ArFeatures.ArCamera.watch) method returns many data about pipeline execution.
+
+```python
+# Assuming that images are available
+...:
+
+ # Watch image with ArUco camera
+ detection_time, exception = aruco_camera.watch(image)
+
+ # Do something with pipeline detection times
+ ...
+
+ # Do something with pipeline exception
+ if exception:
+ ...
+```
+
+Let's understand the meaning of each returned data.
+
+### *detection_time*
+
+ArUco marker detection time in ms.
+
+### *exception*
+
+A [python Exception](https://docs.python.org/3/tutorial/errors.html#exceptions) object raised during pipeline execution.
+
+## Setup ArUcoCamera image parameters
+
+Specific [ArUcoCamera.image](../../../argaze.md/#argaze.ArFeatures.ArFrame.image) method parameters can be configured thanks to a python dictionary.
+
+```python
+# Assuming ArUcoCamera is loaded
+...
+
+# Edit a dict with ArUcoCamera image parameters
+image_parameters = {
+ "draw_detected_markers": {
+ ...
+ },
+ "draw_scenes": {
+ ...
+ },
+ "draw_optic_parameters_grid": {
+ ...
+ },
+ ...
+}
+
+# Pass image parameters to ArUcoCamera
+aruco_camera_image = aruco_camera.image(**image_parameters)
+
+# Do something with ArUcoCamera image
+...
+```
+
+!!! note
+ [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) inherits from [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) and so, benefits from all image parameters described in [gaze analysis pipeline visualisation section](../../gaze_analysis_pipeline/visualisation.md). \ No newline at end of file
diff --git a/docs/user_guide/aruco_markers_pipeline/introduction.md b/docs/user_guide/aruco_markers_pipeline/introduction.md
index ee424f0..f5bba18 100644
--- a/docs/user_guide/aruco_markers_pipeline/introduction.md
+++ b/docs/user_guide/aruco_markers_pipeline/introduction.md
@@ -24,6 +24,6 @@ To build your own ArUco markers pipeline, you need to know:
More advanced features are also explained like:
-<!-- * [How to script ArUco markers pipeline](advanced_topics/scripting.md) -->
+* [How to script ArUco markers pipeline](advanced_topics/scripting.md)
* [How to calibrate optic parameters](advanced_topics/optic_parameters_calibration.md)
<!-- * [How to improve ArUco markers detection](advanced_topics/aruco_detector_configuration.md) -->