From 278f89f96c79c06ddd72d78c15384c948e9803a6 Mon Sep 17 00:00:00 2001 From: Lincoln-LM Date: Tue, 4 Jan 2022 16:53:53 -0700 Subject: [PATCH] update configs --- configs/config_cave.json | 3 ++- configs/config_mt_coronet.json | 3 ++- configs/config_munchlax.json | 3 ++- configs/config_phone.json | 12 +++++++++--- configs/config_regi.json | 3 ++- configs/config_room.json | 3 ++- configs/config_unown.json | 3 ++- src/player_blink_gui.py | 4 ++-- src/rngtool.py | 8 ++++---- src/stationary.py | 4 ++-- src/wild.py | 4 ++-- src/windowcapture.py | 4 +++- 12 files changed, 34 insertions(+), 20 deletions(-) diff --git a/configs/config_cave.json b/configs/config_cave.json index 95cc4ca..29cdddf 100644 --- a/configs/config_cave.json +++ b/configs/config_cave.json @@ -10,5 +10,6 @@ ], "thresh": 0.9, "white_delay": 0, - "advance_delay": 0 + "advance_delay": 0, + "crop": [0,0,0,0] } \ No newline at end of file diff --git a/configs/config_mt_coronet.json b/configs/config_mt_coronet.json index 04b033b..db6cb01 100644 --- a/configs/config_mt_coronet.json +++ b/configs/config_mt_coronet.json @@ -10,5 +10,6 @@ ], "thresh": 0.75, "white_delay": 2, - "advance_delay": 0 + "advance_delay": 0, + "crop": [0,0,0,0] } \ No newline at end of file diff --git a/configs/config_munchlax.json b/configs/config_munchlax.json index d5e3174..f8212b2 100644 --- a/configs/config_munchlax.json +++ b/configs/config_munchlax.json @@ -10,5 +10,6 @@ ], "thresh": 0.9, "white_delay": 0, - "advance_delay": 0 + "advance_delay": 0, + "crop": [0,0,0,0] } \ No newline at end of file diff --git a/configs/config_phone.json b/configs/config_phone.json index ce7007d..d9d8362 100644 --- a/configs/config_phone.json +++ b/configs/config_phone.json @@ -3,13 +3,19 @@ "WindowPrefix": "LM-Q", "image": "images\\phone\\eye.png", "view": [ - 392, - 150, + 213, + 102, 45, 55 ], "thresh": 0.8, "white_delay": 0.0, "advance_delay": 0, - "advance_del": 0 + "advance_del": 0, + "crop": [ + 173, + 91, + 530, + 300 + ] } \ No newline at end of file diff --git a/configs/config_regi.json b/configs/config_regi.json index a91ae18..efc16cf 100644 --- a/configs/config_regi.json +++ b/configs/config_regi.json @@ -11,5 +11,6 @@ "thresh": 0.75, "white_delay": 3.0, "advance_delay": 1, - "advance_del": 3 + "advance_del": 3, + "crop": [0,0,0,0] } \ No newline at end of file diff --git a/configs/config_room.json b/configs/config_room.json index f146217..6286617 100644 --- a/configs/config_room.json +++ b/configs/config_room.json @@ -10,5 +10,6 @@ ], "thresh": 0.9, "white_delay": 0, - "advance_delay": 0 + "advance_delay": 0, + "crop": [0,0,0,0] } \ No newline at end of file diff --git a/configs/config_unown.json b/configs/config_unown.json index 7b103e7..3fe990f 100644 --- a/configs/config_unown.json +++ b/configs/config_unown.json @@ -5,5 +5,6 @@ "view": [610, 330, 30, 30], "thresh": 0.9, "white_delay": 0, - "advance_delay": 0 + "advance_delay": 0, + "crop": [0,0,0,0] } \ No newline at end of file diff --git a/src/player_blink_gui.py b/src/player_blink_gui.py index 6360ad9..a42cba1 100644 --- a/src/player_blink_gui.py +++ b/src/player_blink_gui.py @@ -224,7 +224,7 @@ class Application(tk.Frame): def monitoring_work(self): self.tracking = False - blinks, intervals, offset_time = rngtool.tracking_blink(self.player_eye, *self.config_json["view"], MonitorWindow=self.config_json["MonitorWindow"], WindowPrefix=self.config_json["WindowPrefix"], tk_window=self, th=self.config_json["thresh"]) + blinks, intervals, offset_time = rngtool.tracking_blink(self.player_eye, *self.config_json["view"], MonitorWindow=self.config_json["MonitorWindow"], WindowPrefix=self.config_json["WindowPrefix"], crop=self.config_json["crop"], tk_window=self, th=self.config_json["thresh"]) prng = rngtool.recov(blinks, intervals) self.monitor_blink_button['text'] = "Monitor Blinks" @@ -407,7 +407,7 @@ class Application(tk.Frame): if self.config_json["MonitorWindow"]: from windowcapture import WindowCapture - video = WindowCapture(self.config_json["WindowPrefix"]) + video = WindowCapture(self.config_json["WindowPrefix"],self.config_json["crop"]) else: video = cv2.VideoCapture(0,cv2.CAP_DSHOW) video.set(cv2.CAP_PROP_FRAME_WIDTH,1920) diff --git a/src/rngtool.py b/src/rngtool.py index 7ece426..43b799b 100644 --- a/src/rngtool.py +++ b/src/rngtool.py @@ -16,7 +16,7 @@ def randrange(r,mi,ma): t = (r & 0x7fffff) / 8388607.0 return t * mi + (1.0 - t) * ma -def tracking_blink(img, roi_x, roi_y, roi_w, roi_h, th = 0.9, size = 40, MonitorWindow = False, WindowPrefix = "SysDVR-Client [PID ", tk_window = None)->Tuple[List[int],List[int],float]: +def tracking_blink(img, roi_x, roi_y, roi_w, roi_h, th = 0.9, size = 40, MonitorWindow = False, WindowPrefix = "SysDVR-Client [PID ", crop = None, tk_window = None)->Tuple[List[int],List[int],float]: """measuring the type and interval of player's blinks Returns: @@ -28,7 +28,7 @@ def tracking_blink(img, roi_x, roi_y, roi_w, roi_h, th = 0.9, size = 40, Monitor if MonitorWindow: from windowcapture import WindowCapture - video = WindowCapture(WindowPrefix) + video = WindowCapture(WindowPrefix,crop) else: video = cv2.VideoCapture(0,cv2.CAP_DSHOW) video.set(cv2.CAP_PROP_FRAME_WIDTH,1920) @@ -165,7 +165,7 @@ def tracking_blink_manual(size = 40, reidentify = False)->Tuple[List[int],List[i return (blinks, intervals, offset_time) -def tracking_poke_blink(img, roi_x, roi_y, roi_w, roi_h, size = 60, MonitorWindow = False, WindowPrefix = "SysDVR-Client [PID ")->Tuple[List[int],List[int],float]: +def tracking_poke_blink(img, roi_x, roi_y, roi_w, roi_h, size = 60, MonitorWindow = False, WindowPrefix = "SysDVR-Client [PID ", crop = None)->Tuple[List[int],List[int],float]: """measuring the type and interval of pokemon's blinks Returns: @@ -176,7 +176,7 @@ def tracking_poke_blink(img, roi_x, roi_y, roi_w, roi_h, size = 60, MonitorWindo if MonitorWindow: from windowcapture import WindowCapture - video = WindowCapture(WindowPrefix) + video = WindowCapture(WindowPrefix, crop) else: video = cv2.VideoCapture(0,cv2.CAP_DSHOW) video.set(cv2.CAP_PROP_FRAME_WIDTH,1920) diff --git a/src/stationary.py b/src/stationary.py index 89aef9d..7bc36a6 100644 --- a/src/stationary.py +++ b/src/stationary.py @@ -33,7 +33,7 @@ def reidentify(): print("path is wrong") return - observed_blinks, _, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"],size=20) + observed_blinks, _, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"], crop=config["crop"], size=20) reidentified_rng = rngtool.reidentifyByBlinks(Xorshift(*state), observed_blinks) if reidentified_rng is None: print("couldn't reidentify state.") @@ -80,7 +80,7 @@ def stationary_timeline(): print("path is wrong") return - observed_blinks, _, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"],th=config["thresh"],size=20) + observed_blinks, _, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"], crop=config["crop"], th=config["thresh"],size=20) reidentified_rng = rngtool.reidentifyByBlinks(Xorshift(*state), observed_blinks) if reidentified_rng is None: print("couldn't reidentify state.") diff --git a/src/wild.py b/src/wild.py index c037666..ef3fc48 100644 --- a/src/wild.py +++ b/src/wild.py @@ -11,7 +11,7 @@ def expr(): if player_eye is None: print("path is wrong") return - blinks, intervals, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"]) + blinks, intervals, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"], crop=config["crop"]) prng = rngtool.recov(blinks, intervals) waituntil = time.perf_counter() @@ -44,7 +44,7 @@ def reidentify(): print("path is wrong") return - observed_blinks, _, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"], size=20) + observed_blinks, _, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"], crop=config["crop"], size=20) reidentified_rng = rngtool.reidentifyByBlinks(Xorshift(*state), observed_blinks) waituntil = time.perf_counter() diff --git a/src/windowcapture.py b/src/windowcapture.py index 128b4bc..0acfcf1 100644 --- a/src/windowcapture.py +++ b/src/windowcapture.py @@ -3,7 +3,7 @@ import win32gui, win32ui, win32con # Class to monitor a window class WindowCapture: - def __init__(self, partial_window_title): + def __init__(self, partial_window_title, crop): # set up variables self.w = 0 self.h = 0 @@ -34,6 +34,8 @@ class WindowCapture: self.h = self.h - titlebar_pixels - border_pixels self.cropped_x = border_pixels self.cropped_y = titlebar_pixels + if crop is not None and crop != [0,0,0,0]: + self.cropped_x,self.cropped_y,self.w,self.h = crop # set the cropped coordinates offset so we can translate screenshot images into actual screen positions self.offset_x = window_rect[0] + self.cropped_x