From 79cbe7c227975a05043cb389f388558acc1f97c8 Mon Sep 17 00:00:00 2001 From: jeje <jeremy.rioux@student-cs.fr> Date: Wed, 26 Mar 2025 14:55:48 +0100 Subject: [PATCH] le direct marche --- .../__pycache__/video_manager.cpython-311.pyc | Bin 5804 -> 5816 bytes Objet/main.py | 2 +- Objet/video_manager.py | 38 +++++++++--------- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/Objet/__pycache__/video_manager.cpython-311.pyc b/Objet/__pycache__/video_manager.cpython-311.pyc index c623ba62a664db4291ff0bcd6d3ac8e8a776ffc8..8643a0c9f14decf6e2fac57215d802b78fa5b6b9 100644 GIT binary patch delta 2031 zcmaJBU1(Eh^!sjZ`jgz7q)pN!ZBvspZJKCjTWqJU&JH6pt@y(V6H!9!jbi3c`Eo0> zq|}#<J`{<3g~^bSO3^y|;MfLx^=%Iha^;R?9UTrf#$b$$?a7C+bCTZMmdQSnbI*7F z&v$;-`oHRzAIh?gz!?;OzLfh+=9Dh-WvcFt7D$dF1CJuSC*YR_R4ab#CucD*#lmk3 z9n{X>YHkxs4SY~=TZk(1qT|pGBL7x6oKVC9N!tz8f&e$kypfz};3XOD@YkB1{F$XW z;4tVAn2FzVs=N3fmN@Sgz5G+B<j=Ki6En@`TKOrl!)~gn+aq;Cq=ph9IX6FLiTOMR zMcr*+!1MAKvfrO>Gf4ks?oay+Cd9cNH<f1Ly&-3>DQAJ3pI@{38<fi|JEihP>uDO` zKUxQQyy1riRAdouYrIZVe75n3W5d_3`(mq9^Cfg&;`3h{p9zi#2(63LS28!_0_)~a zZ9dw=zqj?#1Q+bLX^h{o54+LjBg(qrlgHYI7|7TYzJo}>$GSx-Zr{>@g}HK5CyViR zX|j7Ckiq0G_^dbQ)$7w~_43s$8$lJr#vQ4P9^y}=PVn=MbR$yJv9J)x)D+nP#CE7; z<q#d?AIf|7$AC9wb{bq7;E$d4*FEUDkKn0taH$`K*88wXnS;NSdXJ}TZHY_}+m4&9 zx%t|r1GRb6R$a$z=X%#dFPKdN^=`smkWCHL<pU01rZzEXXBPAyfbGYo{W)5o5R0jU z{^tbM>;#BZ*r|~u=hZprf!tOslF|9|=OC#$92nUMyCCLm3J#4KC?yJchp0|N0s=R2 zFuSEmaxOz=$DC|YTMhn2;Q@Gl%+sQj+GgN=x|Nw?nFY?2kT!E&oWVfArD26A;^yM$ zEs&CXGpm;Q0{MSKXa@gr>j~Bb#wLHm_hslP?qRq)>U|YPEQA0PX80lulVRA*EQp{B z0j9NXWtnT2vJ5J5fG|IjaUNJZg4&FAAl3<By=7)v$*9@%MV7gmO=mOtn{jJxZ1^Xx zpf`#l7M4}>Sg{Zu7$nWLXZ{G>^P>>!E%L(dTs(aD(sO%{X7AYuMOT`a?JM?$q%H+3 z{!ZN=Urnx^)ckKOBo|W~;b>`c<;=r#_s@OVtq-NNo^icrTnkU=;R)2}+6ab9o|VAr z<k}f6Jgfyr^x(+CiAo^08r2h{T3~cx{1<Qg-T8x>w^#S}R!M{0R|7>_iS(}YJ?y{V zzr1&4?;U5+Qk+~mTk*A5iO|ws2}O&^rBuZeC>|{y1uyr`u8M26CzD^K_2Kcalh01- z$1jxkO=&?z4=P1*$yRZB%C3m+ij*>%D^^DVR%P^<s`+&hN9$s`)bw2LE6aTq$@QHS zc`ijXDXL4+vJ?eMS?YqUN?}dvuA>0qSG5vH9CTpyG`5x}YHOsaUR9i*deLg7eMQl5 z@1YP@Cy%QDtAd0v0DQn5qG$MN_c2&eAG=3dhLN*lBmLy=r04lR?lzF{dUg-=qQnq_ z*Ad{3WTOa@2*wb+4d4-BxWS+Sracj7o3*1#OfbZkJ)=&yHCiPmNbui132@=_4$@sb z<sG7NUhsya$G`|Q)yy?Ef#&Kq0ejgrdiA<8b0zyGdzU};elT!?(m<8G8va?M|Gk}i Lf!}Bw64Bhh)p~|t delta 1856 zcma)6UuauZ7{BM<+%*4h{@f%@leGEMZcW$GrmJm-wX(GvwQ5DILM>Ysnphj#rrg|) zuB5aKga~CsP9Ag=tT5`v>X@jYFT%hFA0{>uGz9k|^uY%qq7Nd7e&5aRZ7X~5mj2H7 zedqgk&iQ`%;`H8W>ql0riGhz@{dq3-iIo!a1O1T5{^#;chTsN%DfTTES7{{A?C><n zx#&HE(3xivdNkvg;*M%E->@QPIGQzfP%~>}Wr030cxck-p<Aq#@?88sCSs=Ffx~^) zamJ!%Na-N6Rn_t=Xf{n_GCEb>5!A-$vXkd|@Uv69AnG;+IZAJFG2%qE9S)|&XIyIZ zF{?<21;5#@?j3KNxYZsvJeo(3D#3ZZs=N!rT~%SApJr8&|DV54^@r|`%8&C5Fw7b} z9wgRE=J6R?)UXuu3KP>$*7&RQsdTocpG_{Nr6fJizfAnJ#K(QsTzVlrD<>KoH6yHv z`K45Pm440tq{lK+JKfc1Nt$|^M!TxP@Q=Zs?}I(%V7wBH7sj?GtHD-W9(h|T-jla= zd$zK7u;Ly3bgt<kYioxDHQn+;@>-0QI_No*mz<>2rcTmLubXa=7<HJRa$)axh|~c~ z4ks=ofseV%JB$XLf=#CC@|MmP*7pqoDMoLar=oCj22zG$sTp%}b~z!>!_kH?M9tx_ zw326OuO$F=UbI||C^4KA0Usq$dK#r;AqSQaIZyT0?m!IoX0`bT1qYpj|KF!r`nkD_ z4%<w6y!>@Szcly4h-L^aIz{2}gMg><(XR|Xwm}(=kuCHF`;5Oy-NdKMXbQ+iI$`r) zU~$GX26aQJ!pUw`hbV3rTDz;YH^y9&*Rh2|E|`yU;S6#?<5Ql`nNkES8m9<@gCc7> z%&?8tIfW{MS~jE60SX;j9Y~dp!{p2=Icz<}u0hgSHlZD6Yekt!ZgT1uY(M5~JVg}b z#>+TRLVik41WYWoA%qY_fEq6)m*&zE5<<dJm%Lqw0R&}agDABE#PrHo)l6?lF!{=i z(7Zk9IRSe$PD;x;eAbZi!PMQeceh>uL+&4dP3FMuD^0&UQ<~Z7uSEOH?*4*_4jJ00 z$q?Rn<O{qvwLN`X+-n9dlzn{_Uthsibw_tnl@mi{_fWxf;P4dJ%8p3I5venJW4i){ zbJf<!_M0Cp-dub?yPbXKrNU@YEVWc!o;t%?J=H*{s4E$(c6X64@=#>EWoPWx#C`Fz zwo3fsH@b&HW&HAfZ^BgeU8(r40P`m3-wv;(ZdD5aLBh`cQDxW-jf*_IDCIVvbWgxe zII@KIlEYv65Rx!q_pocN^nu-{Po$H%Yp>Buu5lpKu4}+Ci0;R@^Q$Y+JcIE#MnGAy zxuDxJ7T^zC5>NGZVn{#2Sp=lFG=gvuVH{xs;0_}p`JjGYj0nxVzs_hdKtC3T1%ZdV z)F49t6uY3Ss5?%=^i_8sIYkTZaQpL+1m1XMNt(oTjhrC;Wf)$}rdAfxBhu^iTld?& ZFA(CZGf&3f6#E}XcQ4cHo<1F>`xn9>ZyEpq diff --git a/Objet/main.py b/Objet/main.py index f4e687c..097fa74 100644 --- a/Objet/main.py +++ b/Objet/main.py @@ -68,7 +68,7 @@ class Main: cv2.destroyAllWindows() if __name__ == "__main__": - main = Main("vid4.mp4", "video") + main = Main("vid4.mp4", "direct") main.run() def is_ready(): diff --git a/Objet/video_manager.py b/Objet/video_manager.py index 5941a34..dc367c0 100644 --- a/Objet/video_manager.py +++ b/Objet/video_manager.py @@ -19,10 +19,8 @@ class VideoManager: self.video_type = video_type if self.video_type == "video": self.cap = cv2.VideoCapture(self.video_file) - elif self.video_type == "camera": - self.cam_index = self.select_camera() - self.cam_index = 0 - self.cap = cv2.VideoCapture(self.cam_index) + elif self.video_type == "direct": + self.cap = cv2.VideoCapture(0) self.fps = int(self.cap.get(cv2.CAP_PROP_FPS)) self.total_frames = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT)) self.over = False @@ -68,20 +66,24 @@ class VideoManager: def update_frame(self): - frame_time = time.time() - self.current_time - self.current_time = time.time() - self.time = self.current_time - self.start_time - self.current_frame = int(self.cap.get(cv2.CAP_PROP_POS_FRAMES)) - frame_targeted = int(self.time * self.fps) - jump_frame = frame_targeted - self.current_frame - - for _ in range(jump_frame): - ret, self.frame = self.cap.read() - if not ret: - self.over = True - break - self.frame = cv2.resize(self.frame, (self.parameters.width, self.parameters.height)) - self.current_frame += 1 + if self.video_type == "video": + self.current_time = time.time() + self.time = self.current_time - self.start_time + self.current_frame = int(self.cap.get(cv2.CAP_PROP_POS_FRAMES)) + frame_targeted = int(self.time * self.fps) + jump_frame = frame_targeted - self.current_frame + + for _ in range(jump_frame): + ret, self.frame = self.cap.read() + if not ret: + self.over = True + break + self.frame = cv2.resize(self.frame, (self.parameters.width, self.parameters.height)) + self.current_frame += 1 + + elif self.video_type == "direct": + self.update_frame_easy() + self.current_frame += 1 def update_frame_easy(self): _, self.frame = self.cap.read() -- GitLab