From 44c7a3a914425b892cf05039a88d9807ba6f2bc6 Mon Sep 17 00:00:00 2001 From: Prohurtz <48768484+RedHawk989@users.noreply.github.com> Date: Sun, 2 Oct 2022 16:13:02 -0700 Subject: [PATCH] blob size adjustments --- EyeTrackApp/config.py | 4 +++- EyeTrackApp/eye_processor.py | 5 ++++- EyeTrackApp/settings_widget.py | 33 ++++++++++++++++++++++++--------- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/EyeTrackApp/config.py b/EyeTrackApp/config.py index 10dc62e..470ea57 100644 --- a/EyeTrackApp/config.py +++ b/EyeTrackApp/config.py @@ -20,6 +20,7 @@ class EyeTrackCameraConfig: capture_source: "Union[int, str, None]" = None gui_circular_crop: "bool" = False + @dataclass @@ -32,7 +33,8 @@ class EyeTrackSettingsConfig: gui_speed_coefficient: "str" = "0.9" gui_osc_address: "str" = "127.0.0.1" gui_osc_port: "str" = "9000" - gui_blob_maxsize: "str" = "15.9" + gui_blob_maxsize: "float" = 25 + gui_blob_minsize: "float" = 10 gui_recenter_eyes: "bool" = False CONFIG_FILE_NAME = "eyetrack_settings.json" diff --git a/EyeTrackApp/eye_processor.py b/EyeTrackApp/eye_processor.py index 769c9f7..8f6f7c1 100644 --- a/EyeTrackApp/eye_processor.py +++ b/EyeTrackApp/eye_processor.py @@ -351,8 +351,11 @@ class EyeProcessor: # if our blob width/height are within suitable (yet arbitrary) boundaries, call that good. # # TODO This should be scaled based on camera resolution. - if not 10 <= h <= 25 or not 10 <= w <= 25: + + if not self.settings.gui_blob_minsize <= h <= self.settings.gui_blob_maxsize or not self.settings.gui_blob_minsize <= w <= self.settings.gui_blob_maxsize: + print("SIZE 222") continue + cx = x + int(w / 2) cy = y + int(h / 2) diff --git a/EyeTrackApp/settings_widget.py b/EyeTrackApp/settings_widget.py index 7738c2f..8fd482a 100644 --- a/EyeTrackApp/settings_widget.py +++ b/EyeTrackApp/settings_widget.py @@ -43,7 +43,7 @@ class SettingsWidget: self.gui_blob_fallback = f"-BLOBFALLBACK{widget_id}-" self.gui_blob_maxsize = f"-BLOBMAXSIZE{widget_id}-" - + self.gui_blob_minsize = f"-BLOBMINSIZE{widget_id}-" self.gui_speed_coefficient = f"-SPEEDCOEFFICIENT{widget_id}-" self.gui_min_cutoff = f"-MINCUTOFF{widget_id}-" self.main_config = main_config @@ -94,15 +94,27 @@ class SettingsWidget: background_color='#424042', ), ], - # [sg.Slider( - # range=(1, 40), - # default_value=self.config.gui_blob_maxsize, - # orientation="h", - # key=self.gui_min_cutoff, - # background_color='#424042' - #), + [ + sg.Text("Min blob size:", background_color='#424042'), + sg.Slider( + range=(1, 50), + default_value=self.config.gui_blob_minsize, + orientation="h", + key=self.gui_blob_minsize, + background_color='#424042' + ), + + sg.Text("Max blob size:", background_color='#424042'), + sg.Slider( + range=(1, 50), + default_value=self.config.gui_blob_maxsize, + orientation="h", + key=self.gui_blob_maxsize, + background_color='#424042' + ), + - #], + ], [ sg.Text("Filter Paramaters:", background_color='#242224'), @@ -289,6 +301,9 @@ class SettingsWidget: self.config.gui_blob_fallback = values[self.gui_blob_fallback] changed = True + if self.config.gui_blob_maxsize != values[self.gui_blob_maxsize]: + self.config.gui_blob_maxsize = values[self.gui_blob_maxsize] + changed = True #print(self.config.gui_flip_x_axis, values[self.gui_flip_x_axis]) # if values[self.gui_flip_x_axis] != self.config.gui_flip_x_axis: