From ad97a3e15da2ca72ceb97ad2e19a5c16bcfc2e09 Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Wed, 10 Apr 2024 17:08:51 +0200 Subject: Replacing visualisation by visualization. --- docs/img/visualisation.png | Bin 23984 -> 0 bytes docs/img/visualization.png | Bin 0 -> 23984 bytes .../advanced_topics/scripting.md | 2 +- .../aruco_marker_pipeline/aoi_3d_frame.md | 2 +- .../aruco_marker_pipeline/aoi_3d_projection.md | 4 +- .../configuration_and_execution.md | 6 +- .../aruco_marker_pipeline/pose_estimation.md | 2 +- .../gaze_analysis_pipeline/aoi_analysis.md | 2 +- .../gaze_analysis_pipeline/background.md | 4 +- .../configuration_and_execution.md | 54 +++++----- docs/user_guide/gaze_analysis_pipeline/heatmap.md | 2 +- .../gaze_analysis_pipeline/introduction.md | 2 +- .../user_guide/gaze_analysis_pipeline/recording.md | 2 +- .../gaze_analysis_pipeline/visualisation.md | 116 --------------------- .../gaze_analysis_pipeline/visualization.md | 116 +++++++++++++++++++++ mkdocs.yml | 2 +- src/argaze/ArFeatures.py | 2 +- src/argaze/ArUcoMarkers/ArUcoCamera.py | 2 +- src/argaze/utils/contexts/TobiiProGlasses2.py | 2 +- 19 files changed, 162 insertions(+), 160 deletions(-) delete mode 100644 docs/img/visualisation.png create mode 100644 docs/img/visualization.png delete mode 100644 docs/user_guide/gaze_analysis_pipeline/visualisation.md create mode 100644 docs/user_guide/gaze_analysis_pipeline/visualization.md diff --git a/docs/img/visualisation.png b/docs/img/visualisation.png deleted file mode 100644 index 9076e7e..0000000 Binary files a/docs/img/visualisation.png and /dev/null differ diff --git a/docs/img/visualization.png b/docs/img/visualization.png new file mode 100644 index 0000000..9076e7e Binary files /dev/null and b/docs/img/visualization.png differ diff --git a/docs/user_guide/aruco_marker_pipeline/advanced_topics/scripting.md b/docs/user_guide/aruco_marker_pipeline/advanced_topics/scripting.md index 2eb64f8..4a2f9ba 100644 --- a/docs/user_guide/aruco_marker_pipeline/advanced_topics/scripting.md +++ b/docs/user_guide/aruco_marker_pipeline/advanced_topics/scripting.md @@ -129,4 +129,4 @@ aruco_camera_image = aruco_camera.image(**image_parameters) ``` !!! 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 + [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 visualization section](../../gaze_analysis_pipeline/visualization.md). \ No newline at end of file diff --git a/docs/user_guide/aruco_marker_pipeline/aoi_3d_frame.md b/docs/user_guide/aruco_marker_pipeline/aoi_3d_frame.md index cf4a07e..ef5c27a 100644 --- a/docs/user_guide/aruco_marker_pipeline/aoi_3d_frame.md +++ b/docs/user_guide/aruco_marker_pipeline/aoi_3d_frame.md @@ -80,7 +80,7 @@ An [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene) instance can co ### Left_Screen & Right_Screen -The names of 3D AOI **and** their related [ArFrames](../../argaze.md/#argaze.ArFeatures.ArFrame). Basically useful for visualisation purpose. +The names of 3D AOI **and** their related [ArFrames](../../argaze.md/#argaze.ArFeatures.ArFrame). Basically useful for visualization purpose. !!! warning "AOI / Frame names policy" diff --git a/docs/user_guide/aruco_marker_pipeline/aoi_3d_projection.md b/docs/user_guide/aruco_marker_pipeline/aoi_3d_projection.md index 64f5fc8..c004e7f 100644 --- a/docs/user_guide/aruco_marker_pipeline/aoi_3d_projection.md +++ b/docs/user_guide/aruco_marker_pipeline/aoi_3d_projection.md @@ -45,7 +45,7 @@ An [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene) instance can co ### MyLayer -The name of an [ArLayer](../../argaze.md/#argaze.ArFeatures.ArLayer). Basically useful for visualisation purpose. +The name of an [ArLayer](../../argaze.md/#argaze.ArFeatures.ArLayer). Basically useful for visualization purpose. ### *aoi_scene* @@ -102,7 +102,7 @@ An [ArUcoCamera](../../argaze.md/#argaze.ArFeatures.ArFrame) instance can contai ### MyLayer -The name of an [ArLayer](../../argaze.md/#argaze.ArFeatures.ArLayer). Basically useful for visualisation purpose. +The name of an [ArLayer](../../argaze.md/#argaze.ArFeatures.ArLayer). Basically useful for visualization purpose. !!! warning "Layer name policy" diff --git a/docs/user_guide/aruco_marker_pipeline/configuration_and_execution.md b/docs/user_guide/aruco_marker_pipeline/configuration_and_execution.md index dd36ed3..c07e0c7 100644 --- a/docs/user_guide/aruco_marker_pipeline/configuration_and_execution.md +++ b/docs/user_guide/aruco_marker_pipeline/configuration_and_execution.md @@ -66,7 +66,7 @@ Now, let's understand the meaning of each JSON entry. ### *name - inherited from [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame)* -The name of the [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) frame. Basically useful for visualisation purpose. +The name of the [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) frame. Basically useful for visualization purpose. ### *size - inherited from [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame)* @@ -91,7 +91,7 @@ The first [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) pipeline step de ### *image_parameters - inherited from [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame)* -The usual [ArFrame visualisation parameters](../gaze_analysis_pipeline/visualisation.md) plus one additional *draw_detected_markers* field. +The usual [ArFrame visualization parameters](../gaze_analysis_pipeline/visualization.md) plus one additional *draw_detected_markers* field. ## Pipeline execution @@ -117,7 +117,7 @@ Pass each camera image to [ArUcoCamera.watch](../../argaze.md/#argaze.ArFeatures ... - # Display ArUcoCamera frame image to display detected ArUco markers, scene pose, 2D AOI projection and ArFrame visualisation. + # Display ArUcoCamera frame image to display detected ArUco markers, scene pose, 2D AOI projection and ArFrame visualization. ... aruco_camera.image() ``` diff --git a/docs/user_guide/aruco_marker_pipeline/pose_estimation.md b/docs/user_guide/aruco_marker_pipeline/pose_estimation.md index 7f6573c..c684f60 100644 --- a/docs/user_guide/aruco_marker_pipeline/pose_estimation.md +++ b/docs/user_guide/aruco_marker_pipeline/pose_estimation.md @@ -69,7 +69,7 @@ An [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) instance can ### MyScene -The name of an [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene). Basically useful for visualisation purpose. +The name of an [ArUcoScene](../../argaze.md/#argaze.ArUcoMarkers.ArUcoScene). Basically useful for visualization purpose. ### *aruco_markers_group* diff --git a/docs/user_guide/gaze_analysis_pipeline/aoi_analysis.md b/docs/user_guide/gaze_analysis_pipeline/aoi_analysis.md index feab4e4..1a18e9b 100644 --- a/docs/user_guide/gaze_analysis_pipeline/aoi_analysis.md +++ b/docs/user_guide/gaze_analysis_pipeline/aoi_analysis.md @@ -69,7 +69,7 @@ An [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) instance can contains m ### MyLayer -The name of an [ArLayer](../../argaze.md/#argaze.ArFeatures.ArLayer). Basically useful for visualisation purpose. +The name of an [ArLayer](../../argaze.md/#argaze.ArFeatures.ArLayer). Basically useful for visualization purpose. ### *aoi_scene* diff --git a/docs/user_guide/gaze_analysis_pipeline/background.md b/docs/user_guide/gaze_analysis_pipeline/background.md index a61abdc..c703a4f 100644 --- a/docs/user_guide/gaze_analysis_pipeline/background.md +++ b/docs/user_guide/gaze_analysis_pipeline/background.md @@ -1,7 +1,7 @@ Add a background ================ -Background is an optional [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) attribute to display any image behind pipeline visualisation. +Background is an optional [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) attribute to display any image behind pipeline visualization. ![Background](../../img/background.png) @@ -26,7 +26,7 @@ Here is an extract from the JSON ArFrame configuration file where a background p ``` !!! note - As explained in [visualisation chapter](visualisation.md), the resulting image is accessible thanks to [ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) method. + As explained in [visualization chapter](visualization.md), the resulting image is accessible thanks to [ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) method. Now, let's understand the meaning of each JSON entry. diff --git a/docs/user_guide/gaze_analysis_pipeline/configuration_and_execution.md b/docs/user_guide/gaze_analysis_pipeline/configuration_and_execution.md index ed8a5d1..a307147 100644 --- a/docs/user_guide/gaze_analysis_pipeline/configuration_and_execution.md +++ b/docs/user_guide/gaze_analysis_pipeline/configuration_and_execution.md @@ -7,28 +7,30 @@ The [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) class defines a rectan ## Load JSON configuration file -An [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) pipeline can be loaded from a JSON configuration file thanks to [argaze.load](../../argaze.md/#argaze.load) package method. +An [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) pipeline can be loaded from a JSON configuration file thanks to the [argaze.load](../../argaze.md/#argaze.load) package method. Here is a simple JSON [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) configuration file example: ```json { - "name": "My FullHD screen", - "size": [1920, 1080], - "gaze_movement_identifier": { - "argaze.GazeAnalasis.DispersionThresholdIdentification.GazeMovementIdentifier": { - "deviation_max_threshold": 50, - "duration_min_threshold": 200 + "argaze.ArFeatures.ArFrame": { + "name": "My FullHD screen", + "size": [1920, 1080], + "gaze_movement_identifier": { + "argaze.GazeAnalysis.DispersionThresholdIdentification.GazeMovementIdentifier": { + "deviation_max_threshold": 50, + "duration_min_threshold": 200 + } + }, + "scan_path": { + "duration_max": 30000 + }, + "scan_path_analyzers": { + "argaze.GazeAnalysis.Basic.ScanPathAnalyzer": {}, + "argaze.GazeAnalysis.ExploreExploitRatio.ScanPathAnalyzer": { + "short_fixation_duration_threshold": 0 + } } - }, - "scan_path": { - "duration_max": 30000 - }, - "scan_path_analyzers": { - "argaze.GazeAnalasis.Basic.ScanPathAnalyzer": {}, - "argaze.GazeAnalasis.ExploreExploitRatio.ScanPathAnalyzer": { - "short_fixation_duration_threshold": 0 - } } } ``` @@ -49,7 +51,7 @@ Now, let's understand the meaning of each JSON entry. ### *name* -The name of the [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame). Basically useful for visualisation purpose. +The name of the [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame). Basically useful for visualization purposes. ### *size* @@ -107,18 +109,18 @@ Timestamped gaze positions have to be passed one by one to [ArFrame.look](../../ # Assuming that timestamped gaze positions are available ... - try: + try: - # Look ArFrame at a timestamped gaze position - ar_frame.look(timestamped_gaze_position) + # Look ArFrame at a timestamped gaze position + ar_frame.look(timestamped_gaze_position) - # Do something with pipeline exception - except Exception as e: - - ... + # Do something with pipeline exception + except Exception as e: + + ... ``` !!! note "" - At this point, the [ArFrame.look](../../argaze.md/#argaze.ArFeatures.ArFrame.look) method only process gaze movement identification and scan path analysis without any AOI neither any recording or visualisation supports. + At this point, the [ArFrame.look](../../argaze.md/#argaze.ArFeatures.ArFrame.look) method only process gaze movement identification and scan path analysis without any AOI neither any recording or visualization supports. - Read the next chapters to learn how to [describe AOI](aoi_2d_description.md), [add AOI analysis](aoi_analysis.md), [record gaze analysis](recording.md) and [visualize pipeline steps](visualisation.md). \ No newline at end of file + Read the next chapters to learn how to [describe AOI](aoi_2d_description.md), [add AOI analysis](aoi_analysis.md), [record gaze analysis](recording.md) and [visualize pipeline steps](visualization.md). \ No newline at end of file diff --git a/docs/user_guide/gaze_analysis_pipeline/heatmap.md b/docs/user_guide/gaze_analysis_pipeline/heatmap.md index 6d9ad18..186ce68 100644 --- a/docs/user_guide/gaze_analysis_pipeline/heatmap.md +++ b/docs/user_guide/gaze_analysis_pipeline/heatmap.md @@ -29,7 +29,7 @@ Here is an extract from the JSON ArFrame configuration file where heatmap is ena } ``` !!! note - [ArFrame.heatmap](../../argaze.md/#argaze.ArFeatures.ArFrame.heatmap) is automatically updated each time the [ArFrame.look](../../argaze.md/#argaze.ArFeatures.ArFrame.look) method is called. As explained in [visualisation chapter](visualisation.md), the resulting image is accessible thanks to [ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) method. + [ArFrame.heatmap](../../argaze.md/#argaze.ArFeatures.ArFrame.heatmap) is automatically updated each time the [ArFrame.look](../../argaze.md/#argaze.ArFeatures.ArFrame.look) method is called. As explained in [visualization chapter](visualization.md), the resulting image is accessible thanks to [ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) method. Now, let's understand the meaning of each JSON entry. diff --git a/docs/user_guide/gaze_analysis_pipeline/introduction.md b/docs/user_guide/gaze_analysis_pipeline/introduction.md index d7e2965..c12f669 100644 --- a/docs/user_guide/gaze_analysis_pipeline/introduction.md +++ b/docs/user_guide/gaze_analysis_pipeline/introduction.md @@ -13,7 +13,7 @@ To build your own gaze analysis pipeline, you need to know: * [How to load and execute gaze analysis pipeline](configuration_and_execution.md), * [How to describe AOI](aoi_2d_description.md), * [How to enable AOI analysis](aoi_analysis.md), -* [How to visualize pipeline steps outputs](visualisation.md), +* [How to visualize pipeline steps outputs](visualization.md), * [How to record resulted gaze analysis](recording.md), * [How to make heatmap image](heatmap.md), * [How to add a background image](background.md). diff --git a/docs/user_guide/gaze_analysis_pipeline/recording.md b/docs/user_guide/gaze_analysis_pipeline/recording.md index 72aee58..26b7e82 100644 --- a/docs/user_guide/gaze_analysis_pipeline/recording.md +++ b/docs/user_guide/gaze_analysis_pipeline/recording.md @@ -115,7 +115,7 @@ Assuming that [ArGaze.GazeAnalysis.NGram](../../argaze.md/#argaze.GazeAnalysis.N ### Export gaze analysis to video file -As explained in [pipeline steps visualisation chapter](visualisation.md), it is possible to get [ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) once timestamped gaze positions have been processed by [ArFrame.look](../../argaze.md/#argaze.ArFeatures.ArFrame.look) method. +As explained in [pipeline steps visualization chapter](visualization.md), it is possible to get [ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) once timestamped gaze positions have been processed by [ArFrame.look](../../argaze.md/#argaze.ArFeatures.ArFrame.look) method. Here is the JSON ArFrame configuration file where [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) observers are extended with a new my_recorders.VideoRecorder instance: diff --git a/docs/user_guide/gaze_analysis_pipeline/visualisation.md b/docs/user_guide/gaze_analysis_pipeline/visualisation.md deleted file mode 100644 index b139f9b..0000000 --- a/docs/user_guide/gaze_analysis_pipeline/visualisation.md +++ /dev/null @@ -1,116 +0,0 @@ -Visualize pipeline steps -======================== - -Visualisation is not a pipeline step but each [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) pipeline steps outputs can be drawn in real-time or afterward, depending of application purpose. - -![ArFrame visualisation](../../img/visualisation.png) - -## Add image parameters to ArFrame JSON configuration file - -[ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) method parameters can be configured thanks to a dedicated JSON entry. - -Here is an extract from the JSON ArFrame configuration file with a sample where image parameters are added: - -```json -{ - "name": "My FullHD screen", - "size": [1920, 1080], - ... - "image_parameters": { - "draw_gaze_positions": { - "color": [0, 255, 255], - "size": 2 - }, - "draw_fixations": { - "deviation_circle_color": [255, 255, 255], - "duration_border_color": [127, 0, 127], - "duration_factor": 1e-2, - "draw_positions": { - "position_color": [0, 255, 255], - "line_color": [0, 0, 0] - } - }, - "draw_saccades": { - "line_color": [255, 0, 255] - }, - "draw_scan_path": { - "draw_fixations": { - "deviation_circle_color": [255, 0, 255], - "duration_border_color": [127, 0, 127], - "duration_factor": 1e-2 - }, - "draw_saccades": { - "line_color": [255, 0, 255] - } - }, - "draw_layers": { - "MyLayer": { - "draw_aoi_scene": { - "draw_aoi": { - "color": [255, 255, 255], - "border_size": 1 - } - }, - "draw_aoi_matching": { - "draw_matched_fixation": { - "deviation_circle_color": [255, 255, 255], - "draw_positions": { - "position_color": [0, 255, 0], - "line_color": [0, 0, 0] - } - }, - "draw_matched_region": { - "color": [0, 255, 0], - "border_size": 4 - }, - "draw_looked_aoi": { - "color": [0, 255, 0], - "border_size": 2 - }, - "looked_aoi_name_color": [255, 255, 255], - "looked_aoi_name_offset": [0, -10] - } - } - } - } -} -``` - -!!! warning - Most of *image_parameters* entries work if related ArFrame/ArLayer pipeline steps are enabled. - For example, JSON *draw_scan_path* entry needs GazeMovementIdentifier and ScanPath steps to be enabled. - -Then, [ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) method can be called in various situations. - -## Live window display - -While timestamped gaze positions are processed by [ArFrame.look](../../argaze.md/#argaze.ArFeatures.ArFrame.look) method, it is possible to display [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) image thanks to [OpenCV package](https://pypi.org/project/opencv-python/). - -```python -import cv2 - -def main(): - - # Assuming ArFrame is loaded - ... - - # Create a window to display ArFrame - cv2.namedWindow(ar_frame.name, cv2.WINDOW_AUTOSIZE) - - # Assuming that timestamped gaze positions are being processed by ArFrame.look method - ... - - # Update ArFrame image display - cv2.imshow(ar_frame.name, ar_frame.image()) - - # Wait 10 ms - cv2.waitKey(10) - -if __name__ == '__main__': - - main() -``` - -!!! note "Export to video file" - - Video exportation is detailed in [gaze analysis recording chapter](recording.md). \ No newline at end of file diff --git a/docs/user_guide/gaze_analysis_pipeline/visualization.md b/docs/user_guide/gaze_analysis_pipeline/visualization.md new file mode 100644 index 0000000..ed67892 --- /dev/null +++ b/docs/user_guide/gaze_analysis_pipeline/visualization.md @@ -0,0 +1,116 @@ +Visualize pipeline steps +======================== + +Visualisation is not a pipeline step but each [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) pipeline steps outputs can be drawn in real-time or afterward, depending of application purpose. + +![ArFrame visualization](../../img/visualization.png) + +## Add image parameters to ArFrame JSON configuration file + +[ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) method parameters can be configured thanks to a dedicated JSON entry. + +Here is an extract from the JSON ArFrame configuration file with a sample where image parameters are added: + +```json +{ + "name": "My FullHD screen", + "size": [1920, 1080], + ... + "image_parameters": { + "draw_gaze_positions": { + "color": [0, 255, 255], + "size": 2 + }, + "draw_fixations": { + "deviation_circle_color": [255, 255, 255], + "duration_border_color": [127, 0, 127], + "duration_factor": 1e-2, + "draw_positions": { + "position_color": [0, 255, 255], + "line_color": [0, 0, 0] + } + }, + "draw_saccades": { + "line_color": [255, 0, 255] + }, + "draw_scan_path": { + "draw_fixations": { + "deviation_circle_color": [255, 0, 255], + "duration_border_color": [127, 0, 127], + "duration_factor": 1e-2 + }, + "draw_saccades": { + "line_color": [255, 0, 255] + } + }, + "draw_layers": { + "MyLayer": { + "draw_aoi_scene": { + "draw_aoi": { + "color": [255, 255, 255], + "border_size": 1 + } + }, + "draw_aoi_matching": { + "draw_matched_fixation": { + "deviation_circle_color": [255, 255, 255], + "draw_positions": { + "position_color": [0, 255, 0], + "line_color": [0, 0, 0] + } + }, + "draw_matched_region": { + "color": [0, 255, 0], + "border_size": 4 + }, + "draw_looked_aoi": { + "color": [0, 255, 0], + "border_size": 2 + }, + "looked_aoi_name_color": [255, 255, 255], + "looked_aoi_name_offset": [0, -10] + } + } + } + } +} +``` + +!!! warning + Most of *image_parameters* entries work if related ArFrame/ArLayer pipeline steps are enabled. + For example, JSON *draw_scan_path* entry needs GazeMovementIdentifier and ScanPath steps to be enabled. + +Then, [ArFrame.image](../../argaze.md/#argaze.ArFeatures.ArFrame.image) method can be called in various situations. + +## Live window display + +While timestamped gaze positions are processed by [ArFrame.look](../../argaze.md/#argaze.ArFeatures.ArFrame.look) method, it is possible to display [ArFrame](../../argaze.md/#argaze.ArFeatures.ArFrame) image thanks to [OpenCV package](https://pypi.org/project/opencv-python/). + +```python +import cv2 + +def main(): + + # Assuming ArFrame is loaded + ... + + # Create a window to display ArFrame + cv2.namedWindow(ar_frame.name, cv2.WINDOW_AUTOSIZE) + + # Assuming that timestamped gaze positions are being processed by ArFrame.look method + ... + + # Update ArFrame image display + cv2.imshow(ar_frame.name, ar_frame.image()) + + # Wait 10 ms + cv2.waitKey(10) + +if __name__ == '__main__': + + main() +``` + +!!! note "Export to video file" + + Video exportation is detailed in [gaze analysis recording chapter](recording.md). \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index eef6008..35bff5a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -10,7 +10,7 @@ nav: - user_guide/gaze_analysis_pipeline/configuration_and_execution.md - user_guide/gaze_analysis_pipeline/aoi_2d_description.md - user_guide/gaze_analysis_pipeline/aoi_analysis.md - - user_guide/gaze_analysis_pipeline/visualisation.md + - user_guide/gaze_analysis_pipeline/visualization.md - user_guide/gaze_analysis_pipeline/recording.md - user_guide/gaze_analysis_pipeline/heatmap.md - user_guide/gaze_analysis_pipeline/background.md diff --git a/src/argaze/ArFeatures.py b/src/argaze/ArFeatures.py index 56b6158..da56cce 100644 --- a/src/argaze/ArFeatures.py +++ b/src/argaze/ArFeatures.py @@ -769,7 +769,7 @@ class ArFrame(DataFeatures.SharedObject, DataFeatures.PipelineStepObject): @DataFeatures.PipelineStepImage def image(self, background_weight: float = None, heatmap_weight: float = None, draw_gaze_position_calibrator: dict = None, draw_scan_path: dict = None, draw_layers: dict = None, draw_gaze_positions: dict = None, draw_fixations: dict = None, draw_saccades: dict = None) -> numpy.array: """ - Get background image with overlaid visualisations. + Get background image with overlaid visualizations. Parameters: background_weight: weight of background overlay diff --git a/src/argaze/ArUcoMarkers/ArUcoCamera.py b/src/argaze/ArUcoMarkers/ArUcoCamera.py index e61bddc..95df135 100644 --- a/src/argaze/ArUcoMarkers/ArUcoCamera.py +++ b/src/argaze/ArUcoMarkers/ArUcoCamera.py @@ -196,7 +196,7 @@ class ArUcoCamera(ArFeatures.ArCamera): @DataFeatures.PipelineStepImage def image(self, draw_detected_markers: dict = None, draw_scenes: dict = None, draw_optic_parameters_grid: dict = None, **kwargs: dict) -> numpy.array: - """Get frame image with ArUco detection visualisation. + """Get frame image with ArUco detection visualization. Parameters: draw_detected_markers: ArucoMarker.draw parameters (if None, no marker drawn) diff --git a/src/argaze/utils/contexts/TobiiProGlasses2.py b/src/argaze/utils/contexts/TobiiProGlasses2.py index 0c2b8f9..2f43bc5 100644 --- a/src/argaze/utils/contexts/TobiiProGlasses2.py +++ b/src/argaze/utils/contexts/TobiiProGlasses2.py @@ -607,7 +607,7 @@ class LiveStream(ArFeatures.ArContext): @DataFeatures.PipelineStepImage def image(self, draw_something: bool = None, **kwargs: dict) -> numpy.array: - """Get Tobii visualisation. + """Get Tobii visualization. Parameters: draw_something: example -- cgit v1.1