Skip to content
Snippets Groups Projects
Commit 959c4dba authored by Rioux Jeremy's avatar Rioux Jeremy
Browse files

affichage mi smooth + appuyer sur echap pour plein ecran

parent 3211fd04
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -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__":
......
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
......
......@@ -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()
......
......@@ -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:
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment