diff options
Diffstat (limited to 'src/argaze/utils')
-rw-r--r-- | src/argaze/utils/export_tobii_segment_aruco_visual_scan.py | 14 | ||||
-rw-r--r-- | src/argaze/utils/export_tobii_segment_fixations.py | 1 | ||||
-rw-r--r-- | src/argaze/utils/replay_tobii_session.py | 16 |
3 files changed, 15 insertions, 16 deletions
diff --git a/src/argaze/utils/export_tobii_segment_aruco_visual_scan.py b/src/argaze/utils/export_tobii_segment_aruco_visual_scan.py index 4089d2f..02f5cb2 100644 --- a/src/argaze/utils/export_tobii_segment_aruco_visual_scan.py +++ b/src/argaze/utils/export_tobii_segment_aruco_visual_scan.py @@ -101,24 +101,24 @@ def main(): # Initialise progress bar MiscFeatures.printProgressBar(0, tobii_segment_video.get_duration(), prefix = 'Progress:', suffix = 'Complete', length = 100) - # Iterate on video frames activating video / data synchronisation through vts data buffer - for video_ts, video_frame in tobii_segment_video.frames(tobii_segment_data.vts): + # Iterate on video frames + for video_ts, video_frame in tobii_segment_video.frames(): try: # Get closest gaze position before video timestamp and remove all gaze positions before closest_gaze_ts, closest_gaze_position = tobii_ts_gaze_positions.pop_first_until(video_ts) - # Draw video synchronized gaze position + # Draw gaze position gaze_position = GazeFeatures.GazePosition(int(closest_gaze_position.gp[0] * video_frame.width), int(closest_gaze_position.gp[1] * video_frame.height)) cv.circle(video_frame.matrix, gaze_position.as_tuple(), 4, (0, 255, 255), -1) # Store gaze position at this time in millisecond ts_gaze_positions[video_ts/1000] = gaze_position - # When expected values can't be found - except (KeyError, AttributeError, ValueError): - pass # keep last gaze position + # Wait for gaze position + except ValueError: + continue # Track markers with pose estimation and draw them aruco_tracker.track(video_frame.matrix) @@ -163,7 +163,7 @@ def main(): output_video.write(video_frame.matrix) # Update Progress Bar - progress = video_ts - int(args.time_range[0] * 1000000) # - tobii_segment_video.get_vts_offset() ? + progress = video_ts - int(args.time_range[0] * 1000000) MiscFeatures.printProgressBar(progress, tobii_segment_video.get_duration(), prefix = 'Progress:', suffix = 'Complete', length = 100) # Exit on 'ctrl+C' interruption diff --git a/src/argaze/utils/export_tobii_segment_fixations.py b/src/argaze/utils/export_tobii_segment_fixations.py index 7fbdf50..b257a88 100644 --- a/src/argaze/utils/export_tobii_segment_fixations.py +++ b/src/argaze/utils/export_tobii_segment_fixations.py @@ -51,7 +51,6 @@ def main(): # Access to timestamped gaze position data buffer tobii_ts_gaze_positions = tobii_segment_data.gidx_l_gp - print(f'{len(tobii_ts_gaze_positions)} gaze positions loaded') # Format tobii gaze data into generic gaze data and store them using millisecond unit timestamp diff --git a/src/argaze/utils/replay_tobii_session.py b/src/argaze/utils/replay_tobii_session.py index 0471506..20607c2 100644 --- a/src/argaze/utils/replay_tobii_session.py +++ b/src/argaze/utils/replay_tobii_session.py @@ -41,21 +41,21 @@ def main(): # Video and data replay loop try: - # Iterate on video frames activating video / data synchronisation through vts data buffer - for video_ts, video_frame in tobii_segment_video.frames(tobii_segment_data.vts): + # Iterate on video frames + for video_ts, video_frame in tobii_segment_video.frames(): try: # Get closest gaze position before video timestamp and remove all gaze positions before closest_gaze_ts, closest_gaze_position = tobii_ts_gaze_positions.pop_first_until(video_ts) - # Draw video synchronized gaze pointer - pointer = (int(closest_gaze_position.gp[0] * video_frame.width), int(closest_gaze_position.gp[1] * video_frame.height)) - cv.circle(video_frame.matrix, pointer, 4, (0, 255, 255), -1) + # Draw gaze position + gaze_position = (int(closest_gaze_position.gp[0] * video_frame.width), int(closest_gaze_position.gp[1] * video_frame.height)) + cv.circle(video_frame.matrix, gaze_position.as_tuple(), 4, (0, 255, 255), -1) - # When expected values can't be found - except (KeyError, AttributeError, ValueError): - pass + # Wait for gaze position + except ValueError: + continue # Close window using 'Esc' key if cv.waitKey(1) == 27: |