aboutsummaryrefslogtreecommitdiff
path: root/src/argaze/ArFeatures.py
diff options
context:
space:
mode:
authorThéo de la Hogue2023-09-20 12:07:50 +0200
committerThéo de la Hogue2023-09-20 12:07:50 +0200
commitf9046f1c979f2daf9d7180286df002059a97fc3b (patch)
tree703eaab205402dd2eefb1d069e40729cd1549c77 /src/argaze/ArFeatures.py
parent0fea09cdeee6367cde0454c92ea495d49dff5933 (diff)
downloadargaze-f9046f1c979f2daf9d7180286df002059a97fc3b.zip
argaze-f9046f1c979f2daf9d7180286df002059a97fc3b.tar.gz
argaze-f9046f1c979f2daf9d7180286df002059a97fc3b.tar.bz2
argaze-f9046f1c979f2daf9d7180286df002059a97fc3b.tar.xz
Working on ArUcoMarkersGroup and ArUcoScene drawing features.
Diffstat (limited to 'src/argaze/ArFeatures.py')
-rw-r--r--src/argaze/ArFeatures.py28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/argaze/ArFeatures.py b/src/argaze/ArFeatures.py
index b9a29de..96976c2 100644
--- a/src/argaze/ArFeatures.py
+++ b/src/argaze/ArFeatures.py
@@ -510,7 +510,7 @@ DEFAULT_ARFRAME_IMAGE_PARAMETERS = {
},
"deepness": 0
},
- "draw_gaze_position": {
+ "draw_gaze_positions": {
"color": (0, 255, 255),
"size": 2
}
@@ -976,7 +976,7 @@ class ArFrame():
# Return look data
return identified_gaze_movement, scan_step_analysis, layer_analysis, execution_times, exception
- def __image(self, background_weight: float = None, heatmap_weight: float = None, draw_scan_path: dict = None, draw_layers: dict = None, draw_gaze_position: dict = None) -> numpy.array:
+ def __image(self, background_weight: float = None, heatmap_weight: float = 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.
@@ -985,7 +985,9 @@ class ArFrame():
heatmap_weight: weight of heatmap overlay
draw_scan_path: [GazeFeatures.ScanPath.draw](argaze.md/#argaze.GazeFeatures.ScanPath.draw) parameters (if None, no scan path is drawn)
draw_layers: dictionary of [ArLayer.draw](argaze.md/#argaze.ArFeatures.ArLayer.draw) parameters per layer (if None, no layer is drawn)
- draw_gaze_position: [GazeFeatures.GazePosition.draw](argaze.md/#argaze.GazeFeatures.GazePosition.draw) parameters (if None, no gaze position is drawn)
+ draw_gaze_positions: [GazeFeatures.GazePosition.draw](argaze.md/#argaze.GazeFeatures.GazePosition.draw) parameters (if None, no gaze position is drawn)
+ draw_fixations: [GazeFeatures.Fixation.draw](argaze.md/#argaze.GazeFeatures.Fixation.draw) parameters (if None, no fixation is drawn)
+ draw_saccades: [GazeFeatures.Saccade.draw](argaze.md/#argaze.GazeFeatures.Saccade.draw) parameters (if None, no saccade is drawn)
"""
# Lock frame exploitation
@@ -1025,10 +1027,20 @@ class ArFrame():
self.layers[layer_name].draw(image, **draw_layer)
+ # Draw current fixation if required
+ if draw_fixations is not None and self.gaze_movement_identifier is not None:
+
+ self.gaze_movement_identifier.current_fixation.draw(image, **draw_fixations)
+
+ # Draw current saccade if required
+ if draw_saccades is not None and self.gaze_movement_identifier is not None:
+
+ self.gaze_movement_identifier.current_saccade.draw(image, **draw_saccades)
+
# Draw current gaze position if required
- if draw_gaze_position is not None:
+ if draw_gaze_positions is not None:
- self.__gaze_position.draw(image, **draw_gaze_position)
+ self.__gaze_position.draw(image, **draw_gaze_positions)
# Unlock frame exploitation
self.__look_lock.release()
@@ -1280,15 +1292,15 @@ class ArScene():
# Project layer aoi scene
yield name, aoi_scene_copy.project(tvec, rvec, self.parent.aruco_detector.optic_parameters.K)
- def draw_axis(self, image: numpy.array):
+ def draw(self, image: numpy.array, **kwargs):
"""
- Draw scene axis into image.
+ Draw scene into image.
Parameters:
image: where to draw
"""
- raise NotImplementedError('draw_axis() method not implemented')
+ raise NotImplementedError('draw() method not implemented')
@dataclass
class ArCamera(ArFrame):