From 2acc7c96e750342230d134d249a3f0afc9d8e758 Mon Sep 17 00:00:00 2001 From: Lukas Mehl Date: Thu, 23 May 2019 17:11:44 +0200 Subject: [PATCH] remove bgsgm tutorial, set references to OpenCV-Tutorials --- doc/py_tutorials/py_tutorials.markdown | 2 +- .../py_video/images/background.jpg | Bin 4343 -> 0 bytes doc/py_tutorials/py_video/images/camshift.jpg | Bin 5566 -> 0 bytes doc/py_tutorials/py_video/images/lucas.jpg | Bin 5761 -> 0 bytes .../py_video/images/opticalflow.jpeg | Bin 6488 -> 0 bytes .../py_bg_subtraction/images/resframe.jpg | Bin 20013 -> 0 bytes .../py_bg_subtraction/images/resgmg.jpg | Bin 11631 -> 0 bytes .../py_bg_subtraction/images/resmog.jpg | Bin 6749 -> 0 bytes .../py_bg_subtraction/images/resmog2.jpg | Bin 10941 -> 0 bytes .../py_bg_subtraction.markdown | 171 +----------------- .../py_table_of_contents_video.markdown | 14 +- 11 files changed, 3 insertions(+), 184 deletions(-) delete mode 100644 doc/py_tutorials/py_video/images/background.jpg delete mode 100644 doc/py_tutorials/py_video/images/camshift.jpg delete mode 100644 doc/py_tutorials/py_video/images/lucas.jpg delete mode 100644 doc/py_tutorials/py_video/images/opticalflow.jpeg delete mode 100644 doc/py_tutorials/py_video/py_bg_subtraction/images/resframe.jpg delete mode 100644 doc/py_tutorials/py_video/py_bg_subtraction/images/resgmg.jpg delete mode 100644 doc/py_tutorials/py_video/py_bg_subtraction/images/resmog.jpg delete mode 100644 doc/py_tutorials/py_video/py_bg_subtraction/images/resmog2.jpg diff --git a/doc/py_tutorials/py_tutorials.markdown b/doc/py_tutorials/py_tutorials.markdown index 532da4e7ec..7d9298d68e 100644 --- a/doc/py_tutorials/py_tutorials.markdown +++ b/doc/py_tutorials/py_tutorials.markdown @@ -25,7 +25,7 @@ OpenCV-Python Tutorials {#tutorial_py_root} In this section you will learn about feature detectors and descriptors -- @subpage tutorial_py_table_of_contents_video +- @ref tutorial_table_of_content_video In this section you will learn different techniques to work with videos like object tracking etc. diff --git a/doc/py_tutorials/py_video/images/background.jpg b/doc/py_tutorials/py_video/images/background.jpg deleted file mode 100644 index b45de1e2f0c37f6a670fe6fc47b13f9977db36ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4343 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 diff --git a/doc/py_tutorials/py_video/images/camshift.jpg b/doc/py_tutorials/py_video/images/camshift.jpg deleted file mode 100644 index 72a2eff5ae6f7e89a6530db9c7aaec4a5e4c6872..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5566 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 YCAIG{Ay1~M7K5me`fAU^f^L5Q2iY#OH~;_u diff --git a/doc/py_tutorials/py_video/images/lucas.jpg b/doc/py_tutorials/py_video/images/lucas.jpg deleted file mode 100644 index 19d839b63ba0075934e39f9b5445aca45a382eca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5761 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 QLz7zr3f;&~nahd)04aL}kpKVy diff --git a/doc/py_tutorials/py_video/images/opticalflow.jpeg b/doc/py_tutorials/py_video/images/opticalflow.jpeg deleted file mode 100644 index bd2a88232fcec222d87992d129f6803a2b022a36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6488 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 LkrdULbvOMVhY`nv diff --git a/doc/py_tutorials/py_video/py_bg_subtraction/images/resframe.jpg b/doc/py_tutorials/py_video/py_bg_subtraction/images/resframe.jpg deleted file mode 100644 index 70e34dbd85c13b2540d430d7c174cafa30579789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20013 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 aQ~ng23l==MeH;GzG*dkE_xz0%fdARo^vhZR diff --git a/doc/py_tutorials/py_video/py_bg_subtraction/images/resgmg.jpg b/doc/py_tutorials/py_video/py_bg_subtraction/images/resgmg.jpg deleted file mode 100644 index e7178fc818327d1495dac65bc22b4ac4745a7cc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11631 zcmb_?1ymf(ns!f+AuvF2mjw8L5Flu93BiMgAi*U;hQU3!2Dbpg3GM`Um%&{J9o%7( z0Fyw-&v*CketY-sp8a>vR-d=}baz#EJyq3j)$>&SUi`fQJW!HTlmkE@007+`!0%;1 z2Ef9=#KgqFx{I)|u&}`p9PnKr#KXG}AtEFuCL$yvA|a=xAR(nDBO;=FNJ&jc$H2fq zLh*?C5j`_4Jp=upF9F?U1!IE=aBv9dNr_15|Ht8X7eIsqbb)#>K#zcXL?8?z(CFz(%z{|>-iYM;C3045O@@k1VIY!VGq z@FPc3-hlYeI84v0yU8@C&YAhloC5FTl2cGpQM3HP%EtbfUqJAgkg$l%3t2gN1x2M- zTCcTrboJhtTfBW|X=QEW?BeR??&0Yb6dV#7_8~kXA@O5Ua>}RFwA{S>g2JNWlG2*m zy84F3rskHO-oE|;_~6j+^vvws{KDcA0=c=hy|cTwe{hKU`tAG0XLI=nmJtyJo=z|A`B9&;8CYh%m7p@?aB7Yk*B1NgnYA;E+C#|6JXDpNUWN zoXpH=3YVOjAIXCH6WZU9{r>?A{9hsaH(-C^LI4m9&|TwU5CM_^dN_hD=U&CiK}&Q) zHniB_;L2fX_4HbxFRlhII1{?qXZpoM=-~C^)$yX@m4nL`pYhM`0-1$pwfaMR{0^tW zun1KO*2I`PkmjH7`6qjPT3o0Tehr+& zOAlMnRvue|NkQSVr0Ssmv5~p!&8il;rQln>wbI7Z6=14T}E!U;gySqvj zRrSI9VTrfmR0quwJ9fKZ6=@1s)gv#BMv{?=+*(4jJ2k~-JD}ISOXBr4%Z@si561>g*Z3G3j1gnAPht-^xGyzor(7q<8YAlrpMO0?EU34J zvI)R=@iL`HBMKF77yWG++G%PNVP70%B!ZZ2}Y)(YKk?g~_H#jGY?HO}psyZmK^kr0g_DXT%M_!*w5<8_) zF!rGnzWxGiryczpK>2N|#KcnD7!l1B!o;z2I?PsOs2N+VCbWnGmlY5WI*Bvz-+*Nm z*@O>jr@oU|qP^56t-pQyxuL+U5ly(62{o?*?&6?<%NE8xe=(PHM@3BoS>|WNGW_&c>@7AQ!gNwreMabxWfx zo2d@6pv5!Z4-3$e@UK>#lsWVK7WKiZ^U03#{D~QX)yae*+EhOR#5?M%w(O%+B*XU3 zQ+nI6C9yn=PH0XV)Q4Hq4i+1}eoG?I3M{J?>Ismdb?;lY$J6uZ*i$?APBgGij%fG| z*m&N|wZvo7TZmHN^jSa{DtQdX{`$GWg}$R+hFR^Xbh$|Z<*WMXdT!oz^=P{+!uswn z)&4b3GD+%kaz3&?($`Oi@;oGFdZ9=kVvkpFk>qNc6{THihQ%~v#PHB@$n+s z>v~)+@b*!bc%{c&% zAXE4V`h$uzF36$RNuDN##0ZUtjJ=OW>=dDrE6S`yR3i{`$1N&tJnLQL&N%9^tXR6l za4N$n95C6aFTCU7%*{iT{Vj2{-P!A!sdC%56bpiGCr=bAUu&t75;Jke_-A%YHnL~n589%Vg231$~qwMcv}QFas*YnAOK(<~Tt{#rTNl`IAcgkBU$)rh!7 zTAJB$Rf>H`!c0-6*95kl0SuxUaa3aB7~l)NozA{5_UgQ~zt*NDhsQvF`03P_V?X%kL$-U-|8aaH6G*BUyErD-c2IP5 zc6`(i(I~NuUqotwhM41c6y5E`3uYS{)rT<8n`3mhHOr$2aO1ol$ni)KX~>cS|DEYn z`@)SV>riU&XkxswZ#FKMw^PwC^lvUhlG@r%X`J{b#6@)C^_LA+o{ZVsKN*4e+7>+c z63vUf3zts7Rx7T`{|#(prdhS3;U()y^^f2RZuBOj{%s$c)jkmoNDDE6X)V;j>l%n< zxHISUi%7BIGG>48Q3_FMi6B;nS4YN>-$3_^HirED4vzERz=!YcT=T;!Z$txpnAx;e zUY1w1`)@SRZeNIB>#SyS^mW2uc&c*}prf>;@o39pqXVnjH_AMZFAMTz-Jc7O&s-^X zca1w>0lrRFEnHO(gEeB8n$PindAhAj)mC|SPxpqXM!bkUj(?7!jnTKQ=R597j_{ybAb zzP=MDna(#JMLU#PHWR1FoS@>+;ZhL5+aW^%c0|VT`nD1H6k{M5q|iL)XPcO}bg0bJ z#?6Zc3BzNA?IWC%0%Ohyws+Vv?H18BQi!hDPp=sw)~N;XEnmT&bydqFv+e{0l`oZCS(yEjASxJZph*aWC~B6N1*f z*-%V+YYjm@_N9kzjZ@0jmQd*RS?!2(4f`K4!~{RY+D>q_5`gjhRkPW+dibKfZ(JkR zjMtu!4@Qdr80+;H;&mW6b{(9k68OP@gtqGA>lzs-mdf&L)as2Cy?m4=8Yk(p{6zs& zoni8m`j-;g5n8tBO*6C6*}RaVNzN;o?#a7m{Ml(VeKD|#5z=N773C~N;mhT*r;4`U z;FRhASy8aFT9Mpk)}U@s+ax=#0N9z_Kgs&V@y&fp?St`v*KQ_DN@(4CJ*o%=m9BOj(cjO6-N=j9EkoNgR~~ zn_hCcv5Omg$6J|u{5L;|VccWHfC7iRHq~`P4pLf@^QDu8VCuF0c`Qu_vBm{2(&X~Q z3yZuCKk)BrxYfQaVYBqf!8D_aIc);dp^P2 z2T!FdHT`kfa{amVty326!yf4?d|6ey^stPx4bR`=X#bKEJ*=t*1X|xRP7Bas=(kO| zLUrmpYf?XF{c%`MSiBLl5rea>-ZEa=Lb5NT-h4aqKEP={%k*p8WP!}dK`Um|FL5jl zH%q6}{!bYRs&{koYQj)~#(7ScRNLDjcXwN^9Q|f;ERU#nvOeR_H;M=MvNAm?^g98Y z@Eku|-9s;~N+L)jd5i0Q)+XX1vBLDAzjtwKPqH{AkwJQ`FxIDP0F;;oRw7Gvu8-I@ z*|?zp2q2E?s=|y|Iy-9W*i9|$>%s*hJ-NAaLj~)lwi`A*SWSDf-e*AK2WL`K14GT8 zM?tcJrv0BBkjrb%!T3?GP%FE4y1`ePKOEpqTh5K=#fNI9ulHhyvJ@ioj?G%*Yl^_d z;{Ci4Kx@H)`Cf|j;Le%8 z5N&0v$8&~x#3`w(5ec(xxEhI2UvV!UZFUAp(4b2-HdTa=Lw3r)sFcYKsBP-VdYmg@ zm{O@0gl;(C-dr0>_EeC6>ob1f5>28uUH41-@T+!=sPe(+QzbW^ADMaz1H4b26fiP2 z{C(>XtKIL-$xedLSEc#Q6f9z-h91So$v^@Li>s0)ByVgDF_33bH$+u7R%=gZ^Ng#P z_4Vxo=Mk<_lc^%fvc!P~9K>BA0~~9Nkj}2IW%{eDd(|k&PeEVsF#WVNGcWj@Ud5utC3V7kVW^`qNn=307!hFIGEj z#M^(~PqqLxC5=sL0`J1-MqtE?6=|vDEKzbi9Co%vuVWty^dnniBgy@a*h zHQ8jUJhLjAlHr>8K}LV+s@fcM=d~Qdo7ngR%zUHl7ZHr)7Y}9qaOM$1>Z2#=?t7*F zPt{a$atI5z=EWW&Gd=6>*XwhNs?Tw$%xcd(OP(2G7mY~1-mb|C-l(afk~XrwR!8q4 z;l1bzZ^iO`FNP0dmi82h1xp5Gd{69_xOy>5@$*BODxb$GR)y4^MKKT`3$WMYh?$r2 z&nWYcv!sm4Ft@r34h#o<)D-%m6lK6dlK6H@j0aIr>%3F0NS(1wpeQc#EnqjPY;#o; zu7@I9D=6GgPNOS7hPVkXY9)M4v{aAlV^CuH^GFT$X3+G;Nv{&lA0^BknxN>oIJkFi~)R(2p=wQJ?zZGeKXP>elt5eG0E&!G_6x%7#WouFS5G*<@Fa z#^i%20*>(m!_<}5>UZV|ibH=S{B30Tb9DGm?O1|Z*8@*OWR_lN-j(y=K-O8o1QbY; znCyJ22YwYN7%-shN~^=5#D=kN93t@;EyPcV@8NZZe3`|G@*1L_sFgFP&}^;Y*F1CX zw0Y3AWzFc&Brts-avNLVZ8Uwup6ff_!EnBMTRdFt*Ynzy?HdVA-do;#)i+&1b;4%% zE;c*N=Pur#ywXe2Y4%7sl_z+!Miw9g0FR3Sqo5qxZ$|NXH&&>|JG!->ww6@jQ6@Jt zFY1!6_2pY(-G?T7PA+V^XU71sA_#khj1=@!`uvdH^jtfUv~$TEmTw|oI6%Jkgb|Ab z`t)%{(>+2di6W=dHJUO#Sdj|qWi(Bt!f<>buXx#}ap-TLfgl?>M!xW(^_;1@NY^@k z86jit9>2#37aiD<+heYc59r<#vmcm1r1W)&P36th(fG*s__euamS6C`IH!fl^{_*5 zgiYk6nP?}mEe9$HH`Y>+oDeIWgvy4L1?_KebD`9%Ij&Flxrll`?JQ-MD%{a9VOqMV zPTUF!#+6^WGyQL}gGOaxSBemd;T`$$#o?!5cOVM&T}T=$*&^ba6M8p+x#2iOb|+8%oo~*~e%JmoS=X+qBCnQIPsGGh&UcnZDukP?frNiJ`{N8^zy4Rsre8Z-k0+`;BC5Rnf%8nmyd^>yw|uyq5{wZF@)w&^V!L;; zI`^^Vb#xuInY1e?@r2^Jwz+dtVDqb<6DnHQ34y=9{4XUaftjQo?s7mq*7OP;X|3{D zK4k#l5&<%`qJbG>{hpZk+Tl{F6*f&(Ud1kq6_gZ183U+|)o;TuSc3Mvp=8^qrDwJR z9=8)GDk=)78R;KnW#|}}P6#xlx;oq2UcHjVYja>-OA1UNeV+*5(h_4Sv2H|YXcLJMV!wOg3n#(8+Joc(a07GIKASs6UPNI5U z*G}3a>T-I9*xn&Wr%{*1rBC|LU|c+e)kU!OZQ%gK7! zc4wBy#Rrq$fP515JM|m##ryk|dzkdWBs+Ig;(uf!|8%V#QdnPxuxf1KtSoXTNcSGR z(k@{qdO7G6lJdFxAZ_Bm_}l-T7vRF@))3)?J{oo|;_PaGW`>OrCp{sNTtnRNe^r@A z2oaMY4eO&WEV8#Qy3@yrnLH~TpEx}lBEcLA50toRqM{sdHrhI`>N1Ah_-&q%tb3?) z80|YRE9UGw*(KAdvUO>DYO9xP%Xiz!b@gSjVeCfSO+ub}lcK}VH>ZyV(vpL6j2CUx zmAIz|R>V6#eys)`(d$?-K?6d>yezwm|4sGySM}rHp9?ga1EU}rPL7JQfN$RI=q*Fr zc}fo*p6uL(KEC!Xzg5&F*4qf7uV3XUJ_YUKmaA?J=wk>|T|gpkV$kke>*U^&3naSd zh1C+-PM?!Ln&!nl1;S*KOuNKla_D>7i+YXgJNvlNFSllIR6J-Dbkp6k3lV)0(>Q}K zQ=bV=qd7ytR0Be!pv#FqzpynD)K0$kEyr}_1=M3Wz&0)Fy#J~L^&+0^!?=^Q5Upi^ zF%#6d_N;fEd>!3sa9-J3<{_zce#C2}ci5u;NN$A4L8I`a#I)d^ugJE8RMo@t^%D$~ z{c{xlWg~Qp<|w>srR{t*TVf?adbn>%Yacv}4JMoRh`r25hgG8ejHkF=Iw72uZBZ$q zqU;#nQ_L?)c;hpR+of+mf;QE4*H-i=9POB{PpXJMp3X=_2E6Cpw@xan+ayGUH!mckBMD5>f1u!H^ZXtA*rNSN)-n&lLndJ zs`%!6ko3;elbpYcM^^9(Dys;Ni&|ZU5G-rm8*7a2+fEQkQ1RyY4PfDS%%1x4>Af+s zR3j{YNI~BW|K>4YFS=AbHzeQEi&?1;X+tfK2qM1@ zB2#s!h6d$MVkAC-$TR8M5Fu^PoW;n`?)0|&_e&4rlkwu40urO577iGWn~|AJQj->m zz3T)Qk_7rIPkGm&kTO@-VCj#l7FsOsFrOS^$EW<o!htjJHR$G``hiCo_bZyU2_A0YG4GoEMoiha2>B^}=W+a(4 zVO>}r!nX%U-I)F`Z+A6fzaETY!2o1BA$gc=j1TdN0?B7)9&Jn~UV=5}#whBWnz=N= zIW7bTlPOi|Fe3TgSM06e5hu6rds)I&^POSTC+p$fbe0vXkuO&jMW0`mzhO5a5$S!D z_zT_h>;|{<>8+&o{mQRrecs8_m@1cfW%`1{K*K zXRa~#GEQ$$A>lc1kC4f0%PVAu&Olc-E&+h!x`POq2Oze^IR{ zX+;UchVL`O4#vEf?)oTOXH()p7SZ%#)zZoLgG#2Y%&!V$H9kDVzV(OMb??GAeYlbG zL2af*6F$X;=yy{TZ+t{d-?EIAghOH|@4bFeEw?NsMsi@xe>=M-I(6fjcOyLOvTCDz zUFHKw7t1~=$PYy7g1K;zp90-2P67H)%ozRlFs|dm2WxM}VC=GS%+(*w$}u=hE*S#} z9i)pn-XHVXtWnO2$@^5oS;nF+=fh!+f(N^D@<64kTTZkbz<5u@?28pp)~IO>%U_a* zL7nMyqFE8Uoc+{PA6v6zQlU@!#x3Oe6bhUi zCmRT$dy-3G8}r$y_XhLd+vWRs_h$~``X9fD11G3kAoeh$umHlcs!4yJ#_LB`C7*96 zvM3rebC!es$##HT8kBN+XNto4PpJ#Pw;Xj?)V+v{LCAxS|6MvFbNtKYye z#U>t|&W5co^)uY7pDZiqD~Q1yF-7L+M>}3gqUnh%Pfv^=+|V_hCxu191k}ine%?ls zeH;=a*+1tPYgZKGk$i{=p{tlh8Na;&<|QZ$ZYM>)pbd+Uygqs*$8zpgJ35OMf-_#G zX-UO`YkKUIQH_zG&B;xj6JyOKYCHwIK@qmDa){=^qA$RU8_X!d?fe&rj zi5@80d^hE)k58Z<$(H}c+N`55?8?Z@BF_$ijjT(h05ea5`}kkw%g4yYys&U((bF{v z6bWRn134>9U(gwyBdpzCtr_6te}dzZ!#)(Oei0{Ayy4jY4fto%-jbt9x}G(p++w|# zBptDtA1l^-Q_y1wglOaw58`fTr|Rt3wVzACrqAs7SLN2#>)z^}Z0j*`1uQV`VJSQe zD`pH7;vZQK=jLW@O}9)Ji)K2OicA(3QU@@y{7uxswI1M0|ITy!K4uhl0P-5fpxCZ^ zM;PnUg%v{&rMiarm3};^b-`@|!9O#o`i|2RPM_TJ*mOQ<<151F>%Dz+-d}$#I3kp) z4GoVRjOYSdAwm{=SYHUR!F_2uy~gy19i(bx)>$NT-2B$`FZ7E|x$*}JGB%v+0AE{k z#;9!~V<+E%Ea4e%YuF}F{=rFsuJx4lWkZ^qw7$pmJsM1a;6Q9(;#Ef0U4|t|qIyZl z8?=27wRmBoBkKqI*Ie|s-$ufTm?N*8ikYr7?Rt40J`V*8R|Vd9dX}%CbHCy{t4Cb! z4(QZrHzpaa3CNoe({-|aAa)D+;oz~^G5V{l)6$;&Mgbk#!FFC!qj?!l*45g<$Rp); zY?#gZnTm0nUbrev40;}Pw~GMJj*GiZZ=-(JrLW;FG~Y5|S};k8iHeDdpj;Z%8USaU z1Se1ZH}vMep+6vZxsFJ+R_mRa3IQxDi^$<-h&sjd&jZs0JLAX+^~Xu1r4G_Ln7Nfl zUIBBi`q9!APmV`VS_kWbWpN#+v|PxP{!t9^OqRjzv2Z4?e*4^4U6ohrLWm)*P(zBs z6~=p{l&~h+$>iE!=g#xvRem;8RHa*D-BxJ^(Ta}V7M;G-e4DK49|ap{Xqk%KX>DP~ z=}pl}manOK*|zzn1|KIR-7^x$EUkSXKqtbyI-~OE>smd&Uw^9Ds(v4G{dz=ryWDep z4wH5(%W*RPa2;sVIbSeFe=a&)r+B4Q8~JhyIdej;&wJTeQ*=6aN&(3UW=bIQHAvtI z1Z@ahvUayiYN2Va<*lX2X4-V@Z70{eVJvmu zq=@iGVRe|FvJ7>wKDsdl4Pjyw(sA@i+NwNXczJFh5PWxnjo1x)n@k0 zaJ0PCt-5Q_@5ejPRlszI6?$Z2f)1UoTkrEqWyV`JU(vA`aUjUE6mD@>8>#BM^?bDx91DluIp>csHfnT55)`Aje(+Z4rJn}9b(FI7g zV4?$hvaD~K?eom?DDremehC?ztGf4w!@>hvq@VyM;SF5W4`0k1`7pyd7n%yL;pNxU z-wWm}>k@7mcs7K00Q08kiVPRHk(`v+z()sXMZ?Ar32OAZ-ucxH%g=XF%u}3gO9kzo z580`uUX7X42=3ywdmx;%K)e1DRlh!U@In2EZ&^l=@1}BR#JI$G8;-2)ibg`M8bVzj zH>t0gLuetGdyE)I*|qE4tAt3h$_i+q!Mf4PAurQ}vokf@Qj~5jUShPyl1p}H z|9sXedGol+ujg)$z`qJh|L13nnNG{t$QF2y9|g-!YpM%$h{;fMQI0N)v8y_k8Rl(a zDQUELy?``^PlWkB;P>9$jTog{k&~bQiuI;wi*}bY!>&Xtw2*NkN{`@ zPFR5Ji*Fei;C(PrkO6@d@%SK4x(@*1?lJC_*j5&RgL9<}X16pV_ehjedY+ zq5}=|MYjyl#rtIfGn7tiVQ*}`KQ^4gmo&C#L4t2?dumHI8Wwf8d!^`cK?e#01ITa? zf1H#O%-oE&EJkl#Yt9QD*9*D)2C8eCleOciuI^z^0!G1?68;YeOYQuu2(i%VeKfWb z>>g*`L$qIHNYvh9^;dL9E9kA5wA@?d{X@z`TyeQ%>jQ#v$T!nptLa5bau2F=>`iLS*n^Ng3YSiHQ-D9##Qxhr{a9#eFXqWM+5f_y-F) zV4f_^0fnlg=FCYGp9N-YI?t#LlRGvgn}HUxb(OX z*|A^!v%bzCdNH(X(X&8)QK%X*%MFxCF!jOBllD+hhNijtv z1LP=;J{^qUlz?*xoRklq7N4|7Q(d*1dJ|>0}O|(bd$^1VA7F z0G(dI$t0i#kbsGaiNPeN6$uFmDTI;?a$2a*oFS*ArKY2!rKY8&XX0R{XJBKbrDfq^ zVdLb4LZS4`y!^ae{2W|Ru3tU^I(-#F3OP$gc9x5QmVxUpmy=e2mJDbGwSz&t01+(+ zOba^c1fZvOl7N0Kz|R6A0u!HFNk&d_=5#@m;NMV>BMZ@k`o!1d~%RF|)9;of9}OctJ=?T1NJ=oV=R4hNhOb zj_!?{CZ=ZQ7M2co?%s2Ba=!2B_2{v;kMEO^r=elt&mtldpC`R|nVgcEmX}{p_^PP5 zr1Z_(n%X+#yZ80&9i3e$bazkh@W|-c_{68r80`GQ;?kGpuisWSx3+h7_xABW4u0VR z0pQ=TPV3*m{*H_Gl#A$eS%@LOaDj-tPX(qWCgHh6N~d}qV&_iJD-lG-a5W*fx{aJq z(iq2R?=eKd#4m+CxA_a&uVnukSn&Ug><_TNabW;TFz9sgz_frefbWeI%pv-(D{-9s zdxd>nU6{^tYP%N0eT&S9)@u;{=a`0#m;fq!yk|gR2W%cDPHT0aso4!9>VT=%rv6B8 zm*UELV?uEY!U}9-1k1_2tW8B(U=rqr_3oK2$0Nvn1WW*zx+~nTBnZCpUx!Fu+lD`1 zx3SprUYpIHN4a0W2GU^oRgjT@Dzm4L4Ai=kk3~jy6!eNly6eKPHKn|k(O>bFK($B> z-;Nf$2^d=FSRSC!EfhO(Y)-~q3(P0L(I2X|G>R`(ffH^rqX zXhMKpb|kpnM(lYT^0n!RO%sxab9QSAnZyivOAhL8``}PK-;5s@TNqgr808{OX%D}j z!=BFXpObwf5;zR09&yaJ4$)4NyZtV4$t9CbvWcZ`m?F!A`aU6i-e@fs%ZTGDDTUIl zK3`>XO?fr5GM6tHi{T*a1tchPZY}f0zH7tThS)$ux@_zCuWK=OW!4rwa~w_O>}W)& zm-CiMRLDIn%K$v1qeE<65F;-S#wJ>oS=z9>q6m!d9OZMGyON-dB{y^vfH1$V!2tZ{ zWIketd^hTn(@@X!cuPM*wC(CVKR*#c>pb{8xI&PqiE-Bq9YEQFg9u^4)%H}*I7+ZI*)Wm zNRimcSv_^8-7Ay0s3F{tbCA}Z7YPXd)Jik8(vB_DAygoh(sNeq{T-M5c&v@8ybJN- zZTi^VgA1DtoyG&Wk@?t+aWk0?jp4R1>@Cy?EB7`y7Y(wCj@~MGsDW_xA-*~zKS=WN zP~PjjF>+h%i%SX7kEm3ZJqo$=nC4M@+h#)>mn`04Q&w%Twp^fp>&)ex$ay;fw^7|v z0!2}O(c{r&xqBkHAbZd}w3@V`Saw~MB#;Z%Q(GTSv zR>=xmhX$Tr6~tQIkgJGYkBi%I4!fvs=8y#dS3p zvB9Dqoeg@`C1N&FZKc@r;BLg&nWw~o+9-Ex^=2_#boLwBC@;9$^@!SXtFG-CXVW1b z<4J>RXNqDFy~7ny>-oUTbKqrr4;?VqXwr2R5{93Gf5SZ^8PeB@TI84 zvi)}M80OC=nnbarMy%(R!HAh`YN=U>zjoDljRM(guW66ZnYqCrj_XrA9qX;&FO=o6 z?+5IK$D3skL&rjI$Jck<0E~sIqW7&H3HI6s6G!%&c}aqkzJi@4ro<(rjS73=o8A$P z4%j9NWg3A(>7yiBy6M8DGTtt6jJ3ea>3AU)558#9Db2yla{SfV6n?O}f-A8(R0 z7c5WX%o=s+9)GnQf0hAo-(n!&e1LJ_bNbD@V0i5?3-$rJU*DB|$rDA^4ZhsNXez3A zEo^F1&Ci`dBuqwoQRsD1G4~^g(n{e!c62v~r>6RdWwxgD_%9Oi#ALjPrhi`J#j2Qb zQ|ga>Tc>rC-O1gwF@qIMEqC^zzF6AQv8%aP2iMaRfPSsc*AeEgrbR_WEZMwFn~NJ^jjM0 zVK6-lu{)X+Ge-US=Q*mn(arA0_vMwoXZyc2(;PJX?$BCu)OaW!z!N=3;h z?OR`b7@5}+-*=R8D?FRtc0*lp^<50~UxqulJ0ivV)3ouC2OwhYz6m0Yq;0Nv&qtJ>)Y_mE!n zXXW(cQat3J#90RHoqd0lEKqh7Q+xtAqPlEW*D4oFsA_`ot#S*MHo`KIK$Bzs%EU{0 z+t1&;Czu{`7`QVwD7t5B-o7XwTT|~EQ?}xrXyIIMvb#R2YpLzBKBJ{VM*QNMHW07O zma73+){ktgn^>;&ej#zTp}7;0#7fUTlCYo5$5-6_k?z|*Za{?I;ucy&;@RDpyxToI z{j^~c>>+K-A>T}#a>y&o#a_EE)-=_njnDJdX}`J}8$MXFXly;%1CtB8L3^9wi=3&( zB9WZ2mfA@5+?J4#AdnX+2-fgV(5kX>TV4vvHJE)^TI0!NuZVJ_)Vs5QL6G=7x7jpXTbMTr zPrFx-WGnq-UEd+{Hr4KJtRx|&wYyI;hZAIM1|e;}y-6BZ;w0aMdQpn$fqASu55&b&_RynXMa=_oROQ+aX~FUbyLuPwvo2)Y>r`86+;)#yF$;9>kQ-pP$~da> zm&^SMWq;)CMP<`|JbA;du8*;-guvhLv3ZgBARH1Dj&`t7&;S^&|8K#|PXOZ4xZ`tI zq>?aMj)3xyAoI8`@d#FOC6(UWUz^Z76vBC^NP4X`7+y!n6ET?(2X-jV?H=B5`YovbJ-Gg}7V-#ZgL6KF2TdOi`Or=7YW`8x8(M>I~1wO_Scb8e@yxaGl-Z0qo$oW;6Vaba^U(yxhkZ^n~@ z=)#6pYOO5iR2BCE3?fnhkobo>&#&K`>_D@gs;oln+qBP>=ZhGA=x_p^? zIcsb#yUMTu8g)#APsffUC5=eZrQD0sx6fE5-R{mW28Cpt0LXRg{k3m%QJH73jxooq zE3)3a3I_JaC`kPGJGE&HPSaYdFPACj4Zc5w?%Da^~2iy16clT6(d@m!>ZWMG;EXz)jVd zaj(UwpNxBF!!~BnK)SI{imuUETux z&wI$b4HfbQ1wVFW=2e+AiyID9J3THnm$}S682smC_2J*)Fy6>tz2h$)@-NDtR!6Fb z@={}BciVMZj}JxwAfE>8WQReC8yz>nD(Sa|v-PU0%`Qzg=RdTUeeiCE7o>B$p!nWp zlL7wQ3lWRxABo9W=MKei^K8I z82dF*wwMC6+<7m*{W(YB%%XTFaKF>fL`C>h%ROI3TP!u*twWuW2RX&D| zxp;;va?}N@`(5=nGZz!yxl+hxRtEa?`CHgl?Xiia7CE(i8kZ?^v#TAm)4Y6b@g+Em z)O_wNL^V)&OAXDYfcHbCeF+jOy^>yREr@<)(LnT)vk4UQfRZ_ZY9W4RDv@{QQ*(?vu9W z`2CIpuSjOSH$yKc4USg2^>sv|GFuZnK$=#Nkk%aP?B5ey0`i!=59_nm3|-9iuAukk?!s{_&IlU=R{o?{O(hnZseTlJO|MQc_2PR*>kw~`>eh%-=e_+>z7-#* z2-ho{PU#cTW-})M-Jt>V(?;rYm_5wS+p*}@6sAMcp+8YDwLNHbXPL8X8@88#4=wfA z-|R|`cw``fHt0`FuS*{;)S**zB{u2zmqA_wP7w_>?fwy1U*|Egp%*A<@$p#EP_C9z81< z;TO+t5}>^8*(M=GnQ^pm>gMyG9LE&FFxIH#GAno~>WfUI59=q9;$D*%fqdM-KGHb1 zLk961!xdLVoaMzbFFM!2&xwAwrwH({h<^57388rdKk=33n{DPS?waUD3x7Y^9w$3% zH9h2u!nV%-hWzumo2qyU;K%&WSm{ifKuNJveN#nw!HmJ(0B4~-H${Wmg@+zw(g%+S zqCSKh_ynAv(Iyx2T*FGRZ+S&DZIW^K6o*%jalt|?Y@4Wk_{;IZ462_w>&v`JBuo6= z%um>xeu*lTV*!CzsFGWi$^4bDeuWWkE-uI!vg3`c#fIp`Wy(&+W=Rz&_X*IZ?r(mO z-MKE={;>Deti~HU?Z~-#=PL9=NHFaUU^{F;%~pJ(0`X})Z(#5F=F_Ww5&K5O4X@xI zWGB@Ls>dteG5K!-70eO_|E+)ipZOE(fHvhHA~R$sKy_HhX;#5kakWW&&new-D?bvKA*%x0+1DPI%C!0H>J?**z83VJ&T>km6k+08s{M5Z5l!uG z8#}f$yJoN%cNOQ_Q0#<|ZMO1*EvnuvxkWd7?=DDRAFaT5SNjMMe7`^pc+4UV)Ap2W z5J-XnGmVmg+)1YH^vU%NmVT1 zMlF^o7+QoW1Wj@rzWt}+#2;r!e-du|pZ!l9*FGP*1J7+7H2_4Yzsba*^(GkW9pxsfD2n9_Xw&Rk8aXUCnOT9q<`grJ u3FasjLud4R%AHSD@hw{>L(f|kq0HFH=_&o%PX{n$TRMb>|JOp(AQw($r2qq?kiV&ZW>i@a@ZUyi$fmTpE7(@%8;Df;Upx>PU z_5C=}Kz}yi9}R>8M!g>;CKfi%eTSNd015~UM!6sVJ%Ib(zW4V5RD3joC!7-Kk5r5> zXdMZ;0ub4lbT2B~h*ZappxnkzfmqnYk4Z?$=ouK9m|1vu`JVF&2ui+`l9rK`lYgV8 zuA!-={no_P%-q7#>YcNTtDC!rr&myLNa*{p@QAqh4+)7$$tkHhxq11Y3JQxpSAD6j zsr_14-_YLC+11_C+t)unG5LLJ`p3-d$|`bgePeTLd*}G%^z8iN=jGM)AGkmO_%B%Z z=f8mc3oiV7TqyTyLB;q37YN1uUcmUMXiqrN2_#f7j2s`)as^-#zCdJGwqen6s~!;< zJB?uzLwQ!{kN<%7C$fJJSm6H(**}5(C$3rG0T^_zJTN{W23+<>FlC|qe+#pGh4{Lx zsw@Ttg=-dSP6QM1UyG)O^z4q>HGTvj&uY+qNBP}Ht}s73-u@z7>$blHhc>2ZU1q2n zB8T#g?jq(=A>ZfO_p?aK$2w^S3cF5bDKA!;J3tk-!ycO$7zlBy7oT4h!ytEZDGXtYhg!DE!t6}2#Tpc7hs0(ncR*?b-|65Vk zTC-e~dZEHu7tlH)510|Eh@<^)g@`f!+00OP$2vNu&U~QwFI<`XXKiS_&i?@GV3FP7 zhR1Z0+5R~m-^v@%E#GL_8N+2rk!2+Nt!gsQO^Pm8F{|iLDclajob{wyiM8o51EM=J z4}(?FNc#6-C4LhuZM1J?C-{lSIa(2Fl#KyB{KNd)2K;xenS^Hw&v2EGe(E%Tt!j8| zuE#y-fZG>)J65=(!{54=p6=4+>rTs6lq#FJp*28KoAm&+hb7|J?J)%S$@;hRIzEnJ zI7*LU)tB;{VqR~n>tphb;EUtHI^Q&5ex;SrJW6oeLNy|4p%VX z>^xypwo+$BggvBG=Ixk_(+7t=l+jG!lhl`-y}g|Tc|k#ltLW-k=i(mZ()@I^ zX@4pOFIoT!F^QU|J+RFck|{c)m|)6*VY4iznc7=ubp(@7a#z0ooVOgO6|mj2!hK{P?S8Nt$ zK^))|Wb&h-dcs!m(o>HVeMk_F7wOW)t-k@yuh6ygh3zgWQ=6elR<2dry5!!T=oYU1 zO&Sx@5fLZ;EbI?z?J8u71W=nYY0@M%KqTf}_;*ANzqQ`~%DQzjK%>ax z=TR>9c#6J6@V8NW8Y9lEM#dV3I0U|EfYF$NgWpsOrZC#$_Fmp+fQMH%rN%;z$Mh?# zn>i!cxG0wv?!c)A?SMu-!I(G}9Q@O&syps0l2 zjK2m+5n0Pl9J=~yOvq2zE^b_$xP1K@B6=1lgr-il7R!WEYJd5t!(E?gI!Wnkw1#@r zdP=UT0Xvc0eAf>&aq$7_28e?a=u6htHGM__>9OzR)acuVYR%fjb^Vn<+kPgDb;b=+ zVHD0xMMdvbx=ftkKs)P-2+tOoaKyHEN}_e-`BPHVaa7&l*4Ed#aY}LwFs56n?=xkO z+G~^KM3Ztx*j^`(i#?SC;a4N7aw?^@MqyV1^Yg^Ky<>mjxdhRdc_G}Nk+JBPU%Yx%e^_($GeKECk2jLPdm zis19E>zLU}?mtdqrIn;GEW^1?wm(nP3KX1Kt4Fi*!1!`Z(`UY0VSbPiiMsHwe#b__aWopD)@b( zli+}x7M@dqkOYTgBtw+AqakWA(2+*Y#mT$Jc;-=*U*x-q>^`RmN!)U(?~V#8eaLsDHKJHxSwS( z>mObji--3oU=t##nOa+y{fxGYvA%`Pcd$+E?3l}@K{RP7yiW~Ee*=&Mm$VqvZ91us zW>sHn6---Sn{dKHNHs&uXac{5(Za+;MMZpskHrF9Kg#GG+l5=$@v@$>H>J7{*>cX8 zwW7}h15X>IxFtM=m@x$4rj@OsD%je&V=VXK{ zbfFc87@#9{CkfOC6$e5VB6yqVO|=ScEf&mgIAzg?u#;{2}1Ky-)zerRCKPaLr9Oe>x=+9#NmYYq?3WiyR zi0_Yfm%a{})pz=3an`_)ejS+XSs{X@&zDcwD-Uda+%E$w@ z|LRQL{J}1S$IrWd12~pWPq)fyn1X}cM8(~oi-}u*nAo#-#X;B_Sva~2sJ8RdJ^cZO zE<3{n%5(gUVz3OJbw%PmeuuJ%%Q8E@jzpBvvS~4J^)-4iJy1GnbmB}O#aIxu2)Y&e zBvVKqnu01ei_i8PwQT?RvyGa-u-b#;iTGUubiV~LJf3n?AE}8$9vrl)30`ZB4^m|N z5d!MN=MothPbvUv&hm0UPU}T_53>m$&T^}3pgL3`O8UYgd?WaCqa=y61EE4i?9%go z@(?=S)uq~}@x|}_ar2HDii~GF6CdS&&)@ujkg&EA-lJ0ue6dfXu5J?*ESPSG3d4i* z_&$3x<%)Usi%zL&(w_d_LD*Y^73h8uNiZ}#yVRWBZ;t0HDjE5-jf?R3vFal|JW4##|5a$I5X_D=zS2$ii^iSY} z5yr_u*D~_P|HV;hj~`l0)L`0|hCO;QH=2&*&3_!hn>=V_Z+WlelfNp?Jf%Qvc+~A;-Rz_Z`?LUna#KVmmY6(|q zNd_K>_dk^A74b6l6K!u%6SL5&CN~IZCXDR(sVJI8m60b04M-M%_LD?&QPd%$Sx-jf zD>GG_qlae{WUu(Kl>q`J3`Uss*|X)$pz}=7-N5Xx+5&fH3*Loq3uh<`3;ESi+1QO> zK+-3q_1vz02yj`de%vJ>if0oob@@c6CPFh&p z4tYqhsRFTl3yotep5GZz#XjeoDrdXlSb_O7lvWBANi~n(lU2 zm!0EM3GwsHy>WIKU+7GWMOk7co*fE+Gef;BB2N36zzqh$cf!{E8}@j8fCp}WO1>Js z14o@P$FD%&6J`0{$y=h;1y-qe&2OV+xf4NGw$2rT;2r_e_O*b=Wk zP$3iK(XgbWN32L}QYgq>!nCzsTPy$sN*I3bv0uDcQxko1WDy}OYE0G~>1<<$spimW zcT+#BG%ia6hR4dhb{rWKC%>aPDhPA&SdLd8TTcFNnd>g({G>ae{j zz<<|FJk67hcM*~_bGwE|wf*`)FW`j3n;G@m)Pj_>D+eYhhUX!qI!$xBe~yPYn{E90 zSxvEyIn-`s01As~@T37FqH`h*Fy1-y9^4F3VeSQoy8FsMiV8|+sdPI-WkyZc6fMhP zlqBHhBym#Gq)JC-I(WTd0?SX!-6$xpzw@%xdgHgvcyc@3#AJvi?9x+EsvbH+b-+*G z_%(n6#oTEy9FgIM;u{8>s&8ds4AN<1hR;k?vIbq5j&ZSweovq$q2>yT&RC{?XGRE| zodmpCncKLUe8|=0B78bsW8kaGUrwLcpbn!0Dh@NcIZ5)ul2F~OsjfP2AEQXkO`}pFb!?fW5xf>7{D0q@*5pN*l*C&`i9pi5{ zw}jJEHeg-!Rz@`Oiw<(QCMy1?sYP}hzv%o!>ve;$Obk~s)NgBEU!sJ!e*@2FpAz;F zZ4Rq(*-}6CxRSN8NIU~h0-=aVPH3!>b^~($ds2%-s`ywLl<-$ z|42VOzkMv}>gu3B&k^E={u;u;9V_G4^L0h~o)z6kjsJrPKEtrma35RJUubjnsAZ`l zS8y>Ne*)#U17MHKAl$oMu7Z$+mE9=w4yDO69UL6%by|kH#BDpbz5ZH{us8=_fgXL< z;r)Yy(zusj>r;thK{QeQ?}0T7O3xzp@_dEMg9FksGR}aF07g3y1e5MZ1aQr`vh?2P z8QQP?@6AaC3Z`98j7*9Ko~4l(YrhJj(&4xdrs<{;2CA1aJ&VNDxOUa$kSp1Zc^w>8 zcp54!l#XtLE>5|ev0N;J%s-kJhm}5%T}<(mcuSY9*p99ZmBLmrw_@!ynssdTatN87 z`?jn;S4-b=YM}X96;MtZi}IYGO&pmE!P@i4!Ylp_SbTF=7-#ryb1tH#gA?;qR%1i2 zk{Ru%QS$PmdXEcazS-TVU~PQiW$2;;uEbO0z#ly0612%}!!m;{-hgwQ7ZRR+o15=r zG!@ssic}xHy`;S85~(%OiWW2rLh(L5oUI?Bx~$smOpTxvv>wpfgkc#auCY`VKES%F z4eFqZoL+>9`1gqN9W7?Bn2(-QO6{||2gmnL1P%vaFAK~xvEtS-9zxznoY+SSHis1M zyq>fCIpm1_qIly2)!W+zbWRu{sC^SAPzLciM9X`+W)@C!dfqoea;NwCpa4CI@>}uD zJEsL9Qw8!_Ot`q=`Me~R^7>g8>UW>W;y(I`{eDRbg(kL;9sosJT}dPineko4b{*$I z45`+-abXYaN4J0G+Zuc4qCQq_tDl-Dxw$VYb2*+-IjI#g2Eh~7G!8?{OPfTg)~617 z)FK#MPhT`SSJib&VcUs2_RVuwpJhSZY(=*`<2vlwYIiw-j%I!` zQG*qfZ1Xe^bDi9j&8?QZdfCANk81MjknY=e#-^62ixJlTJ{;Q)&c5!w+2e1?+?-y(3WwC4I;96C8;0WFN{gPmbLn30q*qK5Bd;R~WqmGx2DlFXLLCyMaI$e06(+M`+lP#a*&m^v`U`^#FpG3G``HDiqls{@Y4 z$d8NwZj|q^HVbsO?*PdtrCUQW=19whf2F$Y6O61>y9=U47h9QmxAc!J8Ou;w1dBtVVLM9 z&!%^9Jk)L_Z~!rmY9xgjv3i`8P9{Zu%k`Z37};BZdfSh=@DnBs^W5Z>?_Vjk%dJz> zv>X;U79UxbxQzlNr3mly8GjSy1Vl0+T$-=26}kok314UUlbI<((b#j+2k=jEfQT7a zFh#|Fdb<1ajVTJ*zpN^vKki9`hq8A;L0EO#7BS{QQ<0G&I=v~HPQfu~(tUU5-EUyu zdL_|6G<9zkqbfsD-#UvS{@q|eN@Nyg7?2)aH}Zh<8RNeXeR6k_c5fIZwLXRnGz}%A9HI?zX{Y%Oar|R9R}S!YDI& zv~OscUon%c98dlRzGQa8`1YZJ&+vNedD~?fKJ14IUBJspaao9%q{X)+kf}9}#outJ24KUnPMEzci?Fx-H#VAVY@RDh5)Ut!@kPAZ~JF=Ha7T6+1E2HY-puJ zBJqa-N^AS}2J?clU5&)rS`AHZuHOEqa_S!dcVe1A*%6BAVh^3R=kB7^lkDfxWaQtb zMiXOma+z9pc65V&9Q+1$VZH-L1eEWngEOe^mQn@mp|y{EKH^g(zC7zM0!Q<=uGaWi z6iGNA9U8QZC-53PZQqii5NkSxN*TTeO&*YRncqI1607wAnLN08a8Zfl`LM!#HuqiP z_42fgdyZBnp8i&C?a|zvo+K9`)(3R)x#&eC+r2O8J0#igE;=l+Ay*n_X!NI@-lsKs zw6E9Upx)cfA-lcXSMuXbPhOErPtLYy<_UkCByChdG-vuIqUW2}aQV^Bj_moIMJiG? znO50?^@|OBy;1@ zOLX!53qdGK)$%h;90=@hZH#LLocLSYhP^BTf~IL6jwvC6dIt*&v7juQID6djSCi8Z zB`K@9dOQh77~G{lx8=6J8I~4|<7Yg`R1qiI%83A&{ta;|<}m&&tCC3LLfWmoD#a?@ zP9K{v+ZhmwdK{fwxVu!oq8!U+9ai@I{c8#)x(a@Q-JqWD&fA)|oGbelop(>ZjtYyI zJS`}kua|ui?0dQ!4?`E|YXz4vfmtHXo<$g-H`CnmR@P1mYvx2+vnJv9I1_HOU~zs7 zF5>6MDA%RX%ozRqG6;@d$O=?&C)rjYg=0Xl=>1fM?vw9X82u(tPuU$l_<_wDGJe!C zW2q=lobDqs)=x0^CH-NW-+|iN*|z>ju0pQC4+Y{BLgQ%~j_5~Zas4Hj%NC(;5C#mM zQEOopjgrJSxdNiU9DC&VeCUqxw2y{EuWci=2FL{*H>KAD_$ej8B$Q0xL%aY{rlX4} z(y{z6d|#8GcJ;U?13_WP9vgHU|MT7H^<%2QSUtsGm4>^P`2|=GB_`coFef~Wh}+Gh zmag94fGgy4ESpMaAu4A}@}4|I>^)4UZkW4A{)`f*r-7j<#@mD`XzvnL3N^Bt1^$Qb z82RTtc9_5|mr>q%J9li&-+3xY0@oAV*vuqAkJBFtR@yCmS!~K&Rlf_*$NcoYx>Wy4 z8>PE;T(F(w5zL_##Ysl8>$&Rjr;qeMQ%p)4B{>r*x(Qy&LHIZ@vAT5%R03e=)@lA^ zT3e63&Z8Eyx%FG;vQO1FEPT^pdmN>WmNzgXLFZPCIFFCx$`1{M-MF=KUv=szemr*m zspQ$4_pLeFSCB-pG|Uy7C@0c1yc$g?4D7aN5$AcftzN@A_fh)Jd$&(`AbgEW_6L~F z>+JIx$XF|?@0j-FG8a76&l`;2R-4A@6NI$K+11BAW}klFBwX()veZYmT79HB6EM{R3 z!Nb0#9CcCt@=jw2m2HIb)-oR5oXwr(3)ZhqD6`_wJy4O1XVeMaKliLx{3-FmjxLirE-n&_ zh)S}}TVM@?1$G*|^Yz9MupPM8I^|dVEp~?Jx=yg+;hjDF5;C*LjbrvF@r#Iaxf3akC4%=G@O z4}NuONDhN()azn<5<72GL&Oi5q7RNi<=bz0N!F-VPh=7t z!UTC1DUTPwWzB;&wy)tAL(#!`@Onyq{;UTqe^R0X!32K(Ej(1JT#-UhwOZ_p3BF0r zpmd)T7Q8`(%AZRO7?DCD$f@xr!O%hC{L>$mnN6BXmTZ|%mh*Ecc0v-v+}*xb)qf_P z)nd4L@Y~fASK`WD=a#2;q7+yYt+~Z)wz_5Sgy~GO{Nson@d?a zD>t^> zD^oQ{g#vcRq9xySehu>(Du8OOF(b3w{&SZ{(q3Efc7s8y!TW2Q=ZT80Ud?Z$qeH%O zCQA3}I)~6fEkr!~%I}k@@ALhf?iRgt1^xFyp3e4jnJ8d#@kKxEPqy>YQ8&e z3FkR{;Nf=jX3}1Dsjnu{vPaV?GBd$JfhryFnr>~WwTR?-Mz-sP{?*F%^UThYsbv}a zL2YtVR%ad}!Ht@ey&Kd@dI4Nr|8u8;o2C)D(jJ`RIOa6suj=`q1oq8G`E&w2;7DSJ zdo~!Td(bAq4~@<^17=k*K@|=jL#(V!s{P_d2~bzkZkbhF2Bpz@eu`BX{X_p8@*pn7O7?%-9l^X`!3-QQqH-)l1W0}ZB21uvrzT7EGxPRQahKDM z0i?zsTTi!pD0d;8-FW_a3DOguoB*;n&5?x7MesORbA6iQVLLz67hX1uUOS>V1|eLUtt1Ns$8O6C;75kL*!> z*hib5bJ5PfoqINmLQ$SN-wZ+bWUK*vl5YGjyV6#bQnIvn;@hvy5T~o*5HTN>dMJ`! z#%`Xf=H$bvg3$X^83YU)hhiB5Tx0(fn|mhFFy72=opf?oA91%OmbrQOL!FQ%767j^ zMtdG`NO`DeU{X^vL&0aif%8$Y<$sW_d{>q^CGI^5>U?@YpmxPAKHX=A@^tQ~i!VZL zR(V*KLk)M1}a}l^hMV<2~8VLLZY7fT0=%IS9S}&zJwlAd2?b z&6}GdhG(7+aoa@sH}z!QDie(v_=p{w1&jJ#BwTpNEV|W&Et^6Ds=T5TKIsjYgs6(+p-C@vVfaMLh~u^N$Ek(3Vj!Yxu9j}R zE<=0tF9#7;(*{=Wm8ujpUE{qxGkpV3yPpHzrqo_HLdeaCa|0X?_O&tmyCv6V{*RjU z4#Bs1MOn>>?qsss&S!kMQy)hY^;EW=6kxcmer%=YEzQfivi&WsW;SXEf@(~h^ zFVNFoSd#PK=&4H%rjaH&>l@Z~OGgBxuh#EWTDy$mCugUC7)`?w!`z2+Q!vqzOS9F; zm%daw>I?_%{B}}Jxu`iDKZc?K!>l9k=^vsv$BB`vX=>KwAv)P4p0>KHvNzO)BaZvK z2B~*smo=^yMR~IsF~ Q^ek;%(UHtfSdrhP+#bJdei_#l+nY}N5QJ}S9xExRKhc` z3Fjw(O=8oMt$=^e?*nMk=Uv#`t@Jc@<2u|4{X-&{qd>_El1#E~@W|u7IG{M`imP;0 zI?I}JK+!?SR77aq^iYo41L?3OL@_;WP_xmJHP1FZ>mS+Fxb~&nRx8T_2*wFi05_6S zpa_Uquf8{TV;j^?UW;>*%ffQB{dLuH7;wj<#`78^A2Hm9ufR(@Sk`y!d z(kuswgYy2vp8kzbW-TIqnxHMKZQ?Cxl2_pibcj>uwVzBW$Ni28=yfU}|A$VP+vHx{ z8a@<+pJptD@WCh=J?CYSaLC#0J=e!=gvc!*qWOFLw-xW-r%p;^`rvvzaIEix6A2ae zU$r)Y);F-WIt;q)aTvLBA|D*qrKH9&+g3+6*HR;DiCnmgHboHgTF^UI$3FKXkLErr z+NTZF<69wJRmkMyCUu)TvGwf`5&UpJWl=0q5(wWk>wSdmosW=Y;R;dO9SpqE(b3S# zd*m6Y9u9sgXjEBunvr)#(&gHK*E!^^FqK6%bZSlP)|K>*gS=VwIXYmsd#hb8CS}2| z5+CRfa9J6P?@7ucR^$dO(jn=PPcV_wj%MDmb6l+*#AURRNPCI@jPo2C&SZ#&Iut45 zb^d`ujjSCTv6pyUXr^4s3BUax8^MMNPFV-C7okMFj(NAcvh zZ>d+=xjUYFrB}$%caCe5l$5=F@*x%`XC`{<%HQJ!+@y8tGaOS#-##i@G}vwsiT-Hf zQfg=1sBP}UgyF!3{e0M?+wr_SvdOVTCd*?$qqe$wqO7ExBrQ!^Z>)Z<<3OX=<_mrx z=Frn(q^~}*gDT4tw3hCIGQQZ{=lw@S2TLL4dy-w~huTFcYKYZgu_G$Wh_o$5i z)!|td_Be+XX#xt09JU~y-9OVlqNJvw>WQRO0uR^qAef?A5oUxSk@JP2^Z6wA_@>id SrxSqz&U1#Wf7sdYng0W$nXsDx diff --git a/doc/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.markdown b/doc/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.markdown index 4235e91639..78762f2a62 100644 --- a/doc/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.markdown +++ b/doc/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.markdown @@ -1,173 +1,4 @@ Background Subtraction {#tutorial_py_bg_subtraction} ====================== -Goal ----- - -In this chapter, - -- We will familiarize with the background subtraction methods available in OpenCV. - -Basics ------- - -Background subtraction is a major preprocessing step in many vision-based applications. For -example, consider the case of a visitor counter where a static camera takes the number of visitors -entering or leaving the room, or a traffic camera extracting information about the vehicles etc. In -all these cases, first you need to extract the person or vehicles alone. Technically, you need to -extract the moving foreground from static background. - -If you have an image of background alone, like an image of the room without visitors, image of the road -without vehicles etc, it is an easy job. Just subtract the new image from the background. You get -the foreground objects alone. But in most of the cases, you may not have such an image, so we need -to extract the background from whatever images we have. It becomes more complicated when there are -shadows of the vehicles. Since shadows also move, simple subtraction will mark that also as -foreground. It complicates things. - -Several algorithms were introduced for this purpose. OpenCV has implemented three such algorithms -which are very easy to use. We will see them one-by-one. - -### BackgroundSubtractorMOG - -It is a Gaussian Mixture-based Background/Foreground Segmentation Algorithm. It was introduced in -the paper "An improved adaptive background mixture model for real-time tracking with shadow -detection" by P. KadewTraKuPong and R. Bowden in 2001. It uses a method to model each background -pixel by a mixture of K Gaussian distributions (K = 3 to 5). The weights of the mixture represent -the time proportions that those colours stay in the scene. The probable background colours are the -ones which stay longer and more static. - -While coding, we need to create a background object using the function, -**cv.createBackgroundSubtractorMOG()**. It has some optional parameters like length of history, -number of gaussian mixtures, threshold etc. It is all set to some default values. Then inside the -video loop, use backgroundsubtractor.apply() method to get the foreground mask. - -See a simple example below: -@code{.py} -import numpy as np -import cv2 as cv - -cap = cv.VideoCapture('vtest.avi') - -fgbg = cv.bgsegm.createBackgroundSubtractorMOG() - -while(1): - ret, frame = cap.read() - - fgmask = fgbg.apply(frame) - - cv.imshow('frame',fgmask) - k = cv.waitKey(30) & 0xff - if k == 27: - break - -cap.release() -cv.destroyAllWindows() -@endcode -( All the results are shown at the end for comparison). - -### BackgroundSubtractorMOG2 - -It is also a Gaussian Mixture-based Background/Foreground Segmentation Algorithm. It is based on two -papers by Z.Zivkovic, "Improved adaptive Gaussian mixture model for background subtraction" in 2004 -and "Efficient Adaptive Density Estimation per Image Pixel for the Task of Background Subtraction" -in 2006. One important feature of this algorithm is that it selects the appropriate number of -gaussian distribution for each pixel. (Remember, in last case, we took a K gaussian distributions -throughout the algorithm). It provides better adaptability to varying scenes due illumination -changes etc. - -As in previous case, we have to create a background subtractor object. Here, you have an option of -detecting shadows or not. If detectShadows = True (which is so by default), it -detects and marks shadows, but decreases the speed. Shadows will be marked in gray color. -@code{.py} -import numpy as np -import cv2 as cv - -cap = cv.VideoCapture('vtest.avi') - -fgbg = cv.createBackgroundSubtractorMOG2() - -while(1): - ret, frame = cap.read() - - fgmask = fgbg.apply(frame) - - cv.imshow('frame',fgmask) - k = cv.waitKey(30) & 0xff - if k == 27: - break - -cap.release() -cv.destroyAllWindows() -@endcode -(Results given at the end) - -### BackgroundSubtractorGMG - -This algorithm combines statistical background image estimation and per-pixel Bayesian segmentation. -It was introduced by Andrew B. Godbehere, Akihiro Matsukawa, and Ken Goldberg in their paper "Visual -Tracking of Human Visitors under Variable-Lighting Conditions for a Responsive Audio Art -Installation" in 2012. As per the paper, the system ran a successful interactive audio art -installation called “Are We There Yet?” from March 31 - July 31 2011 at the Contemporary Jewish -Museum in San Francisco, California. - -It uses first few (120 by default) frames for background modelling. It employs probabilistic -foreground segmentation algorithm that identifies possible foreground objects using Bayesian -inference. The estimates are adaptive; newer observations are more heavily weighted than old -observations to accommodate variable illumination. Several morphological filtering operations like -closing and opening are done to remove unwanted noise. You will get a black window during first few -frames. - -It would be better to apply morphological opening to the result to remove the noises. -@code{.py} -import numpy as np -import cv2 as cv - -cap = cv.VideoCapture('vtest.avi') - -kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE,(3,3)) -fgbg = cv.bgsegm.createBackgroundSubtractorGMG() - -while(1): - ret, frame = cap.read() - - fgmask = fgbg.apply(frame) - fgmask = cv.morphologyEx(fgmask, cv.MORPH_OPEN, kernel) - - cv.imshow('frame',fgmask) - k = cv.waitKey(30) & 0xff - if k == 27: - break - -cap.release() -cv.destroyAllWindows() -@endcode -Results -------- - -**Original Frame** - -Below image shows the 200th frame of a video - -![image](images/resframe.jpg) - -**Result of BackgroundSubtractorMOG** - -![image](images/resmog.jpg) - -**Result of BackgroundSubtractorMOG2** - -Gray color region shows shadow region. - -![image](images/resmog2.jpg) - -**Result of BackgroundSubtractorGMG** - -Noise is removed with morphological opening. - -![image](images/resgmg.jpg) - -Additional Resources --------------------- - -Exercises ---------- +Tutorial content has been moved: @ref tutorial_background_subtraction diff --git a/doc/py_tutorials/py_video/py_table_of_contents_video.markdown b/doc/py_tutorials/py_video/py_table_of_contents_video.markdown index badb14e200..c1204e231c 100644 --- a/doc/py_tutorials/py_video/py_table_of_contents_video.markdown +++ b/doc/py_tutorials/py_video/py_table_of_contents_video.markdown @@ -1,16 +1,4 @@ Video Analysis {#tutorial_py_table_of_contents_video} ============== -- @ref tutorial_meanshift - - We have already seen - an example of color-based tracking. It is simpler. This time, we see significantly better - algorithms like "Meanshift", and its upgraded version, "Camshift" to find and track them. - -- @ref tutorial_optical_flow - - Now let's discuss an important concept, "Optical Flow", which is related to videos and has many applications. - -- @subpage tutorial_py_bg_subtraction - - In several applications, we need to extract foreground for further operations like object tracking. Background Subtraction is a well-known method in those cases. +Content has been moved: @ref tutorial_table_of_content_video