mirror of
https://github.com/jjaldridge2009/Project_Xs.git
synced 2024-10-05 14:57:12 +02:00
multi camera support
This commit is contained in:
parent
9038d3df07
commit
46e9e24680
@ -16,5 +16,6 @@
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"camera": 0
|
||||
}
|
@ -11,5 +11,6 @@
|
||||
"thresh": 0.9,
|
||||
"white_delay": 0,
|
||||
"advance_delay": 0,
|
||||
"crop": [0,0,0,0]
|
||||
"crop": [0,0,0,0],
|
||||
"camera": 0
|
||||
}
|
@ -11,5 +11,6 @@
|
||||
"thresh": 0.75,
|
||||
"white_delay": 2,
|
||||
"advance_delay": 0,
|
||||
"crop": [0,0,0,0]
|
||||
"crop": [0,0,0,0],
|
||||
"camera": 0
|
||||
}
|
@ -11,5 +11,6 @@
|
||||
"thresh": 0.9,
|
||||
"white_delay": 0,
|
||||
"advance_delay": 0,
|
||||
"crop": [0,0,0,0]
|
||||
"crop": [0,0,0,0],
|
||||
"camera": 0
|
||||
}
|
@ -16,5 +16,6 @@
|
||||
91,
|
||||
530,
|
||||
300
|
||||
]
|
||||
],
|
||||
"camera": 0
|
||||
}
|
@ -16,5 +16,6 @@
|
||||
91,
|
||||
530,
|
||||
300
|
||||
]
|
||||
],
|
||||
"camera": 0
|
||||
}
|
@ -11,5 +11,6 @@
|
||||
"thresh": 0.75,
|
||||
"white_delay": 3.0,
|
||||
"advance_delay": 3,
|
||||
"crop": [0,0,0,0]
|
||||
"crop": [0,0,0,0],
|
||||
"camera": 0
|
||||
}
|
@ -11,5 +11,6 @@
|
||||
"thresh": 0.9,
|
||||
"white_delay": 0,
|
||||
"advance_delay": 0,
|
||||
"crop": [0,0,0,0]
|
||||
"crop": [0,0,0,0],
|
||||
"camera": 0
|
||||
}
|
@ -6,5 +6,6 @@
|
||||
"thresh": 0.9,
|
||||
"white_delay": 0,
|
||||
"advance_delay": 0,
|
||||
"crop": [0,0,0,0]
|
||||
"crop": [0,0,0,0],
|
||||
"camera": 0
|
||||
}
|
@ -34,7 +34,8 @@ class Application(tk.Frame):
|
||||
"thresh": 0.9,
|
||||
"white_delay": 0.0,
|
||||
"advance_delay": 0,
|
||||
"crop": [0,0,0,0]
|
||||
"crop": [0,0,0,0],
|
||||
"camera": 0
|
||||
}
|
||||
self.pack()
|
||||
self.create_widgets()
|
||||
@ -65,6 +66,9 @@ class Application(tk.Frame):
|
||||
self.prefix_input = ttk.Entry(self)
|
||||
self.prefix_input.grid(column=1,row=2)
|
||||
|
||||
self.camera_index = tk.Spinbox(self, from_= 0, to = 99, width = 5)
|
||||
self.camera_index.grid(column=2,row=1)
|
||||
|
||||
self.monitor_window_var = tk.IntVar()
|
||||
self.monitor_window = ttk.Checkbutton(self,text="Monitor Window",variable=self.monitor_window_var)
|
||||
self.monitor_window.grid(column=2,row=2)
|
||||
@ -149,6 +153,8 @@ class Application(tk.Frame):
|
||||
self.whi_del.insert(0, 0.0)
|
||||
self.adv_del.delete(0, tk.END)
|
||||
self.adv_del.insert(0, 0)
|
||||
self.camera_index.delete(0, tk.END)
|
||||
self.camera_index.insert(0, 0)
|
||||
|
||||
self.after_task()
|
||||
|
||||
@ -192,6 +198,8 @@ class Application(tk.Frame):
|
||||
self.whi_del.insert(0, self.config_json["white_delay"])
|
||||
self.adv_del.delete(0, tk.END)
|
||||
self.adv_del.insert(0, self.config_json["advance_delay"])
|
||||
self.camera_index.delete(0, tk.END)
|
||||
self.camera_index.insert(0, self.config_json["camera"])
|
||||
self.player_eye = cv2.imread(self.config_json["image"], cv2.IMREAD_GRAYSCALE)
|
||||
self.player_eye_tk = self.cv_image_to_tk(self.player_eye)
|
||||
self.eye_display['image'] = self.player_eye_tk
|
||||
@ -229,7 +237,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"], crop=self.config_json["crop"], 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"], camera=self.config_json["camera"], tk_window=self, th=self.config_json["thresh"])
|
||||
prng = rngtool.recov(blinks, intervals)
|
||||
|
||||
self.monitor_blink_button['text'] = "Monitor Blinks"
|
||||
@ -331,7 +339,7 @@ class Application(tk.Frame):
|
||||
self.s01_23.insert(1.0,s01+"\n"+s23)
|
||||
|
||||
print([hex(x) for x in state])
|
||||
observed_blinks, _, 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"], size=20)
|
||||
observed_blinks, _, 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"], camera=self.config_json["camera"], tk_window=self, th=self.config_json["thresh"], size=20)
|
||||
reidentified_rng, adv = rngtool.reidentifyByBlinks(Xorshift(*state), observed_blinks, return_advance=True)
|
||||
|
||||
|
||||
@ -415,10 +423,11 @@ class Application(tk.Frame):
|
||||
from windowcapture import WindowCapture
|
||||
video = WindowCapture(self.config_json["WindowPrefix"],self.config_json["crop"])
|
||||
else:
|
||||
video = cv2.VideoCapture(0,cv2.CAP_DSHOW)
|
||||
video = cv2.VideoCapture(self.config_json["camera"],cv2.CAP_DSHOW)
|
||||
video.set(cv2.CAP_PROP_FRAME_WIDTH,1920)
|
||||
video.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)
|
||||
video.set(cv2.CAP_PROP_BUFFERSIZE,1)
|
||||
print(f"camera {self.config_json['camera']}")
|
||||
|
||||
|
||||
while self.previewing:
|
||||
@ -455,6 +464,7 @@ class Application(tk.Frame):
|
||||
self.config_json["white_delay"] = float(self.whi_del.get())
|
||||
self.config_json["advance_delay"] = int(self.adv_del.get())
|
||||
self.config_json["MonitorWindow"] = self.monitor_window_var.get()
|
||||
self.config_json["camera"] = int(self.camera_index.get())
|
||||
self.adv['text'] = self.advances
|
||||
self.cd['text'] = self.count_down
|
||||
self.after(100,self.after_task)
|
||||
|
@ -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 ", crop = None, 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, camera = 0, tk_window = None)->Tuple[List[int],List[int],float]:
|
||||
"""measuring the type and interval of player's blinks
|
||||
|
||||
Returns:
|
||||
@ -30,7 +30,7 @@ def tracking_blink(img, roi_x, roi_y, roi_w, roi_h, th = 0.9, size = 40, Monitor
|
||||
from windowcapture import WindowCapture
|
||||
video = WindowCapture(WindowPrefix,crop)
|
||||
else:
|
||||
video = cv2.VideoCapture(0,cv2.CAP_DSHOW)
|
||||
video = cv2.VideoCapture(camera,cv2.CAP_DSHOW)
|
||||
video.set(cv2.CAP_PROP_FRAME_WIDTH,1920)
|
||||
video.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)
|
||||
video.set(cv2.CAP_PROP_BUFFERSIZE,1)
|
||||
@ -167,7 +167,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 ", crop = None)->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, camera = 0)->Tuple[List[int],List[int],float]:
|
||||
"""measuring the type and interval of pokemon's blinks
|
||||
|
||||
Returns:
|
||||
@ -180,7 +180,7 @@ def tracking_poke_blink(img, roi_x, roi_y, roi_w, roi_h, size = 60, MonitorWindo
|
||||
from windowcapture import WindowCapture
|
||||
video = WindowCapture(WindowPrefix, crop)
|
||||
else:
|
||||
video = cv2.VideoCapture(0,cv2.CAP_DSHOW)
|
||||
video = cv2.VideoCapture(camera,cv2.CAP_DSHOW)
|
||||
video.set(cv2.CAP_PROP_FRAME_WIDTH,1920)
|
||||
video.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)
|
||||
video.set(cv2.CAP_PROP_BUFFERSIZE,1)
|
||||
|
@ -12,7 +12,7 @@ def firstspecify():
|
||||
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"],camera=config["camera"])
|
||||
prng = rngtool.recov(blinks, intervals)
|
||||
|
||||
waituntil = time.perf_counter()
|
||||
@ -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"], crop=config["crop"], size=20)
|
||||
observed_blinks, _, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"], crop=config["crop"],camera=config["camera"], 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"], crop=config["crop"], 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"],camera=config["camera"],size=20)
|
||||
reidentified_rng = rngtool.reidentifyByBlinks(Xorshift(*state), observed_blinks)
|
||||
if reidentified_rng is None:
|
||||
print("couldn't reidentify state.")
|
||||
|
@ -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"], crop=config["crop"])
|
||||
blinks, intervals, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"], crop=config["crop"],camera=config["camera"])
|
||||
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"], crop=config["crop"], size=20)
|
||||
observed_blinks, _, offset_time = rngtool.tracking_blink(player_eye, *config["view"], MonitorWindow=config["MonitorWindow"], WindowPrefix=config["WindowPrefix"], crop=config["crop"],camera=config["camera"], size=20)
|
||||
reidentified_rng = rngtool.reidentifyByBlinks(Xorshift(*state), observed_blinks)
|
||||
|
||||
waituntil = time.perf_counter()
|
||||
|
Loading…
Reference in New Issue
Block a user