diff --git a/Objet/__pycache__/display.cpython-311.pyc b/Objet/__pycache__/display.cpython-311.pyc index 696fe0c14ae595903f24b7cb38ee0af0fa6dd156..47c03061a540418584efdf3d7ea6e7fdba203caa 100644 Binary files a/Objet/__pycache__/display.cpython-311.pyc and b/Objet/__pycache__/display.cpython-311.pyc differ diff --git a/Objet/__pycache__/gestion_clavier.cpython-311.pyc b/Objet/__pycache__/gestion_clavier.cpython-311.pyc index 124c2c9480caed225c6d0dfdae008f8d71ba09c3..23521c0e6553991526708d81d478d2fe60dcd60c 100644 Binary files a/Objet/__pycache__/gestion_clavier.cpython-311.pyc and b/Objet/__pycache__/gestion_clavier.cpython-311.pyc differ diff --git a/Objet/__pycache__/parameters.cpython-311.pyc b/Objet/__pycache__/parameters.cpython-311.pyc index 19264a5c389d48d0c0d2bad8fb832f43da817c38..9997445863ed0721673cbb0b8a9d416fd5347fe2 100644 Binary files a/Objet/__pycache__/parameters.cpython-311.pyc and b/Objet/__pycache__/parameters.cpython-311.pyc differ diff --git a/Objet/__pycache__/ui.cpython-311.pyc b/Objet/__pycache__/ui.cpython-311.pyc index 0c531f6e5aff67b0bd8815cfaeca7a7868e32057..9f56049622caeb7b188824a768688d08eaa6bf5b 100644 Binary files a/Objet/__pycache__/ui.cpython-311.pyc and b/Objet/__pycache__/ui.cpython-311.pyc differ diff --git a/Objet/display.py b/Objet/display.py index f733da11f820b58551cdceb8ee738cc39a8c445e..60f08b51a7e2833d5d21eb794b382b7c6e1d32ae 100644 --- a/Objet/display.py +++ b/Objet/display.py @@ -32,18 +32,23 @@ class Display(): def unprocessed_frame_copy(self): return self.unprocessed_frame.copy() - def draw_all_points(self): + def draw_all_points(self, brightness = 1): + background = self.frame.copy() for point in self.param.interesting_points: if point.name != "curs" and point.name != "bar_point_left" and point.name != "bar_point_right": self.draw_point(point) + self.frame = cv2.addWeighted(background, 1 - brightness, self.frame, brightness, 0) + + def draw_point(self, point): cv2.circle(self.frame, point.pos_int(), 3, point.color, 3) - def draw_shape(self, param_list = ["net", "ant", "wind", "height", "bar"]): + def draw_shape(self, brightness = 1, param_list = ["net", "ant", "wind", "height", "bar"]): def get_point(name): return self.param.get_point(name) - + + background = self.frame.copy() for shape in param_list: if shape == "net": self.draw_line(get_point("ant_bl"), get_point("ant_br"), (255, 255, 0)) @@ -61,8 +66,7 @@ class Display(): self.draw_line(get_point("bar_point_left"), get_point("bar_point"), (0, 0, 0), 5) self.draw_line(get_point("bar_point_right"), get_point("bar_point"), (100, 100, 100), 5) - - + self.frame = cv2.addWeighted(background, 1 - brightness, self.frame, brightness, 0) '''cv2.line(display.frame, (0, int(info[5])), (s_w, int(info[5])), (255, 255, 255), 2) cv2.putText(display.frame, "Hauteur de mire : " + str(round(hau_mire, 1)),(0, 20), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 0), 2) @@ -88,7 +92,8 @@ class Display(): self.draw_line(point3, point4, color) self.draw_line(point4, point1, color) - + def display(self): + cv2.imshow('main', self.frame) if __name__ == "__main__": diff --git a/Objet/gestion_clavier.py b/Objet/gestion_clavier.py index 84baf098bfe6fe06bcd58ad6784585a44f1566c6..5de197301b1184147a28c265814e97c9811662f0 100644 --- a/Objet/gestion_clavier.py +++ b/Objet/gestion_clavier.py @@ -1,6 +1,6 @@ import subprocess -def update(key, vid_mana, session, ui, prev_mode, mode): +def update(key, vid_mana, session, ui, param, prev_mode, mode): if key == ord('q'): return "over", "over" if key == ord('s'): @@ -24,6 +24,9 @@ def update(key, vid_mana, session, ui, prev_mode, mode): if key == 13: ui.change_setting_mode() + + if key == 27: + param.change_window_mode() return prev_mode, mode diff --git a/Objet/main.py b/Objet/main.py index 95bada3bda58a81d8fad9b45f169eb729de7f8e9..07664f73bdd885ee20a6a4e9eb293c3fd6ef4dfc 100644 --- a/Objet/main.py +++ b/Objet/main.py @@ -42,7 +42,7 @@ class Main: while self.mode != "over": self.display.load_frame(self.vid_mana.frame) key = cv2.waitKey(1) & 0xFF - self.prev_mode, self.mode = gc.update(key, self.vid_mana, self.session, self.ui, self.prev_mode, self.mode) + self.prev_mode, self.mode = gc.update(key, self.vid_mana, self.session, self.ui, self.param, self.prev_mode, self.mode) self.ui.move_parameters() if self.mode == "video": @@ -51,25 +51,23 @@ class Main: break all_ball = self.im_proc.get_all_ball(self.vid_mana.frame) self.traj.update(all_ball) - if self.traj.is_over: self.session.load_traj(self.traj) self.traj = Trajectory(self.param) self.display.load_traj(self.traj) self.session.next_video() - - self.display.draw_traj() - - if self.mode == "parameters": + elif self.mode == "parameters": darken_factor = 0.5 self.display.frame = (self.display.frame * darken_factor).astype(np.uint8) + print(self.ui.get_brightness()) if self.ui.is_mouse_moving(): - self.display.draw_shape() - self.display.draw_all_points() - - cv2.imshow('main', self.display.frame) - self.session.load(self.display.frame) + self.display.draw_shape(self.ui.get_brightness()) + self.display.draw_all_points(self.ui.get_brightness()) + + self.display.draw_traj() + self.display.display() + #self.session.load(self.display.frame) #cv2.imshow('main', im_proc.processed_frame_difference) cv2.destroyAllWindows() diff --git a/Objet/parameters.py b/Objet/parameters.py index dea29ba671d6343cbb3a0a4b3b56ea8aaeacaeae..3d7fe79f5ea77557574d6c9a9c4f05f02715142e 100644 --- a/Objet/parameters.py +++ b/Objet/parameters.py @@ -13,6 +13,7 @@ class Parameters: screen = screeninfo.get_monitors()[0] self.width = screen.width self.height = screen.height + self.mode = "full" # Liste des points intéressants self.interesting_points = [ @@ -39,6 +40,13 @@ class Parameters: self.ant_height = self.get_point("net").y - self.get_point("ant_tl").y + def change_window_mode(self): + if self.mode == "full": + cv2.setWindowProperty('main', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_NORMAL) + self.mode = "normal" + else: + cv2.setWindowProperty('main', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN) + self.mode = "full" def get_point(self, name): for point in self.interesting_points: diff --git a/Objet/ui.py b/Objet/ui.py index 6d14687bdcf7593791e61f0033363b5b9776e327..cc0275b876ebce3061315ba745b44a1754ee2137 100644 --- a/Objet/ui.py +++ b/Objet/ui.py @@ -55,8 +55,15 @@ class UI: def is_mouse_moving(self): return time.time() - self.last_mouse_move < 0.5 or self.point_near - + def get_brightness(self): + if 0 <= time.time() - self.last_mouse_move <= 0.1: + return (time.time() - self.last_mouse_move)*10 + if 0.5 >= time.time() - self.last_mouse_move >= 0.4: + return (0.5 - (time.time() - self.last_mouse_move))*10 + return 1 + + def set_bar(self, x): self.vid_mana.current_frame = int((x - self.bar_left) * self.vid_mana.total_frames / (self.bar_right - self.bar_left)) self.vid_mana.start_time = time.time() - self.vid_mana.current_frame / self.vid_mana.fps