aboutsummaryrefslogtreecommitdiff
path: root/src/argaze/utils/demo_gaze_features_run.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/argaze/utils/demo_gaze_features_run.py')
-rw-r--r--src/argaze/utils/demo_gaze_features_run.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/argaze/utils/demo_gaze_features_run.py b/src/argaze/utils/demo_gaze_features_run.py
index ce3a3f3..6384205 100644
--- a/src/argaze/utils/demo_gaze_features_run.py
+++ b/src/argaze/utils/demo_gaze_features_run.py
@@ -98,6 +98,10 @@ def main():
lzc_analysis = 0
enable_lzc_analysis = False
+ ngram_analyzer = NGram.AOIScanPathAnalyzer()
+ ngram_analysis = {}
+ enable_ngram_analysis = False
+
gaze_movement_lock = threading.Lock()
# Init timestamp
@@ -116,6 +120,7 @@ def main():
nonlocal raw_cK_analysis
nonlocal aoi_cK_analysis
nonlocal lzc_analysis
+ nonlocal ngram_analysis
# Edit millisecond timestamp
data_ts = int((time.time() - start_ts) * 1e3)
@@ -196,6 +201,10 @@ def main():
lzc_analysis = lzc_analyzer.analyze(aoi_scan_path)
+ if enable_ngram_analysis:
+
+ ngram_analysis = ngram_analyzer.analyze(aoi_scan_path, 3)
+
except GazeFeatures.AOIScanStepError as e:
print(f'Error on {e.aoi} step:', e)
@@ -266,6 +275,10 @@ def main():
display_hide = 'hide' if enable_lzc_analysis else 'display'
cv2.putText(aoi_matrix, f'Lempel-Ziv complexity: {on_off} (Press \'z\' key to {display_hide})', (20, 200), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255) if enable_lzc_analysis else (255, 255, 255), 1, cv2.LINE_AA)
+ # Write N-Gram help
+ on_off = 'on' if enable_ngram_analysis else 'off'
+ display_hide = 'hide' if enable_ngram_analysis else 'display'
+ cv2.putText(aoi_matrix, f'Tri-Gram: {on_off} (Press \'n\' key to {display_hide})', (20, 240), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255) if enable_ngram_analysis else (255, 255, 255), 1, cv2.LINE_AA)
# Check fixation identification
if gaze_movement_identifier[identification_mode].current_fixation != None:
@@ -354,6 +367,17 @@ def main():
if enable_lzc_analysis:
cv2.putText(aoi_matrix, f'Lempel-Ziv complexity: {lzc_analysis}', (20, window_size[1]-200), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
+
+ # Write N-Gram
+ if enable_ngram_analysis:
+
+ start = window_size[1] - ((len(ngram_analysis) + 1) * 40)
+ cv2.putText(aoi_matrix, f'Tri-Gram:', (window_size[0]-700, start-40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
+
+ for i, (ngram, count) in enumerate(ngram_analysis.items()):
+
+ trigram = f'{ngram[0]}>{ngram[1]}>{ngram[2]}'
+ cv2.putText(aoi_matrix, f'{trigram}: {count}', (window_size[0]-700, start+(i*40)), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
# Unlock gaze movement identification
gaze_movement_lock.release()
@@ -401,6 +425,11 @@ def main():
enable_lzc_analysis = not enable_lzc_analysis
+ # Enable ngram analysis with 'n' key
+ if key_pressed == 110:
+
+ enable_ngram_analysis = not enable_ngram_analysis
+
# Stop calibration by pressing 'Esc' key
if cv2.waitKey(10) == 27:
break