diff options
Diffstat (limited to 'src/argaze/utils/demo_gaze_features_run.py')
-rw-r--r-- | src/argaze/utils/demo_gaze_features_run.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/argaze/utils/demo_gaze_features_run.py b/src/argaze/utils/demo_gaze_features_run.py index 6384205..736ffa9 100644 --- a/src/argaze/utils/demo_gaze_features_run.py +++ b/src/argaze/utils/demo_gaze_features_run.py @@ -102,6 +102,10 @@ def main(): ngram_analysis = {} enable_ngram_analysis = False + entropy_analyzer = Entropy.AOIScanPathAnalyzer() + entropy_analysis = (-1, -1) + enable_entropy_analysis = False + gaze_movement_lock = threading.Lock() # Init timestamp @@ -121,6 +125,7 @@ def main(): nonlocal aoi_cK_analysis nonlocal lzc_analysis nonlocal ngram_analysis + nonlocal entropy_analysis # Edit millisecond timestamp data_ts = int((time.time() - start_ts) * 1e3) @@ -205,6 +210,10 @@ def main(): ngram_analysis = ngram_analyzer.analyze(aoi_scan_path, 3) + if enable_entropy_analysis and enable_tm_analysis: + + entropy_analysis = entropy_analyzer.analyze(aoi_scan_path, tm_probabilities) + except GazeFeatures.AOIScanStepError as e: print(f'Error on {e.aoi} step:', e) @@ -280,6 +289,11 @@ def main(): 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) + # Write entropy help + on_off = 'on' if enable_entropy_analysis else 'off' + display_hide = 'hide' if enable_entropy_analysis else 'display' + cv2.putText(aoi_matrix, f'Entropy: {on_off} (Press \'e\' key to {display_hide})', (20, 280), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255) if enable_entropy_analysis else (255, 255, 255), 1, cv2.LINE_AA) + # Check fixation identification if gaze_movement_identifier[identification_mode].current_fixation != None: @@ -378,6 +392,11 @@ def main(): 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) + + # Write entropy + if enable_entropy_analysis: + + cv2.putText(aoi_matrix, f'Entropy: {entropy_analysis}', (20, window_size[1]-240), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA) # Unlock gaze movement identification gaze_movement_lock.release() @@ -430,6 +449,17 @@ def main(): enable_ngram_analysis = not enable_ngram_analysis + # Enable entropy analysis with 'e' key + if key_pressed == 101: + + enable_entropy_analysis = not enable_entropy_analysis + + # Transition matrix is needed + if enable_entropy_analysis: + + enable_tm_analysis = True + + # Stop calibration by pressing 'Esc' key if cv2.waitKey(10) == 27: break |