From 0d3fb3cef336b17b4389bb1e4eebbe861f3ff05d Mon Sep 17 00:00:00 2001 From: alexandre benoit Date: Mon, 22 Oct 2012 13:36:30 +0200 Subject: [PATCH 0001/1333] introducing a tutorial for the retina model --- .../images/retina_TreeHdr_small.jpg | Bin 0 -> 50051 bytes .../images/studentsSample_input.jpg | Bin 0 -> 80282 bytes .../images/studentsSample_magno.jpg | Bin 0 -> 28228 bytes .../images/studentsSample_parvo.jpg | Bin 0 -> 69443 bytes .../contrib/retina_model/retina_model.rst | 88 ++++++++++++++++++ .../images/retina_TreeHdr_small.jpg | Bin 0 -> 50051 bytes .../table_of_content_contrib.rst | 36 +++++++ doc/tutorials/definitions/tocDefinitions.rst | 2 + 8 files changed, 126 insertions(+) create mode 100644 doc/tutorials/contrib/retina_model/images/retina_TreeHdr_small.jpg create mode 100644 doc/tutorials/contrib/retina_model/images/studentsSample_input.jpg create mode 100644 doc/tutorials/contrib/retina_model/images/studentsSample_magno.jpg create mode 100644 doc/tutorials/contrib/retina_model/images/studentsSample_parvo.jpg create mode 100644 doc/tutorials/contrib/retina_model/retina_model.rst create mode 100644 doc/tutorials/contrib/table_of_content_contrib/images/retina_TreeHdr_small.jpg create mode 100644 doc/tutorials/contrib/table_of_content_contrib/table_of_content_contrib.rst diff --git a/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_small.jpg b/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4ffb43ec47e421d5f59961dc6704d9407b69a967 GIT binary patch literal 50051 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 {4>dGUz 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 MFcIa(YyX-)haN_EaRCcqDhZUb8Z~&4?*Agj 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 literal 0 HcmV?d00001 diff --git a/doc/tutorials/contrib/retina_model/images/studentsSample_magno.jpg b/doc/tutorials/contrib/retina_model/images/studentsSample_magno.jpg new file mode 100644 index 0000000000000000000000000000000000000000..935397869dace8b3fb00e8c1b287b8fa1250b36b GIT binary patch literal 28228 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 literal 0 HcmV?d00001 diff --git a/doc/tutorials/contrib/retina_model/images/studentsSample_parvo.jpg b/doc/tutorials/contrib/retina_model/images/studentsSample_parvo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3babfefc37466d5df9331bc45c6e714748e2b04e GIT binary patch literal 69443 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�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

3q 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 GvH#ifP8$0F literal 0 HcmV?d00001 diff --git a/doc/tutorials/contrib/retina_model/retina_model.rst b/doc/tutorials/contrib/retina_model/retina_model.rst new file mode 100644 index 0000000000..18ad11270f --- /dev/null +++ b/doc/tutorials/contrib/retina_model/retina_model.rst @@ -0,0 +1,88 @@ +.. _Retina_Model: + +Discovering the human retina and its use for image processing +************************************************************* + +Goal +===== + +In this tutorial you will learn how to: + +.. container:: enumeratevisibleitemswithsquare + + + discover the main two channels outing from your retina + + + see the basics to use the retina model + + + discover some parameters tweaks + + +.. image:: images/retina_TreeHdr_small.jpg + :alt: Illustration of the retina luminance compression effect + :align: center + +For example in the above figure, a High Dynamic Range image (left) is processed by the retina model (right). The left image is coded on more than 8bit/color channel so that displaying this on 8bit format hides many details. However, as your retina does, using complementary processing. Here, local luminance adaptation, spatio-temporal noise removal and spectral whitening play an important role thus transmitting accurate information on low range data channels. + +Theory +======= + +The proposed model originates from Jeanny Herault at `Gipsa `_ preliminary work. It is involved in image processing applications with `Listic `_ (code maintainer) lab. The model allows the following human retina properties to be used : + +* spectral whithening (mid-frequency details enhancement) + +* high frequency spatio-temporal noise reduction (temporal noise and high frequency spatial noise are minimized) + +* low frequency luminance energy reduction (also allows luminance range compression) + +* local logarithmic luminance compression allows details to be enhanced even in low light conditions + +The retina model presents two outputs that benefit from these behaviors. + +* The first one is called the Parvocellular channel. It is mainly active in the foveal retina area (high resolution central vision with color sensitive photoreceptors), its aim is to provide accurate color vision for visual details remaining static on the retina. On the other hand objects moving on the retina projection are blurried. + +* The second well known channel is the magnocellular channel. It is mainly active in the retina peripheral vision and send signals related to change events (motion, transient events, etc.). It helps visual system to focus/center retina on 'transient'/moving areas for more detailled analysis thus improving visual scene context and object classification. + +NOTE : regarding the proposed model, we apply these two channels on the entire input images. This allows enhanced visual details and motion information to be extracted on all the considered images. + +As an illustration, we apply in the following the retina model on a webcam video stream of a dark visual scene. In this visual scene, captured in an amphitheater of the university, some students are moving while talking to the teacher. + + +In this video sequence, because of the dark ambiance, signal to noise ratio is low and color artifacts are present on visual features edges because of the low quality image capture toolchain. + +.. image:: images/studentsSample_input.jpg + :alt: an input video stream extract sample + :align: center + +Below is shown the retina foveal vision applied on the entire image. In the used retina configuration, global luminance is preserved and local contrasts are enhanced. Also, signal to noise ratio is improved : since high frequency spatio-temporal noise is reduced, enhanced details are not corrupted by any enhanced noise. + +.. image:: images/studentsSample_parvo.jpg + :alt: the retina Parvocellular output. Enhanced details, luminance adaptation and noise removal. A processing tool for image analysis. + :align: center + +Below is the output of the magnocellular output of the retina model. Its signals are strong where transient events occur. Here, a student is moving at the bottom of the image thus generating high energy. The remaining of the image is static however, it is corrupted by a strong noise. Here, the retina filters out most of the noise thus generating low false motion area 'alarms'. This channel can be used as a transient/moving areas detector : it would provide relevant information for a low cost segmentation tool that would highlight areas in which an event is occuring. + +.. image:: images/studentsSample_magno.jpg + :alt: the retina Magnocellular output. Enhanced transient signals (motion, etc.). A preprocessing tool for event detection. + :align: center + + +Use : this model can be used basically for spatio-temporal video effects but also in the aim of : + +* performing texture analysis with enhanced signal to noise ratio and enhanced details robust against input images luminance ranges (check out the parvocellular retina channel output) + +* performing motion analysis also taking benefit of the previously cited properties (check out the magnocellular retina channel output) +For more information, refer to the following papers : + +* Benoit A., Caplier A., Durette B., Herault, J., "Using Human Visual System Modeling For Bio-Inspired Low Level Image Processing", Elsevier, Computer Vision and Image Understanding 114 (2010), pp. 758-773. DOI + +* Please have a look at the reference work of Jeanny Herault that you can read in his book : + +Vision: Images, Signals and Neural Networks: Models of Neural Processing in Visual Perception (Progress in Neural Processing),By: Jeanny Herault, ISBN: 9814273686. WAPI (Tower ID): 113266891. + +This retina filter code includes the research contributions of phd/research collegues from which code has been redrawn by the author : + +* take a look at the *retinacolor.hpp* module to discover Brice Chaix de Lavarene phD color mosaicing/demosaicing and his reference paper: B. Chaix de Lavarene, D. Alleysson, B. Durette, J. Herault (2007). "Efficient demosaicing through recursive filtering", IEEE International Conference on Image Processing ICIP 2007 + +* take a look at *imagelogpolprojection.hpp* to discover retina spatial log sampling which originates from Barthelemy Durette phd with Jeanny Herault. A Retina / V1 cortex projection is also proposed and originates from Jeanny's discussions. ====> more informations in the above cited Jeanny Heraults's book. + + diff --git a/doc/tutorials/contrib/table_of_content_contrib/images/retina_TreeHdr_small.jpg b/doc/tutorials/contrib/table_of_content_contrib/images/retina_TreeHdr_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4ffb43ec47e421d5f59961dc6704d9407b69a967 GIT binary patch literal 50051 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 {4>dGUz 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 MFcIa(YyX-)haN_EaRCcqDhZUb8Z~&4?*Agj z(8XN&^s*`X%g?vp&fBBF(h!)n2u*J`Ho+A)I;`9xj=SF`A7dKQnD&T)8Px{HkR#D**S3uX?6iDbQ znLU@I)b^UXKp~1EypP^eU3Jx64B>Y@bfRU1)Y&(chbB%We0>>V@SOwRBn*HA4iXnP zx=d}WbqYZj*duNzp|@74E6E#)kIF6kxE75w0xQDPia$=dth^+7X_an}knY^Fk9GCK zo&N#&&h1q7u9e$=U+^QCAp+T^htXnOK1Y{ibMf0rq5JIAnzorjT*0)e_H5@H`41Gd z8M8Jqh7Bz#sm3<=0dLtGMTQw%jaw&0B(MIdlJ2f(&E&N=WQgRs_0co<90Me}QgmkFRh zD<6R;yp1%8sq~v`e1Nam*BWv668!+hOHhBY;Jf$_z*yd?>P*+KgW;IH}#5zb{iX{3ig_6^4uH0||O!#=k|W#d;{1>WAey^W>$ z^vSct18Q>1g27RIibtKz$mxJY)_-KCcNDe)@*YB$`+ z`qhZzyfB63xqAV{pzzgB@Kf0$WEqWBh?^J}gBj+FMja}->Ty}k;l4$SoKP>)n;aE$~n}wE$h=qno~uB#kLC~GA1=R=v+Rj*TbJO=3rZjU`Z^}hK0nFbm@z0_?C%~R<{F5W8NbC?xv)?}w- z)80p(Nh^-1^3$HS6*Y5*ki$0`trGxHM9(?wVq9`RQ25`nyR38MJuA~|d=SXpntat` z!d-!KP%_oB)$n6#%=e=Qa+|u_7Rl~dXhWLn{)?FM_1szO=%=ZnB;Ajw0dcfcFAk^+ zcMyl1I=IYvZ; zlEf-mZk!jZ2}(6z&Fb!T(*AT-4=kH5cX;#zn5os~>0}>1r*`jY5+&G`81L7Nb54J! zIP9X{cHkLQ7hVo(N12jwXr@LUW&OUPSRJ$z@RdmX`Ep;$PI|+?y4IDE=U?V+_vdJ_Gcnrdj{EmYo(0}~(q21qy%Q-KDsSRtx z*8DzNtOhB3bXCp_CTgsQDs$yHL`EZSjko(`UJyhQE)j`L;#`)unQA3mRz#v){vYzx zwTmXN*rD^??@MuJ1(iQljypD8tW-E-aO9TKNy@t&9iXm2dlGWqw#BGx{$X1Oq=!JS zramts^f6w6s2$9_%k5J{a;czaenrq0I9DH2_sgy@+d|)t37Z3N4T8JPjEbz?nAdAF z*ZB{C9S&}+do4I6$9agBHA-eV60@Z2#6E#Hv7HgezeIsNt=PW%4^XFXY^?O*mGXzl zCvxZHKU;H`cc%Qeh^(d(h@lrY$J#6aj0jEY0i0#q2dnON@|F6Ty>MKyyN9SDgyVFh z*1Z9_u_YoHr~nU(J$6b?&y$V%{y%F=k&9D9uAit4G0+CLw_c7P)FhZ$d1ekfZSA{# zBKQFmV)b+_b2I&2yLG&&q3HIVGCs}6A-2^s%qQA%WWcY$# zqaas3YtZgDZ;!AC9L;r!xqgQdb`HgICXM0Ec9siZ2*8raReG4RTuAjwwYV>UB>H;X z+VYGa?#4VP1Qe7OLA)A5c!|rv4MN8B{97US^7_h9ExeUMJb07XL%{8RAc==Vsi8o` z1K!I|A-06I?W9D)&WpfP#jApeQ3hH{4mAUtX9|+#pHhM0UOKdB$PkHJ6rED|D^XOw zE&}sNlQCh4XVEs^_k(C$y?og4Cooy6uqqNt8xqgG)*=XTGTqG2UcPXy@ie|qEV!N4Y`=Iwe zg^M}VdhB0KjJpog_jg>1E4w>EIXp)hYVw9N1LsjWv7xa!(h1E1F2BmlDc&zdhhl}<+7%Y9QO%^z&mR^9WBQhN zzfZjbYA=QFXV()-;a@6j!JkuCS$PJ@bv)wNCR^|Q@f$a3-{M=(RpZ69#qBwnK<=|1 z1(k$Sx%?R{DHEQ=fjOxT1*RMsO6mgrF0}#YE_9{W!X<%5=f-=0(_pCZm$~NKa9|km zr}N&MvT7}d`*#V2#8LAW-yPYvSRewanUp;;yl!ydJp2J>!_2m>Kcv63Yyjy+!4og5 zHaj0p_NimS$wuCrt?`OiZiZ3a4UvM5y6>UTa*2u>9 z)Bupr7wawKU6m}eT3%z*RIvp^{>iI3*$!pTqz8VSur#y+ii=fSe~6-spgQHC$D-ep zU9-rMvjp^+%#VxHeYgN!^^8G2@KE9hz-l!V7AUbVBNk%|sO%5OO(a}B0?}_DnRvbL zCrV4lk5f|oBRIu>?V&)+7Ynrk_<4g4?Ry>kZQQKu26&apItHhjbZa~Y`I3?zbSZBe zPj5GLp{cLe)UL&-za}1er9}J?LhHzJ2@=`rX#5XA@}~KWxPM$mz~XGF!mIY)3ZE+U zF7h*WTk{r+IbCZp z+>len*a5e;Fi#rs6=dDKzE37(b)c!4?BVrRUXqOIh(3qsKfoZH($+gD&+fS`X6fT! zHamaHaP{O~6$@0&we8efwd1d|{HOSUV0HyU0{2@nk30k5pD-wa4?1H<^fPPLVusom zv`YgY|NV(f?AlWHyPvhJr5Ns-rZZ7!A_-r-E-mMMbBsl~G8ptbpKH5ELml%%o&N^= zc+LD=h-z}aSbIAe>Sgve>6Jl)v+ERE!mRdlIS*%N9z-VdKR{}tFe?Axfo@hOu%B+c z#&hCIJJv52p&Pd2y)3=i-p3NWGZM~81!73?pGn?KUGD$pVp;QtVY%e-Bjs^@Z2`D1Po8g}mZ#dKFsy@60%MOaL{1x8Yrv zV!zkQ6x@b<1;2L3pdCUmDywS6HW$^Uf6)2l_nOB0-;7Nf zn==etrEutA$S=!1+dx-U{Zub``=Jhj`{)$iQAhBD|Iw?m#(%j7aWeZ32y0Cb%YU_H zHAM8dXtqfDL(JGFHSs}oq^6Tl9)0|TSc&Hgk@=TpObDX7 zmj3Y;nN8s2v>9aG(NLT8oKr337j)mJKO;b6rFly^y_T2w!k_Xx!m1{5k&}u;Ui$Z$ z=BQhxXr1xW&wv)M0JiPW2IB5w@tiD`Aj19n%dT!0&bms(4M|JK%-{=k%ANe-jhFeZ z_awu@unajP$4V!FO(2oy2n(>eCfRxgBYSE$wId;l)msJLt?@gS?c@RHNUnTkKTQ;xRy^t90UBk6 zZBTV6m?jkgxoNcuEPQ*!%7PXDRCsn}xBsbzP%A$Wswr|-k@B>@;Vi3Yfxn|~#i7FS z;tAJU6LG;#Eo)Xy(KA?7{!HOC-RHa|qdVbEN~4qv;U2y!T8^7p_I$0al*CZ$Br5io zl6x|N=-*Nrv)zkYSw959nO?q$Wv9sl&#OB3WcYeQ7J1e;+npnWigJ>b+RMVUSYNO3 z>_9okJUkJr^E}Y|tnSR^xNo#zoLbsnt%>CFlo;aoTKhWO%#6vgTs;Lu{&ZQ^f;xcQ z<{AFxA^gOa)&8dg)w6yTi&I}FA;wgBYgdmJD@?1}B1iJw9!kJPG-C+SJhe3PVSac8 zI|28EClsE?m;!kh6*ivu!RWxkh2oF&fD;vaqT0*_8Kl`#(cEv^4urR3Y4G@<ezUw(;Iw!VWj7Al1qQ+bT3URB7cSHODpx7+fiO&aegtCTmZulT0=4z^)5?LSFil zi;%4s&7*h{0|a%-JuMdBTt!6pcP6(s`R&B@$ov<4eTT{B3>6+urWJXil|on+LtuCw zc_rBxiBS5ZJf;_V!>{On|KDzi|J@N`gQrhGgeyWG&4TgAHM8a3lE%0Qw^ zj?&3379wd&1MhazE*e^pm^PHDF4K-@Je|m#&tglq7Y&^Cb~ok9bi<0O=c!r$AhgRA zqIe7#1b_gcdR^&zwbM7GYFv!QfikyFk-P!?hB&G6fwHH#7!2_Wj#`eQ#VReee;RI~ z)P|f*9cik#-jGf8>ML@0HHEYb@2#rkiApE2e>ZIx`-0HjV}sphtc}n&Ov%95*G`*( zuBh&=YA|D&Y%QjXXYvK|j_UOwlHB+JvT^#$i9p`CX54+EZDD$})QnPJy=~^`C4V#o zaKN5b>_+uA`b2|g@Lau+`=G1gPesMCqo2QWv~_1QE6O5UkZQ04*0WU9KQf3^!blR^k*UH^^wue4bfRHRXfcn>eRehN~nmM46c1y{0Gf z61_)6INswU6GaE_wA%qd?i0Ac)ct4mZ+q#vojE$6JL*#_oH*Yaf-+PHEEIP2sI(i~ zv4$_n(^W5EXF{oy7Z>l>R2;y)9`Jt#&Z~Pl1N7RRbg0Aq3}M1`9s1V~mF(~jWZRi(i@Q#8 zqPfcIX^Jp7iI;8TEC}zB{2nhsTzmx!l^yFC^h@pw0GyigJC}E{0BRn1S)vwHX$|2CH&+OuKZrv!1D|DNDiLQ zr}2is)cgtAFl>K|V11mOXzgM@JN~W2jyR`4>Ti&j>%anZyyc#djkvDGwH(Jk7q3R% zY@I>&ivAjjGtPaEOUKp04;Yf?$@aHSS^?#l&D4tC8Egr{bAdTY_kK?jcF>Hb`KBZg z3r{UZKPYYyg9&A!JLFrLE}Q=ua3w*fGn{{?-086Cl*=nR z7GOn1m*$G;Z|z5b09s}ir_`PPR%S7?!rz8NHVU z*(8k){8fK@w2&N3YL+|=BSF(||1z1L(~=Or*DG-cZ*+e<@}=eaRHPxk=Ot@?Oavk)KoQBVNUg|*W!Nwlm)!)Kfr0R$sQq|KxwtpdwO}fpFQeH znW3xheDOhnWifVsr^BP%ZV-H!2kgRZiqNLSF3!c1z?)kIzfLh*&kP>^&-dvdK8W|3 zLWUvSc#j>IGm3z@fuL_dc!;D57c*qlOFVGx*O|9qd2@HVh%Qx?Fhd*PS@iwjgqV}k z+WT4FUyvPRXA#VeaMfzjW|cP`PSZ8}iQqF<_NC4iiV9h0Uc$-{AB-BpL)>xq1C~OE zUr7V>JP1Mkb2|GP1EclCk0Ef9&G>67I=;c6xnj0*kJU6w6EaPq+tvl`D@Ul8UeZ|8 zbv`d6D>_&avB8IqW8sl)U;W8uljd-uLLT>11}t)9aq#y#KjyQ094tf0!A^0d9p_I{ z()|L^OHM`t%SYx*aUaGq1op|eMG~gHxCPiuv%8y7-V0-n5+fpH)BFuAgi1M#$1nf` zUOUqKt$bUwax3KryNFi1HmvgG?v;+_3q=tYMw!zU1+G+)c=^QCU|V94@(wK}GYpt> zb5n$Uy^HsW#|g_uVA5 zQ}e_3kKQwj7OWpFS{}PJ2MkZ*apO=NY^%Xwkb@2(y1)0-;h^CfO{im5nb1p~BfU-; z?@YyL*O4tM>|>9lc*2(fr|tuj>wfPGY%-9)4zD=bB1 zw|>`*bG|T~7La&HHPQKH;^u5!b`wrYK`krkb;#_73B0@56?w-vQUxcA!H+Gj7Va>6X|alUh24fDEoOg=C3D?j$o)Z9LKr2^z# z9`@fGzKmIlyKc;1-xrPberJc3HT!{>^>53N^dj5~fD}QKuCkfGX7`vaQsj^;xGRNN4P(ux%}l=-6)_I%O&id+6yKbR z{Ig10@smCRh!k*n}VedIBAH<;c)(r0`ahLu~8{t(#+Zr{~Nb|vH z*6dFo(b7?$D%%)D?44_AqdOYH-BpTmoBjt`j`p-@^w$|K`Z(urO5!?}Q+3tpx*@}u zSe6xi$t`qa(#4$%;!DGLt-?-|ZxgESwI%}Jy|8X=HFkRU*5K2!VV1S0YUs}ma)3o> zw*28u=|La`C;Eftf~9MWuQ>7BHftvTpG-eL%w_eq0?CC>G^fpEvbdo)^=(e>7ZbHr z*MYq$Rfq8p@{;|b>hE`Qv|`ksc^rIS$(2;-zhu94t#cijW)ovaU^%t_B)Ev4E&AGY zm|&wp&D=CX}<%r2d z1QW01;!-m@p31RBF@5-C3D>NHmVt;V9_PRyyrlZ14K<%OuxxCopE2S?FFT4W#_dHj zqqd6`YA$XquCart7OV{m#gxPt51Vg7>0VOXxz>FouZQuVlH!J?a2oa7^hk>KU;pX2 zST#Xq@(YPMYE<%w8N{_NQ#$@Wl_z%mTxFzFY3Im=6lx}ESEO&K6CrIPS{%VzEoQ%~ zlW=#-n9SEjF)Jdn%$RMGF1rzf^8S8*a3_CS2b4R$lV%DvdYj~6!RvGX#z?VOeGlhh zn));yGmyB_(b-!el8V16+a0@C20=kNY4uSG0V8^P+Iz)vQjfYBVe5He2-EgOAJYQ9 z_5;+!ZkVH|Ka95!ym#~_&-Axr-s1NKKc^z1-$~oCg2_|Ae+A`C=U+;P8qASp<0BAO z88W-O;H6(ug3#^t2FT}RR?-@rKiwS{`%=>5+#o^BPN?_&wV=S`Tmc#VcHHw(|K|lrr0Eb=XAa|8*5!LwP08?$!Xs8B>_37R+MK zN7S}-xMZYKK9v@0e%(zi-aB6#@bGW3vTsAjyBx-7bhAH5sR`XHf-03m0L}p&@qzYF z<(@i1Pwc-8)V(e`w8TtrlcAqKyDy0xN_&ab_-wmXeVz8A4S90V6N|TBHIBCPPeE#B zsyAW&sk-4@@R-aJ_C8w@CCG-8c?$ephV(J z=IqH@=hNgGk0+`hz;w$`FZ8u)cSA2BXjlueU5CCcGYbUk?mi=Up+Z#-Pt^aerug zh)u{rvxukt6*p%{kMSKt)RS`DOIc&W@ zp&GdB0>`%9Wn=WTAi6;$EqW_jr~FJTFnFJ_o?H*y!8mwZh4)lz*f4QJk}u4`=sofh zFhq%@G1XqO?1Oowkw3Tkkn@Q|gC0&dcBIsUFr{Ke~pU1{b)#F&EkiZMmGmX$b_q#lB#QDT?K{K%F2%>g&O&217E-nskYkoeC+X%JH86+L~IG$C-%PZ2uj1mdYbSK&m zj^4{RW=za0x^Rsd%j6LPonT>y#BP6GM7EQbTmG6{UClSUewz7}tTb&k6u)H4agMw% zbiBAcq&rKHGjNoEZpTgr}R6GX+6m>^tFc}ct&R!l)#>4X+-iCl&9*Yq3DDJl1r z>jQZ1hh6!;19HXhRQ&>fh)D>#5C}{&`CM8>2fr(~v3bMVUm?sOq7itZp)8(;3xa4V zP!jkDU3DZ@Huy3pK=GdJHKSz^h`;ad*S5{Jv;;TY8}SVZ6hr0bM!LHLW)Yv~_g?|E zlDO6}{9t}MWYYPaguG~u2#TJgiy}!1MTOZ@@ZOt(ruhRqR&-PiQps{M&oP+^aWr#eSBG zWqQW%l4F_cb}_kU@~f}Bpsm#=oh*!dO3snyb^o$$U8E&{jj zLLz9_x;wR?b+*^vm93mTW`L7Ng8)(1-mskA66c;hq#Ja+jf4<9Il+| zqG1AyvqEJ_Ep`;VfJ8j|M3TM&U+ed>-n@v+X3Fs(h2OOxZs;u`^Izk*My3xmKhN_1 zX#M6$*(4eM6gy|PiWGWxOLlplOy5Y>1Q}jNST4QtAYIhTwPi|PK_y?tm>T~FxGJIW z)qP)(ZVO>8v_Rhs$W0g%EW3Fuux-@3inC*AQg*Na2ty2Cb4Y>CFM1rUy#@qkuWV)? z*<*so+dmQBolCe2{|5+c-)VCZBxWztsg>jK&qCiipWf1~&rtTP?}$r+aRrE=X@-XH zYb5?byeegXj~6{S%1)ZKNGA+xW$vy%LG56ra`~~!m5`m9qhcG)f&fNe z_5Y3@22^bXEFtuWagtX4`~l>m&{`GkQGe>){&G7pdWqkpST@I-Uq~q(E%kBU4i8Jt zRz?AfCw_|Vr#^&>;sA%s{g z_H$CSceG9`s(s9^Y^iq#-|WIrHtVeZ*z;Af@6`C=JNIrT_TYPID_{mRlBI*Y@U1!& z?|ybtUHVhW(A4;6%}~m(dNvOiDh)^2&)1s-iIjPX&Sz?hK-;VPx#Hr>^vlYJ&tN=C zYSjL;V6{hGQ@NU0BX!6)+3+Z*EBoUsu)(n5?5jo0t)|FzT;GH~G<8bhr?QV{qZir4 zDLP(_v#j~cBxn&;Ip@C~pA3lAPYh4J46c!HTNfxfE^W2vu+wa}hlPZH%NxIamI}^5 zW@KGWGSw?TTbCuXV(2nFpiA7KA1wq6F7`_~dJ;4K` z9jvDk-tg1Q-F6_Q#yKz~5=>4|mo|~|y7i0wTepYxt0t5|E*7#va~7s{+eNPH6%q?CJUNpm;Mb zxmT%v>onxA?89Xf8yU-6V%gJtWs&IG9}4pt5~dtl8048XK&1#UKh$c*n$&aQWW-K> za!)j=Gc|H%vq_*72H{9%JEORmjP!;tHm%YGzv(MfYEm7Khj8N8yK;6LJLlShjix<` zF)(yfb>D{REIKO_nWBebl$Y7U1l2Jb`I=`M&9b8cY*JpX{zzd|Zyw=k;nq^qITyzC zLJF6usVNKhiAk`TivL=0wCaS7O5}ruLOz{YS&`KOUshO&(`6r`3**p-d+!}l8#Sgo zZ_FH5ac(6#>#UOFQLUHZjl{u6@Fo;oeIvq4v)|U&H0;q3v63f*dw^^(*h<;r;)&dn z+hMV1T5t4C4E8EtpRKGkq&Mdo8@}M+pmrwL{sPCL22+9>wNtfR@LpS)8uWe6^1aQZ zQ?|b`QZgF#Ea?jw7skWJ}!a9vhdy!qGgnci%8))Y)Lkx3AOI~noVODDWU z>rNJQcg4()RGH>4VNNz}?uuT}0(bFvvVZ3jF9YjhW&Qp>f<$vyw~Eeb-{-2%xDz0L z&TZ_Bla<#Z{k2Ak0NnQU5hNu;q%p*8ew5vQw;8}K+(XoV-HA+|HUf$=iJKN!*WaRx z6n~o7oh)wh9h7YRkgM!e`gfRYSzNoo!g7;QL01F=tJ!@m0TAq0_V0@S5-i`0LtY?j)Yy zjpZ;!8!pKgTe4XJuvE~lkCYhcF&RvVKPjPDhK#ZxrmN$usW-s1SIT5`H zHO!R1F;<_x^AGh3COY1s0Ls}meWfp2`}d9T2z<9U=*lC=I+iQu>thFaPE@BynWtB) zU~#bP6nvx)UFf9(>`?tY&@N#M$H>7{zYH8${#T+8aj4;%6#lP#NrA3eKs_}RD+)fA zu{^yecwe|!I_ZMz?ODR7(8RZyy8-ZhvJ30}!7z#?aV{-Vuz2j0pD3Z~(82QQFR0UA zhE0Op*agaQZgbk7(`~N-rZnTp37A3ehp`Mxrna-kZy%|AbXDpTX#Y);r~m26kRG*e zTB~xSp+sY-_AC*ZbTTeGIPuLkA&IO`%>$Ox>4D?JjBucd4q>5xZfGn@cW}d~8v`W; zvy98y9oMNv_qm@Xvi%3Jt^9hOYMCuQR7V51Cme@&>a>mk72ZbY7M}682T~XCREN|I zQw}@z+;(2=n17-cN8C>t z!P3}qI5lE65ot|XmPu=oG8@N(V$*y6PTp=zGan<=$ebuAX`Va0%RKwfhujz@L>c_99l^+b{s5OVJufO<`XTqvW-=!8XzVC6bV^+>|69bG?NVdlk zabNrK)IQs+bVZgSFg8x6*Zek@ZC#?RRdsD7e9%?GolUv;=up5(8ZoAdI1}g2&w)yO ze;Cl)Lt>co9OnOq^m%>5Hi6Ny7hamUjXDWbbXh0)YOS?fOuy-Zo%PVZ_(A}oDbbWU zXN^zxcKamEC0OUKFuB}HtqnC2VO!@;00-gQv${A4sjsR8=vqm%e3&ip4UyaiY%ef9 zEGR9yx>8?N3w@1mI)-LM$ceQ5A}UBcpGGj5;#(8f^(1Mgo#q z7+Gqe>s&n{7>hl4AN7A)d+VUK!f@R;6beO(L!ktBcSwqr zq5+CKv;~3`mlSs`F2RZycZxd{iff7%cPSFwtv7q-o;~O6IdjgQx%ZE6k~Ont)=Xxt ztoM80=Xrk6lfj|xUAz}q(X?a7I+wzwU*w4r6ImN5G}(%5bx*cfT`X#Y#kUoTod2>- z6(;q!q2Y~ z;N7%!lB1x5YkcOm2d(6CNy-L9%a(c`%;m}DXPLLja?eyq+A7cpt2fgip&05iJy82H z!JL1X{iiPiaZVJ7K_;1bO~(A&+E4i9)mc58Plb}hN9q3ccogh`$ci+&R!I{QFl6@K z#X0f1%qvSTmAlfssd&oKDDm~20f`N~VlEC4(0fFy?l~q#jvK4GreIQ>GuuQ%XQ@3O zovmzsYLLBdZ@1Nw_5hl|CD#N!t63^!?JjQM8C0#9w*O+pr*zbs$N-8}So$N_)|`H{ ze#Gi>1|H!rysT8()tRO_+8*IwSIGPEy~y=vQLYw^H^1`r~Su3S(9hA2Bp{IblL{-Hwgesh2yAmHTpwc(vdv=J*_Q(*g5 z_UkQy%^i7vl}WRuLj>g!xE!iK2Vw+42gGMz4=;jUw0~Tp^-Fq?8Q7@r%CIluJE5^O z!UallYq2TOX_7y`v9F;tV5DjpmvWe%^raDvC-DopV_BK*^D)3uNx+D2qvgoztc?6J zYxV27fiI#%#n2ijBhr|0vl(z|^xiBF6Vo?G4xEoLSP!wb()n$dzu&?VWjOnz;+QcO z*IUJ&Fg%GUMcu_Y6pSS?{!+5-K{&Ojfs%Qe*V2~Y&T&}`v`}18YdGC9-UDD1B zvaoWptlq@lpn1k1Z>vOtH*0V-lxJTIHYB-Gu~3yZv-@88J+X3mIXm-ndxssXbhLn> z;Cgcm43d^Vz&p$8hCf3#l_)9%>~UnGh+MjbEBPtw_uadl=WiNjKWMPT!sx@mA}KFv ztB{Lt@j92*PIYawuud*MRX8jCO$8g!Y;1?bgSzF+dSaeTdUu;BkUG}&5=v+5JJW|d zQ{)B-W|U|OR^Bk@a+?GjM^8%iAJ(o9wd>!W^9NLX zhu#?-CqQgkXX|(}SaOP#Vr)6T#xE%{HB-q?R_Grw((9WzUx9S(d~3#C`^5>?|7MKI zn=;q)fBZXprW9mMIEgm5`TWGEBd{M94He1GnmBItQ|T@)i72|UZDxt0lYa*S^9U|^ zZ!*RyDW3$Z&VHZ9PUb<1nA8NS>1aq*0?No3KNmCbdBe{7>>$h0KM=x&y{AT~a?n*k&XKrogprnm zjgsl1OgT6%MOTXC&B*(|emQSKHzFL&nYr!jf;sW5B!>lue!RYH(zeM`t57T57iIC> zlC(S|Q!v5Gi<8#+6#c>8b@qcE%;OLKtOj}Pn1NgPI##R%0(OviQRN8(F)=)S`jln6 zCv;G73C!UY>;;9JK zlB{BN*n8|>yR@2=LW9I;vlzU!V9A3`Jt6{ieohp#-+$DQl^*No2QYK-P=t*eR0Ei< z$`#~3)Y^Vz7X!!yNamG!p@Qt_@b2zr7K^@k%G%w^S)ny~d*hUr+3-^+wt(=y@%_@`ksw?(P5E;1Z4oaou^yv6rBDYb1Pu)IUfd?{0Hrt@Jg zIn#Bxuh^F__iLT3VMpt)7Ck{&7s8Iy--BSM>UBI6*w3yWzQ;<25HwAeiqs8A95ha} zSSYCbdR~JT$jyKfQzjRiz#9pg0X(Vt-3Mu`S z0lYO1a=X4fPS4)^(dP>-`C&R?x~J?tKM!#Xen}ONsch0H^~r1ZQ{=VN;Fo4u4xsFK z9XbNbT6LAq^Sb=g1IK>KEHz9db3f$MqL9tjdUEPG{{Xm~V)I^yTN{eGWt`gxw{m?i z$r}{uOi}M?hSi;#Die+5kdU*cNhBTG#pOo_Fv89^s@{{;J);zhrY&x;F$v~u=3l&Z zj^zaJQ(eE_iyPcN$dip&dyoF0JUH$gKnT~5m8c6;6@Jf+nep0KxJQuqR9-^~&-Vt= zRQW|Mte(}yX<(XHidPBhnZJl|sfBpmJbkMci7VnqNEzm2u|pHo)JV_N?OSb5MgX;} zJ%H_bv;{TRrky*STAEDx>J#oGb+Ohorq9=6XmK9}5xK~P3UWi8hW5~Wr%%9j{(j$5 z&&v4TeFV#k!&f=RPfOa|DYq6`F>JSa6&gKw<}h7*(9(X`>blPRVRqscfC&xw8uf!% zSu;8Tttd;!sC1Mm7}Mqrrf%i1+++}k{vBSpQ_iE_Br=fo3)blg;g0=2CT}0%E^+D} ziM{MxplsSkJed>ztX=gW@~T*LAzF`kbknEEj!++JiM>gak9AqHPAM2ZcMTd8UYLTI zZ^ww7FoChMmuA&VoRq=volz0t$DhKWrd+Fo7}d%=|g4AzO&+p4U1Esn8~&gg_P2ldrFsKwIY}yB-+!Z zf}oMJ?EM$HKFQvo!4}Q#IM?NYV+en%{RkVyfZ2Q>n3oPs&Bw`E|5TJH8ROA=Iw{)) zX7hJnT2Fey?vjnyeytO)>De=PF~S!0l~8?u$n78Rzm;wd#S@1M+(V@%!>=_(@>@T7G_?FoXZY@1M{pIMd-tgdDM0!)s^p1`4Ti)%K2W2@_T+679BHY zo?eIS|_-0#QQ;q!|v-|D^1 zxx?NWA7Opg$dQSEcLEUB*teCC`mm?y%Kb`*{Mvbu6h4uO&eAg+UKip!k-r51AbcXz z+aBIc2;&a%2<^aaTTDLBE?kP!Q_>sqVfU-oZr6HZoITfR;1sR-L%iYLmN9pXD=}Ki z{+8Y(mr3id9$j$aKY&VfyZ}2ps6B67bikIwP`F-TX&JL4eFeNB@T)wUxTLFe%jC=x zaggqBRc55-Hu=FQq9{I%Ig{AOQfpc7cS0O*m73km53M~hg7s7#IkPe|6-Cd$T@IT$G9OYf73AFX;+ziWhI1P9F6^;% zrVbU~I(mH7L#}6for@)h_gKDB{&;_vWA0V8z&$^-f zw$)#@bus_#y}8HYf3)u0S(l{`#ei0eK!&ru0`A0f;qs!Xqn^)EeLkI|AC2o{x;GD0 zvZ}$y1_@o30}SzIs#KSi9ttmt!4_$j%pK?YnwXR~8uzmyXSScGmHqN1Kk}a=if7Zg z^f~#AOK?25HlzJJt@RS@k-ygX{TAC$V0W{GX{I1i{w{sEC*yA~9O)f)3afKPc|w|D ziPOjOZ$qPNE8aobmS_>X4%QW^f_xkldH1}eIWV}V#JOR-VE6r0K54jU{O+z14jHWL z@x4X9g?gU{Dy-Q&+{?Yf3jKH`R&XJ%5D*=#&-CyYD^ft>AR5oN&H%6xY{bqw636rT zO$0T=%#k(&zLRHF{*AjgbyjU(sSzh*rlV>1F7?w4qSb`Amm|rg<>KnHD#nqzFE+v6 zY>YO8OV0rxdyp(~gTzO6azchOQMOfI#^2`&=%MM-d{uIk9|sAN4YW8Z9+DfBgzoA2 zf(-QMAJoG7E!2%s73A)o_WO@tW{Rw}9JYtlLC8IWhPi8BBDX;W$LXl4rGoO{2=q-U zXI*cxK<=FA-dvvIzi+`${{Rg-#d^|sM|1Jbn~(lVo+UQ+MSIoDcrWrG{`?O|{&bHA znkYgR!! z;y8h+>eH?m`diNRS@WQe&Zs`Ct38+QSy?$&d>sE%lGIJfLPnHYT|<3Awf7~xww!S) z&aP5CbDHIdm)BPTwEoZe&%nu%H-sEmG4dmB-!g1)Y4V1%g{LIR-MX3*T-6&N@v4}ojJsFF+v&q zl;PJY*#fn8-4Y$0KO5eU6)b#nIQl_>5b|UI&9PZ6UyiCBiy(u=D_CIFJk6Eq9T7$EXpBO zJfx^jLmPR9h4tu%3K>kWY@F4Q?~AVZKG^3ohD=rtCQiw8(E#1&YdV`S*Z8C(4a;+HL?-Cy^zW8)WtEBvKA2%#6!vk(iu{zqr;n^({E4?dzzEH-r1@}&O zh?8qLj<3}H!D;s{lC4rk=zmtv{CB>?e^=oN3C7Jojk?BI=rboa+TNo{^I#|lE(k1ptne1q>YfbeQ=k{)G7Ac~=m2$7U zAML5fq1eygCuk}pAQerPlvxVYF=iL&w;&sANifQqulV|oO8nNhGG`mo)hkj$el%e z(~Q@bA?xQ|$yRaBrYx`U6fUA!UHC@DPGG+;JM+G(Yk%OF(z(gIZ}%WlmK`pD+KMdi z(qnp_lNeALQw??CichC=ERbg+ONMg0RIcg9w=dYi6D#F+MQtfKuG8nc7<|HRp!7O59Q|MtEHE zb8J_N&W#Mx=pvZoi5f-B+FFqD`1q3gRSGHdoV3b}UtJ?b5(*Z|u$kNR$o>H${Cn9h zva>&CPC81r|HRrb6!`}z##da-dDrWIx4TmG4?uc%rJ6SJN!wf5q9yEoV}fxXmuBM; zj!8Tdm8V%jN!O9$5Bf`<+_HmLO|L6A-ZLc*TBLl4)?>}79xz4feM$0+lk8=hvE_>G zY_*E7qxlDTW5HD+-$dZwzp zOEC`4W6_S;Htz=Ej+t?fqudDSVXW2H`E(X3%<{ZL>U?UYS4BS4R{Ypiulf9v!eGxe@wLhYN%V?^5_LPOwi~Jj$TW3yaGktDj)_ z2Vgf)#qvsY&oP+(5Rh;=zsqNJ~2Ry%@FwzefJ4B~J|_Y{}MqQnl&`9}S8DPmv6 z>l)!;i8s-=__+&oMTR|PSd=TiWv93qON&qHzej;CRrr4CV8rg1s5%8&OW>wt!|tU( zQibI<4u2(nLx*WqQ4p>tb2J`j$r^3iqjmU{gFUjaMGs)lJuotxkBR#0OKz{ROB%jk zBFe0?ek!h#3S=NA(=mF{ZpD;IdyQ0%W=SCg%NsZ9t*0wjYOT}Lj_5A8WTZ%5lKg3c zQCruyWZt+*s-X4!EFD1QZ(J)hp9(W25r!Hk#ud}HJnr-UU^0rWo~EHs;VK*0A(Nq< z)~zIhq@|3ACpfpmMY-gqY`n2GqeAEia$p)0P`9Pi1GRM%wB4T#O5GY_Ru96i7=~)< zAN!nNPWSH<;D9POxfX-b@1WwD_?%PwOrSvvN1de?Kgj)P3{Zdo>)BUp9(t)n0}M#Z zwQ67}-IZj>>nr?>B1nN@H?&w)@)-tEVS87L^dapz^dNn-p^23_f|=1=_|_5Ic`l+%Qib5kff=JXK-m11n|2e2JSu$}R?$s2JosU7fEq?auGb zn|088AYttZ%|*P*S|jMPFGN4beh?G~* ziq~G7P12ZS4RV*;w?#^1ezn$#Fspd5nx3Bi;LqRWjPmls?S5T%i@W&gU+hY86lmz| z7M3{*$gGz(;$p`(e0X=D-RV6tBo6r$X976H8cv^(lVD0AOj-0aMO{nvf0)K7@`cm; z0G24UES~P?|FzHiUwgq^9kj*2h8>IOn$1cGiV+7|dKv;QWe|j;f3oaFNVP;#yz*`G z8Py!oz?HCAgW`$7%m9YZ0mrSB@YZA@FSki#keLOYY#09RMkZ6S^-5d7Ry=#}pm=ZY zkd%#Lz$*~=$fM*)Et42B&?v-0xoI)TriyI>DoWK=f@9M$fu7=>UMhMJjSsj~Nyy;z z+~|&$43Ex%sM>JsSig2-%Sa>|lBOw79e|sTVl5gl6%e*+pb@V*6;hX0$3MVNZJm9y= zQ8#DX_=cy@A+@z4Vd-rkeXOVzYo>|7>Av^Ovk?P*RKdrMt~5VdLRmK;4qPKhZBQBT z`QvPt)cXm80H5K(#OkUKwHtU)tkcn~+-0@=`=cKheC(i*Rb;_LRbE-s#>UF>4ls1J znB4^>y*huQ`+}5Q@pM2UtIRbXO6+kZAy`ytjY#z9TL}1~>LpA9nXf=RzaZqW=%er) zO;arK$lKp5X6EvhCHaK)Y{f)oS-%3~F3N*)@OY5C$1v*~L+0IYIK(}(8euq~b0DMD z*`h|It?;^!0vE^XtOR^{tRfT@n?G&&ZE?WaCFSo&y>}v^$4jV9&atA={GwVBZbV+t z{6-?P6Sm(H(Y}D673H0FnX-4TEW?z8A2}AwmzV_khiD)%HeFz>gxYYGJfSg@Ud{22 ztZ&0pmOI{05?f4tmmMw66T8Rp6|X^SS7j*P zxW}KwAzQNoMd@^DLa{kFaXkO_>5lfRN&ROCAXjC)IL(90iwmIp?dyZ2{NEAwYC#`8 zOkWYatan))45m;HHSySd{+0qcE(RrCP-Z>p&d?&S5#x~R71@4R4yS5^c8Ymj6>vE$ z@TtJ4nzP(Cgmoy6V{d8I45cEh9Xa&JY(4D;@n!1B>`vryp|pD+bcKgynOPpg(o+?z z4=ERH!NX1GG^4d;R)5AC)E0%t@l&RLd$=tw0j>JJSu|r1MLUn9?wE$c$|$ntROPVk z1U>hj(Lr;%6DL)_9{`kz{ind% z5l|loz~V8U*opMTZX--}W5Vuy?QSvbB`6^YKtQY9W7pb!w)c`34T#m+o! z$1^wR{sJzyM8HZPCgEG7C=Dx;`N9;WP>;@`sOr7@SK-fO!I9k$BsrU*2TSZ08k26J zcu$bK-KV8Eo9G$423zlM1@(i5jB0ueEZ9ce!<)bfv zTM0qn40V1@GpfFMiBx>~X4h=ceg~CJo7@O|eX!>f-$TU*6O?O6<8O!sW1#w79rPu* z%Krdc%hG(2I=qdF(x2inL{nS3H`8mVwO4y%*|x8o=kq^j=0h2?DQFLEX;UT2tM+of zc1Q?uRl>LmY6q$4DKQ1~GM^DhRm$wIhUuk{V4Jjt9g(}eE#p%Uz^7Ui58NB@GMky1 zS`$&0AhnlV0uzI*x)EWo&I!^kN;@QncH3>sli6|B%Hp&RIc)4%wHhZ^7RCqqSY&yH zY%_zXD6VNV`TR?ulp9Sc;~rna)8f89i$O32f5!Svpaoa6d+gv?_D=n{J!})?QzOA4 zf9f`{&3SO3G;;c?)dxO89Af?Jt7O(5HM#yej44q*dRS5SNd6_K^E8oME^{=8N;W+- zp_>x)v{S|=%2i;P1UIgIGd!#oVUDL`h5=VIeedeMV@*VQ6m6Bzuj=1#%UjZ}KKR{V zWGl?hh19C)=RW}1>-=6Q)7PMRoqPW}-A$~_+K`IP7rv$_we7SDHjc5w@m~dT-vbFx zlI}|8ry0JLU$GVZLjX?SGr{YUmet#4VB9;2vh!jty>y(H@(U~ac(SaKxzYZ@4x3UN zt-G&3niE#(p2T`m1r!c#O{c)?#E0H=S;R6>J`_9t&QbCfRp!!2lmA{o{_IA#!pPuAb+)b@1t=a`Lt7SmA*F>M!Qz$hB^B+T`fa z=Q%q*T?7t(%Xe}TUAsTMc0L6-Qdh=46*F}Ha z2#3~(Xj5djMQYy8Av2wkYB*mRow{i*%iGn(o#AL^Zb2)V-j8zp@69(=Zqrb&_DX^O z1jYXkVEq5)6VI~l|K-&Dr_4_OUiUK~FOuy)7TQjt-xWy;x{K(}Cx6Fdt%QTC$hMR1 znydn=%&W2v($XpH_L}Neb$z*ko8{;hTrs-K<(!2~1z$%deF1tIIKEAcenAIN;@eDl zYAdhZZ$YLY{VvAfw&v@SjN8>snhz%gVQ2})XSY|^W%H~nK@joG>D;1)^F;Wx#TO&q zN>libaa!7FG%0ZzHtW>SKpD4>WC z*Zy*y&`ZJ46#a=A;gwxWoRZgf>EA|JV8DHe8T5`jUC{&(phzE=`&j`h8zM{BK*7`q|#9?}$hj7RsOqu@QOUgfsLln-d=Z_Q|8bChr?0xz&e#JvTH2R&=)5LkFkGT~a_Y&n>`He~ai4Q%uV| z_Ey|mHUbB;i}DOEICn>5`&nZ}IBa7*;b{j^t}euUBG0Y_NM6J^*-i zaqBM3X!ue_@M95qxC4YwE2!yxPdXn-0o*f`N1CY0r7kP^h#-8 zTw~@g-}7gp<^1aM;Bzm{5esLDiP%~GQ@lPO={F&CcX6p?Sen<2pTImsOLKz+-PrBA zzdHX&I^K8s<$Sc^Iag}3W=gUtBKeYA5H}X566C_?_x+&^e}(G6HrSP`Z$0ETiU$pN zuhk(h$4R|J;^B7WQhnENliC$?Mh0JeZ^Gv|Kt%BsGRyZuF zs5oV{Lw!`*1a7|908O%;69NeAX7Fvt@^p<-%*F!iPdpxBgICA;_AXoRY6fH2bU`b~ z7PUL=**zY);}pIRto1=+A~%*nrc@kj(x_ zEOaPlwoalP{_XEwhDUiH<(m?=7cWny<2^6M1J4SN>~pJ|AoPDKU0)2bpn$_YIhwF0 zn*@a0ZeXN+1;mt83qpO+C)|k^p@p$UBkw|Cat6MmnGXG_x#ylD(A%TRQ@Z7$-NVty z-@IlILNLa}RjR#qdI#s~>mdBL%wl_TO#)V~5l977gd>FZPN8%rgM z1e{_*G2EX^qqUt$ewk@d*0(aSh+LrC{uY`ThR(<+4m?F7#{@*({DH7y81t*x&NEHO1w zPHN09Rw32a7hl4ogsSnx#Pjvtd`K7{^j+a5Bb~XE+DML}WAVI=GsM}|*45U<47_w6 zuC$pm?4-8HxU02rLN9X5%*$1Ok+ubYnMjYj)5PWk3(mBsJ7X7VP)Mh+7Xn!^1u(dt zzq$kj4?qWgETkD;N;ZfO_;lyRZ&k?#WX~~X3r515rt9y2zkIA+sAu$#XyWN_ ziT3=($2*j}@{u3d0dyvAMp*t6uLdKmMMofW~ z#Ls$`N`KM_);CY&mQxT#l>~_sH>b82&)-U>4c^Yg6)f}*A^L{s7oJr|10QZKFUT~k zRj}9PO2o?ul4u0fioDUgE-!8;CzYM;qQsRcn59q76Z<{8*B%3r5ZAH$5LXffoxPQs z#^0Ca-eba5Q2&w_Eb(GM zc>7|;h3a+;?Bsr|*-nH+t~PmnRkPk>l}atLeapEY_EGe!UWcvA zL|(EkGeCuG9E9QX53ov#bTz8CukC)VTAEchtiSu`kE6r#y{|Q|>g0N&-nK>W6}Y+H zLg6O-U1I1+;8oeKhK;GPd_-|$lQKwdl)%ZSiP$qh8w@;=!T0C;A-s5y9#qjCKM_RQZ9rPic4!7Pl|-Eo3lsR>f3a8GmPc67U9hkBtVO!kno@BTvs4emr!-6#Aak|NxZDrswYtCMJjUf z5NjpF_`SpsDr*_8`ipxFi9QFVS>6+?nV(m~g|jawVap&vv`Mg)?EWTO8)kz|C+BbR zx8vX~px+F;Elol|cjIs{y(XW}s$dS^y{4#EAB->l7xYX2AB`r^mj$u9V5B& zY_m0!+2&_D#R4cz4wrWOE6W{vj02+io%fTTkO3!riBRFFE^Cd*q4iw>L6bF~y45{R zz2ARp>TuaM&AU$KySWiQSF|a6vD1ZQ{l4~?=ZzN}ySx|~Gk<87Hjn${ zoJ1t6D5;@#zs1WXQo~y)jnV5?nP?hw<8_wsx0Gczsn4%i7dH@&q;K6-k+E0! zO2E^^r^nK#+~N<7IU91W*3Lkyl&0kB(nafc0utv4uh{LQemg~_(}YZ8WsK(m+YIX3 z1Wu}NCEB#@Z$>9nw(QK;n3l)I;(cwT9XFL7Lx>pcK5{2ghK=WYwY-#@34yKszHbEfD8M2%~VzT`k@A8##xiwarVHJ zB#KH>qCED-lL6<r#7>S$(Tl-1_z_0u!lC@DlL1pV=rg3zLb;1`+$QTB-)4HO0^vKx%-i0+ArP8 zIh-psehzUUV~O@$5j`6k7iigBI=|PPn0o+ex%>Qjo8OHo(Zvgrczkp|(0!?Io$x_X zC?kg{Vn-n++4N#}`>fEUR;01~^gnXp6*aDgMXJRUqK^RPX9Ug{g>6)_Nl@Yf)ApK{ zS2m^|*G?1hWEtSaB`ETUUH?tEas!V^v@&fu&zdiP^yX@M({Q@*^gGet+_{-}1*gk( z>(eJnHCx$pQd}Fk+Y<$tU~y76?%h)hAe6f17}4=gSNe**yq5b;ZVDW1HNzUj1(_ar`t}PpDW7cWT?vxBk&v{wcEgna+9WQ^Y_*Y74;GHRvBq|pc$!4w09GR6ueJzkA}$e&>kCr4E4G!J0#2oT)nR-6Ww z+JD%BmDcw?$W9Y&%k_kQXn%$&@0<d~0xK%CL++b;3eB&9hxJ0XUR`A3~Qm`V% zS+h)!5ud{#X0@Gop!$KAsmXRbv?|}9=db$9rMo}`Y)r0)rboMGuA7%P``%`V7?{j8 zw)j^vnVGzxE9KNldeFHZ8f_A17}wYld-TZIQu92@-h}Xo37C1J#u&S#Tf6XfGNKY$ z&=Nu6pz}@7|DUC&PA;J-{8c0VrvKgexQ0BR zi^tP+R>$F4{3u0Pa42h#Wao79C=x&4rE92Ja9Mn|j>y!Pb6?by0w1ffe;lSJ7J`ExOuogNnmJ-=T4^ z?g62vVRm!>Pyql;$pn7Pk790P80VHMePh$N=Yk zKmC&XWH=vYjsu3NJ0+>9jvA1+*zZBh*@fH!LZ4L_A5`9=1xENlmtYVV$K0Ay9x9qo z(!g3dK8Q(L`vH%b6XS)@Cj zIE)gqsAsjQICiN60H+9X-=~IwG8YuI*A>OEoz9ey&~$RditLf%ZlSdylrqy)p0Y|~ObJ6C?XlT1-;M}zO$#b=Pd*C~|NsEdqMyrid#hrW*+Tz)K)5g|F%~X-edZvIU&L@lGHgOlR ze}Ijo#y6oM-wO`x8EO`{77EoGK`5hHdQ`tagver7ud=_RlU_XK4ZceimSair`)6R{ zjBhhJiIho%l{tGu$jCoh);vX?yWfPmN)$JKZ2|b+QukwdSv;?$YK-*QjZS_Z%u692 zoPI>IRcYsTCedj-PcGbBP58oq>`dPox#Ux7Yugr15jEAJM6{WRV2o9ue&pas?s_L+ zMKQ$(h`98!-SIjadfIo2>4xpT_p!qAQ*hLLk1vk1cpL=Pit7vMjbL(W#ER4h6i3JV z`nkTsOeYkoU6L53J8$Ustqa_Hs^57ju;WefLkbXb3K^xofT>cJ6K{E?GJFQ&7~%*?O{o{G>{ zCtDY-7`}Jr9TyK2FSk`VLvW822chk!+ZNQ1wQ{Unvx4l6?Pw5T$TKXSqw`!TJc$C1z0jI~c>;jS(|%x;kyh;Oj41>wkcr`sGRM z^ps*M@RMnzGmXE^%5fRogIFx!+{4&%7v_E&oN#}xk&4f}+)9PYciec(8VkEdDKzE` z49i1Sfp&W6y}n&fX{1cWr(64)iHE6;)5!OwpY3##16IUUA=gN_HN+jDN&*?EP^aUYX*Fr6wo^)eQnNl6QDtl1u;pSzmO?Ih)aC6*<5>} zMNcz0u1AxSzyw$H3&w{Wn@CZ4nUOhIUOKJ5d3iQ+P}O?9fkp_UPF{ zVP8u#KY7|WJX)q48PKB?eLZY*qQ1o&73qwQ$44({-MOMh86#jLg8ej~%cbiyYnTDiR{ z)ZLkf{sW}M%9%)|v49yLA3E4o_5I-d1J^_~84*%R_DW-QY;KvSOQ;+sYuU!Ew7G&r z&JxRnZ`Zf9Ue%vIV9nc;P3y`0!rA^1z9g?^2P9}zMA+CwP`5KHhZ$pwGpplEckgb2 zkN*K;#Xjkay`qJEik*HoupLBL;v|4(dhW3M_dT!q?D0gPOzb9`BUzr{>=4QN~*h*cmhRin=Ro$gDojo%u?xGb*W zxG+V&gjMYLX*MaA`lErkwdmk_P(`Fd8vh*0Tr8h;akto;CF4G)c#d^LQr*j;Wdy2j zIa^+9N9W4(|rKt$9Z$ z?1TH1E(VmxO1ddKZi<5MEMhzz?VdTWW}YADoKJgI#rd9!z?XYqzv=>$oiO%T^&pNc3Le-`hlDsz5G!^}}koe|2Sm7dm8opCIz4O)NT z=a1rw1c(LP2ewuqrzOPljOP@l{@l54!QbQ!I8s_$VZ{^#sEuyj;cTVnwoNnJcDz+{ z7OTdzwiJLY2Bsh=fLfKr`z!rRBZVVe?)ag^CVant`~x^`O5EcGcOg35c=)#oU0Y7! zeK!b~)Q*q8hS`$oA~Ydu#xLi<7*}RuR!E&ODW&N`!o0nOm<1M`lECx&Co?{YQ{AeF zy{gQPrYMcsA4Mq(tfmbbO~wfbaVPNgkd&(1gUZYsKas|$cQq*xO+NMh@my^;EQ+V6 znLogaEk-CJC45;~W_E3A^e(1jEUVsSz37F{zW3?z0m5%4{0)h5PFUnpIeP78UyL*` z?xQ|Yu*S9FQ>niN@J&9G+i1>(b~SID?g+8kl2(+2qk81j`g*IavPaji?Lpvaz1w4r z;thy0O*qI%WA7+`Z-nB{O-Jg?TQRf%Ngw9uHCrspyD$5UPLXD^^s za7_6_{2t0NPRXB@0}j873Smy6?tBy`ua-`88f}QBYe}1vw;B^M;HS4t7|sJzdn<*b zv2yFe3-5(EVS zWw;!>zj+)GV#&pMPzD!o1mN9-j*S zn8Amy=-Ht!@gMkMIBHzXs01}@f zT}Fm@DyFRReJ28xsCS5=$^A3(@Ijh5k!4a84?U*|V{;p_S6RBG665Gc$_Zf9VWs7n zD=s?vO>WNlaw2eZ|IV6&U3>5*d3#huV#5 zdKI?AmPTEzflI@HBUUszrCF5Rn$P#t269O@< z$1$5_&%52Ac*SHN)3qfk_07vH3$O8=@p<5q+lZ@O_^cv?b|edbDtpuEl5_@{{&K=t zfx9j2m*XcM&rSCR%W>~@`*k^-p?Wy}k=o)OQkDD1%8}aFHif0-tETM%y0!B@cL4)N zVDZIk1xG%MXYMgjFj&0wvg4}>r~g8Ddt2cR#o9{ayIpJ zIEJ*WO6{@dXAwBJXfwONaqEO-O1QQz#G{9(VdCr+tslEktoLIlMkk%_p#q(YZ%gG) zowZIj=r`s#DY4@2MakbPhl;Hia0veFlE?|{uXQ}+a=y2wt3Q&h-0HtG#r+IATja;icOl}PO%DFFjk*R4+j5m7_dZ+}u>Lb8OSn)>j7cE-iKG%6}BAYYlRj_-WVNGY^6 z=JnI7ot6h3CpfvP;5mxl zM~<@4DzO#*12pNTkoXthu%-sdzkH{VobMm0!^)v-frg?bJxlQrT3YOv^KnQMtPzYU-G*8jZE=O>8t*k;6VVGe7*PMFuE0VtJ$&uZ zY6ruSI|BKM312Dk{N^7^@|xQv+pqrPa;PHR8~zXQob+m;34<|wh{dbld1q{2A?Egj3@{dLlmCzJ1x@%rc86pS>};dN@SJ~MsqURn!WY-Gy| z{r+PIb!y{>s_1l5MuLa6JGmK@pOjW47jb>MtU@?(h$|7S;giX-`j zf%t6GGhs$AGdL(nfju2G`|f~ZJ$zi!V OpenCV 2.4 + + *Author:* |Author_AlexB| + + You will learn how to process images and video streams with a model of retina filter of details enhancement, spatio-temporal noise removal and luminance correction. + + =============== ====================================================== + + .. |RetinaDemoImg| image:: images/retina_TreeHdr_small.jpg + :height: 90pt + :width: 90pt + + .. raw:: latex + + \pagebreak + +.. toctree:: + :hidden: + + ../retina_model/retina_model diff --git a/doc/tutorials/definitions/tocDefinitions.rst b/doc/tutorials/definitions/tocDefinitions.rst index 9c8e03b434..ead0837e1d 100644 --- a/doc/tutorials/definitions/tocDefinitions.rst +++ b/doc/tutorials/definitions/tocDefinitions.rst @@ -7,4 +7,6 @@ .. |Author_ArtemM| unicode:: Artem U+0020 Myagkov .. |Author_FernandoI| unicode:: Fernando U+0020 Iglesias U+0020 Garc U+00ED a .. |Author_EduardF| unicode:: Eduard U+0020 Feicho +.. |Author_AlexB| unicode:: Alexandre U+0020 Benoit + From 6e63073c6cf88e3153fdb0573fece964d797ddfa Mon Sep 17 00:00:00 2001 From: alexandre benoit Date: Mon, 22 Oct 2012 13:51:55 +0200 Subject: [PATCH 0002/1333] adding retina tutorial --- doc/tutorials/images/retina.jpg | Bin 0 -> 111990 bytes doc/tutorials/tutorials.rst | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 doc/tutorials/images/retina.jpg diff --git a/doc/tutorials/images/retina.jpg b/doc/tutorials/images/retina.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2d2465070f694d31fff3820e163fa2e97d4d58f7 GIT binary patch literal 111990 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ύHTaWK6Q{-s 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 CCwnFU literal 0 HcmV?d00001 diff --git a/doc/tutorials/tutorials.rst b/doc/tutorials/tutorials.rst index b497f3d73c..ee74e25d3d 100644 --- a/doc/tutorials/tutorials.rst +++ b/doc/tutorials/tutorials.rst @@ -156,6 +156,21 @@ As always, we would be happy to hear your comments and receive your contribution :width: 80pt :alt: gpu icon +* :ref:`Table-Of-Content-Contrib` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |Contrib| Discover additionnal contribution to OpenCV. + + =========== ======================================================= + + .. |Contrib| image:: images/retina.jpg + :height: 80pt + :width: 80pt + :alt: gpu icon + * :ref:`Table-Of-Content-iOS` .. tabularcolumns:: m{100pt} m{300pt} @@ -204,5 +219,6 @@ As always, we would be happy to hear your comments and receive your contribution objdetect/table_of_content_objdetect/table_of_content_objdetect ml/table_of_content_ml/table_of_content_ml gpu/table_of_content_gpu/table_of_content_gpu + contrib/table_of_content_contrib/table_of_content_contrib ios/table_of_content_ios/table_of_content_ios general/table_of_content_general/table_of_content_general From 90d10e6b734b619e981cd539fde647e9e99cea1a Mon Sep 17 00:00:00 2001 From: alexandre benoit Date: Tue, 23 Oct 2012 18:57:39 +0200 Subject: [PATCH 0003/1333] updated tutorial, need spell check, validation, nicer images and a discussion on parameters --- .../contrib/retina_model/retina_model.rst | 251 ++++++++++++++++-- .../table_of_content_contrib.rst | 2 +- 2 files changed, 234 insertions(+), 19 deletions(-) diff --git a/doc/tutorials/contrib/retina_model/retina_model.rst b/doc/tutorials/contrib/retina_model/retina_model.rst index 18ad11270f..d157a5c385 100644 --- a/doc/tutorials/contrib/retina_model/retina_model.rst +++ b/doc/tutorials/contrib/retina_model/retina_model.rst @@ -6,6 +6,7 @@ Discovering the human retina and its use for image processing Goal ===== +I present here a model of human retina that shows some interesting properties for image preprocessing and enhancement. In this tutorial you will learn how to: .. container:: enumeratevisibleitemswithsquare @@ -17,36 +18,37 @@ In this tutorial you will learn how to: + discover some parameters tweaks +General overview +================ + +The proposed model originates from Jeanny Herault at `Gipsa `_. It is involved in image processing applications with `Listic `_ (code maintainer) lab. The model allows the following human retina properties to be used : + +* spectral whithening (mid-frequency details enhancement and low frequency luminance energy reduction) + +* high frequency spatio-temporal noise cancelling (temporal noise and high frequency spatial noise are minimized) + +* local logarithmic luminance compression allows details to be enhanced even in low light conditions + + .. image:: images/retina_TreeHdr_small.jpg :alt: Illustration of the retina luminance compression effect :align: center For example in the above figure, a High Dynamic Range image (left) is processed by the retina model (right). The left image is coded on more than 8bit/color channel so that displaying this on 8bit format hides many details. However, as your retina does, using complementary processing. Here, local luminance adaptation, spatio-temporal noise removal and spectral whitening play an important role thus transmitting accurate information on low range data channels. - -Theory -======= -The proposed model originates from Jeanny Herault at `Gipsa `_ preliminary work. It is involved in image processing applications with `Listic `_ (code maintainer) lab. The model allows the following human retina properties to be used : +The retina model output channels +================================ -* spectral whithening (mid-frequency details enhancement) - -* high frequency spatio-temporal noise reduction (temporal noise and high frequency spatial noise are minimized) - -* low frequency luminance energy reduction (also allows luminance range compression) - -* local logarithmic luminance compression allows details to be enhanced even in low light conditions - -The retina model presents two outputs that benefit from these behaviors. +The retina model presents two outputs that benefit from the above cited behaviors. * The first one is called the Parvocellular channel. It is mainly active in the foveal retina area (high resolution central vision with color sensitive photoreceptors), its aim is to provide accurate color vision for visual details remaining static on the retina. On the other hand objects moving on the retina projection are blurried. -* The second well known channel is the magnocellular channel. It is mainly active in the retina peripheral vision and send signals related to change events (motion, transient events, etc.). It helps visual system to focus/center retina on 'transient'/moving areas for more detailled analysis thus improving visual scene context and object classification. +* The second well known channel is the magnocellular channel. It is mainly active in the retina peripheral vision and send signals related to change events (motion, transient events, etc.). These outing signals also help visual system to focus/center retina on 'transient'/moving areas for more detailled analysis thus improving visual scene context and object classification. -NOTE : regarding the proposed model, we apply these two channels on the entire input images. This allows enhanced visual details and motion information to be extracted on all the considered images. +**NOTE :** regarding the proposed model, contrary to the real retina, we apply these two channels on the entire input images using the same resoltion. This allows enhanced visual details and motion information to be extracted on all the considered images... but remember, that these two channels are complementary, if Magnocellular channel gives strong energy in an area, then, the Parvo channel is certainly blurried there since there is a transient event. As an illustration, we apply in the following the retina model on a webcam video stream of a dark visual scene. In this visual scene, captured in an amphitheater of the university, some students are moving while talking to the teacher. - In this video sequence, because of the dark ambiance, signal to noise ratio is low and color artifacts are present on visual features edges because of the low quality image capture toolchain. .. image:: images/studentsSample_input.jpg @@ -65,12 +67,15 @@ Below is the output of the magnocellular output of the retina model. Its signals :alt: the retina Magnocellular output. Enhanced transient signals (motion, etc.). A preprocessing tool for event detection. :align: center +Retina use case +=============== -Use : this model can be used basically for spatio-temporal video effects but also in the aim of : +This model can be used basically for spatio-temporal video effects but also in the aim of : * performing texture analysis with enhanced signal to noise ratio and enhanced details robust against input images luminance ranges (check out the parvocellular retina channel output) -* performing motion analysis also taking benefit of the previously cited properties (check out the magnocellular retina channel output) +* performing motion analysis also taking benefit of the previously cited properties. + For more information, refer to the following papers : * Benoit A., Caplier A., Durette B., Herault, J., "Using Human Visual System Modeling For Bio-Inspired Low Level Image Processing", Elsevier, Computer Vision and Image Understanding 114 (2010), pp. 758-773. DOI @@ -85,4 +90,214 @@ This retina filter code includes the research contributions of phd/research coll * take a look at *imagelogpolprojection.hpp* to discover retina spatial log sampling which originates from Barthelemy Durette phd with Jeanny Herault. A Retina / V1 cortex projection is also proposed and originates from Jeanny's discussions. ====> more informations in the above cited Jeanny Heraults's book. +Code tutorial +============= +Please refer to the original tutorial source code in file *opencv_folder/samples/cpp/tutorial_code/contrib/retina_tutorial.cpp*. + +To compile it, assuming OpenCV is correctly installed, use the following command. It requires the opencv_core *(cv::Mat and friends objects management)*, opencv_highgui *(display and image/video read)* and opencv_contrib *(Retina description)* libraries to compile. + +.. code-block:: cpp + + // compile + gcc retina_tutorial.cpp -o Retina_tuto -lopencv_core -lopencv_highgui -lopencv_contrib + + // Run commands : add 'log' as a last parameter to apply a spatial log sampling (simulates retina sampling) + // run on webcam + ./Retina_tuto -video + // run on video file + ./Retina_tuto -video myVideo.avi + // run on an image + ./Retina_tuto -image myPicture.jpg + // run on an image with log sampling + ./Retina_tuto -image myPicture.jpg log + +Here is a code explanation : + +Retina definition is present in the contrib package and a simple include allows to use it + +.. code-block:: cpp + + #include "opencv2/opencv.hpp" + +Provide user some hints to run the program with a help function + +.. code-block:: cpp + + // the help procedure + static void help(std::string errorMessage) + { + std::cout<<"Program init error : "< you can use this to fine tune parameters and load them if you save to file 'RetinaSpecificParameters.xml'"<= 3) + { + std::cout<<"RetinaDemo: processing image "<>inputFrame; + }else + { + // bad command parameter + help("bad command parameter"); + return -1; + } + +Once all input parameters are processed, a first image should have been loaded, if not, display error and stop program : + +.. code-block:: cpp + + if (inputFrame.empty()) + { + help("Input media could not be loaded, aborting"); + return -1; + } + +Now, everything is ready to run the retina model. I propose here to allocate a retina instance and to manage the eventual log sampling option. The Retina constructor expects at least a cv::Size object that shows the input data size that will have to be managed. One can activate other options such as color and its related color multiplexing strategy (here Bayer multiplexing is chosen using enum cv::RETINA_COLOR_BAYER). If using log sampling, the image reduction factor (smaller output images) and log sampling strengh can be adjusted. + +.. code-block:: cpp + + // pointer to a retina object + cv::Ptr myRetina; + + // if the last parameter is 'log', then activate log sampling (favour foveal vision and subsamples peripheral vision) + if (useLogSampling) + { + myRetina = new cv::Retina(inputFrame.size(), true, cv::RETINA_COLOR_BAYER, true, 2.0, 10.0); + } + else// -> else allocate "classical" retina : + myRetina = new cv::Retina(inputFrame.size()); + + +Once done, the proposed code writes a default xml file that contains the default parameters of the retina. This is usefull to make your own config using this template. Here generated template xml file is called *RetinaDefaultParameters.xml*. + +.. code-block:: cpp + + // save default retina parameters file in order to let you see this and maybe modify it and reload using method "setup" + myRetina->write("RetinaDefaultParameters.xml"); + +In the following line, the retina attempts to load another xml file called *RetinaSpecificParameters.xml*. If you created it and introduced your own setup, it will be loaded, in the other case, default retina parameters are used. + +.. code-block:: cpp + + // load parameters if file exists + myRetina->setup("RetinaSpecificParameters.xml"); + +It is not required here but just to show it is possible, you can reset the retina buffers to zero to force it to forget past events. + +.. code-block:: cpp + + // reset all retina buffers (imagine you close your eyes for a long time) + myRetina->clearBuffers(); + +Now, it is time to run the retina ! First create some output buffers ready to receive the two retina channels outputs + +.. code-block:: cpp + + // declare retina output buffers + cv::Mat retinaOutput_parvo; + cv::Mat retinaOutput_magno; + +Then, run retina in a loop, load new frames from video sequence if necessary and retina outputs. + +.. code-block:: cpp + + // processing loop with no stop condition + while(true) + { + // if using video stream, then, grabbing a new frame, else, input remains the same + if (videoCapture.isOpened()) + videoCapture>>inputFrame; + + // run retina filter on the loaded input frame + myRetina->run(inputFrame); + // Retrieve and display retina output + myRetina->getParvo(retinaOutput_parvo); + myRetina->getMagno(retinaOutput_magno); + cv::imshow("retina input", inputFrame); + cv::imshow("Retina Parvo", retinaOutput_parvo); + cv::imshow("Retina Magno", retinaOutput_magno); + cv::waitKey(10); + } + +That's done ! But if you want to secure the system, take care and manage Exceptions. The retina can throw some when it sees unrelevant data (no input frame, wrong setup, etc.) +Then, i recommend to surround all the retina code by a try/catch system like this : + +.. code-block:: cpp + + try{ + // pointer to a retina object + cv::Ptr myRetina; + [---] + // processing loop with no stop condition + while(true) + { + [---] + } + + }catch(cv::Exception e) + { + std::cerr<<"Error using Retina : "< Date: Wed, 24 Oct 2012 12:04:32 +0200 Subject: [PATCH 0004/1333] updated tutorial, rapid spell check, retina parameters discussion added --- .../contrib/retina_model/retina_model.rst | 136 +++++++++++++++--- .../table_of_content_contrib.rst | 4 +- doc/tutorials/tutorials.rst | 2 +- 3 files changed, 122 insertions(+), 20 deletions(-) diff --git a/doc/tutorials/contrib/retina_model/retina_model.rst b/doc/tutorials/contrib/retina_model/retina_model.rst index d157a5c385..57536b614a 100644 --- a/doc/tutorials/contrib/retina_model/retina_model.rst +++ b/doc/tutorials/contrib/retina_model/retina_model.rst @@ -21,35 +21,34 @@ In this tutorial you will learn how to: General overview ================ -The proposed model originates from Jeanny Herault at `Gipsa `_. It is involved in image processing applications with `Listic `_ (code maintainer) lab. The model allows the following human retina properties to be used : +The proposed model originates from Jeanny Herault's research at `Gipsa `_. It is involved in image processing applications with `Listic `_ (code maintainer) lab. This is not a complete model but it already present interesting properties that can be involved for enhanced image processing experience. The model allows the following human retina properties to be used : -* spectral whithening (mid-frequency details enhancement and low frequency luminance energy reduction) +* spectral whitening that has 3 important effects: high spatio-temporal frequency signals canceling (noise), mid-frequency details enhancement and low frequency luminance energy reduction. This *all in one* property directly allows visual signals cleaning of classical undesired distortions introduced by image sensors and input luminance range. -* high frequency spatio-temporal noise cancelling (temporal noise and high frequency spatial noise are minimized) - -* local logarithmic luminance compression allows details to be enhanced even in low light conditions +* local logarithmic luminance compression allows details to be enhanced even in low light conditions. +* decorrelation of the details information (Parvocellular output channel) and transient information (events, motion made available at the Magnocellular output channel). .. image:: images/retina_TreeHdr_small.jpg :alt: Illustration of the retina luminance compression effect :align: center -For example in the above figure, a High Dynamic Range image (left) is processed by the retina model (right). The left image is coded on more than 8bit/color channel so that displaying this on 8bit format hides many details. However, as your retina does, using complementary processing. Here, local luminance adaptation, spatio-temporal noise removal and spectral whitening play an important role thus transmitting accurate information on low range data channels. +For example in the above figure, a High Dynamic Range image (left) is processed by the retina model (right). The left image is coded on more than 8bit/color channel so that its compression to 8bit image format hides many details. However, as your retina does, local luminance adaptation, spatio-temporal noise removal and spectral whitening work together and transmit accurate information on lower range 8bit data channels. The retina model output channels ================================ The retina model presents two outputs that benefit from the above cited behaviors. -* The first one is called the Parvocellular channel. It is mainly active in the foveal retina area (high resolution central vision with color sensitive photoreceptors), its aim is to provide accurate color vision for visual details remaining static on the retina. On the other hand objects moving on the retina projection are blurried. +* The first one is called the Parvocellular channel. It is mainly active in the foveal retina area (high resolution central vision with color sensitive photo-receptors), its aim is to provide accurate color vision for visual details remaining static on the retina. On the other hand objects moving on the retina projection are blurred. -* The second well known channel is the magnocellular channel. It is mainly active in the retina peripheral vision and send signals related to change events (motion, transient events, etc.). These outing signals also help visual system to focus/center retina on 'transient'/moving areas for more detailled analysis thus improving visual scene context and object classification. +* The second well known channel is the Magnocellular channel. It is mainly active in the retina peripheral vision and send signals related to change events (motion, transient events, etc.). These outing signals also help visual system to focus/center retina on 'transient'/moving areas for more detailed analysis thus improving visual scene context and object classification. -**NOTE :** regarding the proposed model, contrary to the real retina, we apply these two channels on the entire input images using the same resoltion. This allows enhanced visual details and motion information to be extracted on all the considered images... but remember, that these two channels are complementary, if Magnocellular channel gives strong energy in an area, then, the Parvo channel is certainly blurried there since there is a transient event. +**NOTE :** regarding the proposed model, contrary to the real retina, we apply these two channels on the entire input images using the same resolution. This allows enhanced visual details and motion information to be extracted on all the considered images... but remember, that these two channels are complementary. For example, if Magnocellular channel gives strong energy in an area, then, the Parvocellular channel is certainly blurred there since there is a transient event. As an illustration, we apply in the following the retina model on a webcam video stream of a dark visual scene. In this visual scene, captured in an amphitheater of the university, some students are moving while talking to the teacher. -In this video sequence, because of the dark ambiance, signal to noise ratio is low and color artifacts are present on visual features edges because of the low quality image capture toolchain. +In this video sequence, because of the dark ambiance, signal to noise ratio is low and color artifacts are present on visual features edges because of the low quality image capture tool-chain. .. image:: images/studentsSample_input.jpg :alt: an input video stream extract sample @@ -61,7 +60,7 @@ Below is shown the retina foveal vision applied on the entire image. In the used :alt: the retina Parvocellular output. Enhanced details, luminance adaptation and noise removal. A processing tool for image analysis. :align: center -Below is the output of the magnocellular output of the retina model. Its signals are strong where transient events occur. Here, a student is moving at the bottom of the image thus generating high energy. The remaining of the image is static however, it is corrupted by a strong noise. Here, the retina filters out most of the noise thus generating low false motion area 'alarms'. This channel can be used as a transient/moving areas detector : it would provide relevant information for a low cost segmentation tool that would highlight areas in which an event is occuring. +Below is the output of the Magnocellular output of the retina model. Its signals are strong where transient events occur. Here, a student is moving at the bottom of the image thus generating high energy. The remaining of the image is static however, it is corrupted by a strong noise. Here, the retina filters out most of the noise thus generating low false motion area 'alarms'. This channel can be used as a transient/moving areas detector : it would provide relevant information for a low cost segmentation tool that would highlight areas in which an event is occurring. .. image:: images/studentsSample_magno.jpg :alt: the retina Magnocellular output. Enhanced transient signals (motion, etc.). A preprocessing tool for event detection. @@ -72,7 +71,7 @@ Retina use case This model can be used basically for spatio-temporal video effects but also in the aim of : -* performing texture analysis with enhanced signal to noise ratio and enhanced details robust against input images luminance ranges (check out the parvocellular retina channel output) +* performing texture analysis with enhanced signal to noise ratio and enhanced details robust against input images luminance ranges (check out the Parvocellular retina channel output) * performing motion analysis also taking benefit of the previously cited properties. @@ -88,7 +87,7 @@ This retina filter code includes the research contributions of phd/research coll * take a look at the *retinacolor.hpp* module to discover Brice Chaix de Lavarene phD color mosaicing/demosaicing and his reference paper: B. Chaix de Lavarene, D. Alleysson, B. Durette, J. Herault (2007). "Efficient demosaicing through recursive filtering", IEEE International Conference on Image Processing ICIP 2007 -* take a look at *imagelogpolprojection.hpp* to discover retina spatial log sampling which originates from Barthelemy Durette phd with Jeanny Herault. A Retina / V1 cortex projection is also proposed and originates from Jeanny's discussions. ====> more informations in the above cited Jeanny Heraults's book. +* take a look at *imagelogpolprojection.hpp* to discover retina spatial log sampling which originates from Barthelemy Durette phd with Jeanny Herault. A Retina / V1 cortex projection is also proposed and originates from Jeanny's discussions. ====> more information in the above cited Jeanny Heraults's book. Code tutorial ============= @@ -158,7 +157,7 @@ Then, start the main program and first declare a *cv::Mat* matrix in which input cv::VideoCapture videoCapture; // in case a video media is used, its manager is declared here -In the main program, before processing, first check input command parameters +In the main program, before processing, first check input command parameters. Here it loads a first input image coming from a single loaded image (if user chose command *-image*) or from a video stream (if user chose command *-video*). Also, if the user added *log* command at the end of its program call, the spatial logarithmic image sampling performed by the retina is taken into account by the Boolean flag *useLogSampling*. .. code-block:: cpp @@ -231,7 +230,7 @@ Now, everything is ready to run the retina model. I propose here to allocate a r myRetina = new cv::Retina(inputFrame.size()); -Once done, the proposed code writes a default xml file that contains the default parameters of the retina. This is usefull to make your own config using this template. Here generated template xml file is called *RetinaDefaultParameters.xml*. +Once done, the proposed code writes a default xml file that contains the default parameters of the retina. This is useful to make your own config using this template. Here generated template xml file is called *RetinaDefaultParameters.xml*. .. code-block:: cpp @@ -260,7 +259,7 @@ Now, it is time to run the retina ! First create some output buffers ready to re cv::Mat retinaOutput_parvo; cv::Mat retinaOutput_magno; -Then, run retina in a loop, load new frames from video sequence if necessary and retina outputs. +Then, run retina in a loop, load new frames from video sequence if necessary and get retina outputs back to dedicated buffers. .. code-block:: cpp @@ -282,7 +281,7 @@ Then, run retina in a loop, load new frames from video sequence if necessary and cv::waitKey(10); } -That's done ! But if you want to secure the system, take care and manage Exceptions. The retina can throw some when it sees unrelevant data (no input frame, wrong setup, etc.) +That's done ! But if you want to secure the system, take care and manage Exceptions. The retina can throw some when it sees irrelevant data (no input frame, wrong setup, etc.). Then, i recommend to surround all the retina code by a try/catch system like this : .. code-block:: cpp @@ -301,3 +300,106 @@ Then, i recommend to surround all the retina code by a try/catch system like thi { std::cerr<<"Error using Retina : "< + +Once done open the configuration file *RetinaDefaultParameters.xml* generated by the demo and let's have a look at it. + +.. code-block:: cpp + + + + + 1 + 1 + 7.0e-01 + 5.0e-01 + 5.3e-01 + 0. + 1. + 7. + 7.0e-01 + + 1 + 0. + 0. + 7. + 1.2e+00 + 9.5e-01 + 0. + 7. + + + +Here are some hints but actually, the best parameter setup depends more on what you want to do with the retina rather than the images input that you give to retina. Apart from the more specific case of High Dynamic Range images (HDR) that require more specific setup for specific luminance compression objective, the retina behaviors should be rather stable from content to content. Note that OpenCV is able to manage such HDR format thanks to the OpenEXR images compatibility. + +Then, if the application target requires details enhancement prior to specific image processing, you need to know if mean luminance information is required or not. If not, the the retina can cancel or significantly reduce its energy thus giving more visibility to higher spatial frequency details. + + +Basic parameters +---------------- + +The most simple parameters are the following : + +* **colorMode** : let the retina process color information (if 1) or gray scale images (if 0). In this last case, only the first channel of the input will be processed. + +* **normaliseOutput** : each channel has this parameter, if value is 1, then the considered channel output is rescaled between 0 and 255. Take care in this case at the Magnocellular output level (motion/transient channel detection). Residual noise will also be rescaled ! + +**Note :** using color requires color channels multiplexing/demultipexing which requires more processing. You can expect much faster processing using gray levels : it would require around 30 product per pixel for all the retina processes and it has recently been parallelized for multicore architectures. + +Photo-receptors parameters +------------------------- + +The following parameters act on the entry point of the retina - photo-receptors - and impact all the following processes. These sensors are low pass spatio-temporal filters that smooth temporal and spatial data and also adjust there sensitivity to local luminance thus improving details extraction and high frequency noise canceling. + +* **photoreceptorsLocalAdaptationSensitivity** between 0 and 1. Values close to 1 allow high luminance log compression effect at the photo-receptors level. Values closer to 0 give a more linear sensitivity. Increased alone, it can burn the *Parvo (details channel)* output image. If adjusted in collaboration with **ganglionCellsSensitivity** images can be very contrasted whatever the local luminance there is... at the price of a naturalness decrease. + +* **photoreceptorsTemporalConstant** this setups the temporal constant of the low pass filter effect at the entry of the retina. High value lead to strong temporal smoothing effect : moving objects are blurred and can disappear while static object are favored. But when starting the retina processing, stable state is reached lately. + +* **photoreceptorsSpatialConstant** specifies the spatial constant related to photo-receptors low pass filter effect. This parameters specify the minimum allowed spatial signal period allowed in the following. Typically, this filter should cut high frequency noise. Then a 0 value doesn't cut anything noise while higher values start to cut high spatial frequencies and more and more lower frequencies... Then, do not go to high if you wanna see some details of the input images ! A good compromise for color images is 0.53 since this won't affect too much the color spectrum. Higher values would lead to gray and blurred output images. + +Horizontal cells parameters +--------------------------- + +This parameter set tunes the neural network connected to the photo-receptors, the horizontal cells. It modulates photo-receptors sensitivity and completes the processing for final spectral whitening (part of the spatial band pass effect thus favoring visual details enhancement). + +* **horizontalCellsGain** here is a critical parameter ! If you are not interested by the mean luminance and focus on details enhancement, then, set to zero. But if you want to keep some environment luminance data, let some low spatial frequencies pass into the system and set a higher value (<1). + +* **hcellsTemporalConstant** similar to photo-receptors, this acts on the temporal constant of a low pass temporal filter that smooths input data. Here, a high value generates a high retina after effect while a lower value makes the retina more reactive. + +* **hcellsSpatialConstant** is the spatial constant of the low pass filter of these cells filter. It specifies the lowest spatial frequency allowed in the following. Visually, a high value leads to very low spatial frequencies processing and leads to salient halo effects. Lower values reduce this effect but the limit is : do not go lower than the value of **photoreceptorsSpatialConstant**. Those 2 parameters actually specify the spatial band-pass of the retina. + +**NOTE** after the processing managed by the previous parameters, input data is cleaned from noise and luminance in already partly enhanced. The following parameters act on the last processing stages of the two outing retina signals. + +Parvo (details channel) dedicated parameter +------------------------------------------- + +* **ganglionCellsSensitivity** specifies the strength of the final local adaptation occurring at the output of this details dedicated channel. Parameter values remain between 0 and 1. Low value tend to give a linear response while higher values enforces the remaining low contrasted areas. + +**Note :** this parameter can correct eventual burned images by favoring low energetic details of the visual scene, even in bright areas. + +IPL Magno (motion/transient channel) parameters +----------------------------------------------- + +Once image information is cleaned, this channel acts as a high pass temporal filter that only selects signals related to transient signals (events, motion, etc.). A low pass spatial filter smooths extracted transient data and a final logarithmic compression enhances low transient events thus enhancing event sensitivity. + +* **parasolCells_beta** generally set to zero, can be considered as an amplifier gain at the entry point of this processing stage. Generally set to 0. + +* **parasolCells_tau** the temporal smoothing effect that can be added + +* **parasolCells_k** the spatial constant of the spatial filtering effect, set it at a high value to favor low spatial frequency signals that are lower subject to residual noise. + +* **amacrinCellsTemporalCutFrequency** specifies the temporal constant of the high pass filter. High values let slow transient events to be selected. + +* **V0CompressionParameter** specifies the strength of the log compression. Similar behaviors to previous description but here it enforces sensitivity of transient events. + +* **localAdaptintegration_tau** generally set to 0, no real use here actually + +* **localAdaptintegration_k** specifies the size of the area on which local adaptation is performed. Low values lead to short range local adaptation (higher sensitivity to noise), high values secure log compression. + + diff --git a/doc/tutorials/contrib/table_of_content_contrib/table_of_content_contrib.rst b/doc/tutorials/contrib/table_of_content_contrib/table_of_content_contrib.rst index 5174d73748..61fe06b7ce 100644 --- a/doc/tutorials/contrib/table_of_content_contrib/table_of_content_contrib.rst +++ b/doc/tutorials/contrib/table_of_content_contrib/table_of_content_contrib.rst @@ -1,9 +1,9 @@ .. _Table-Of-Content-Contrib: -*contrib* module. The additionnal contributions made available ! +*contrib* module. The additional contributions made available ! ---------------------------------------------------------------- -Here you will learn how to use additionnal modules of OpenCV defined in the "contrib" module. +Here you will learn how to use additional modules of OpenCV defined in the "contrib" module. .. include:: ../../definitions/tocDefinitions.rst diff --git a/doc/tutorials/tutorials.rst b/doc/tutorials/tutorials.rst index ee74e25d3d..cbc51c1956 100644 --- a/doc/tutorials/tutorials.rst +++ b/doc/tutorials/tutorials.rst @@ -162,7 +162,7 @@ As always, we would be happy to hear your comments and receive your contribution .. cssclass:: toctableopencv =========== ======================================================= - |Contrib| Discover additionnal contribution to OpenCV. + |Contrib| Discover additional contribution to OpenCV. =========== ======================================================= From b5bd86b2a7f75aa206c354c78a5c75ae942707aa Mon Sep 17 00:00:00 2001 From: alexandre benoit Date: Wed, 24 Oct 2012 12:20:59 +0200 Subject: [PATCH 0005/1333] added retina code tutorial --- .../tutorial_code/contrib/retina_tutorial.cpp | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 samples/cpp/tutorial_code/contrib/retina_tutorial.cpp diff --git a/samples/cpp/tutorial_code/contrib/retina_tutorial.cpp b/samples/cpp/tutorial_code/contrib/retina_tutorial.cpp new file mode 100644 index 0000000000..e1ee118afa --- /dev/null +++ b/samples/cpp/tutorial_code/contrib/retina_tutorial.cpp @@ -0,0 +1,147 @@ +//============================================================================ +// Name : retina_tutorial.cpp +// Author : Alexandre Benoit, benoit.alexandre.vision@gmail.com +// Version : 0.1 +// Copyright : LISTIC/GIPSA French Labs, july 2012 +// Description : Gipsa/LISTIC Labs retina demo in C++, Ansi-style +//============================================================================ + +#include +#include + +#include "opencv2/opencv.hpp" + +static void help(std::string errorMessage) +{ + std::cout<<"Program init error : "< you can use this to fine tune parameters and load them if you save to file 'RetinaSpecificParameters.xml'"<= 3) + { + std::cout<<"RetinaDemo: processing image "<>inputFrame; + }else + { + // bad command parameter + help("bad command parameter"); + return -1; + } + + if (inputFrame.empty()) + { + help("Input media could not be loaded, aborting"); + return -1; + } + + + ////////////////////////////////////////////////////////////////////////////// + // Program start in a try/catch safety context (Retina may throw errors) + try + { + // create a retina instance with default parameters setup, uncomment the initialisation you wanna test + cv::Ptr myRetina; + + // if the last parameter is 'log', then activate log sampling (favour foveal vision and subsamples peripheral vision) + if (useLogSampling) + { + myRetina = new cv::Retina(inputFrame.size(), true, cv::RETINA_COLOR_BAYER, true, 2.0, 10.0); + } + else// -> else allocate "classical" retina : + myRetina = new cv::Retina(inputFrame.size()); + + // save default retina parameters file in order to let you see this and maybe modify it and reload using method "setup" + myRetina->write("RetinaDefaultParameters.xml"); + + // load parameters if file exists + myRetina->setup("RetinaSpecificParameters.xml"); + + // reset all retina buffers (imagine you close your eyes for a long time) + myRetina->clearBuffers(); + + // declare retina output buffers + cv::Mat retinaOutput_parvo; + cv::Mat retinaOutput_magno; + + // processing loop with no stop condition + while(true) + { + // if using video stream, then, grabbing a new frame, else, input remains the same + if (videoCapture.isOpened()) + videoCapture>>inputFrame; + + // run retina filter on the loaded input frame + myRetina->run(inputFrame); + // Retrieve and display retina output + myRetina->getParvo(retinaOutput_parvo); + myRetina->getMagno(retinaOutput_magno); + cv::imshow("retina input", inputFrame); + cv::imshow("Retina Parvo", retinaOutput_parvo); + cv::imshow("Retina Magno", retinaOutput_magno); + cv::waitKey(10); + } + }catch(cv::Exception e) + { + std::cerr<<"Error using Retina : "< Date: Sun, 28 Oct 2012 10:57:03 +0100 Subject: [PATCH 0006/1333] updated first image sample --- .../images/retina_TreeHdr_retina.jpg | Bin 0 -> 194186 bytes .../images/retina_TreeHdr_small.jpg | Bin 50051 -> 218791 bytes .../contrib/retina_model/retina_model.rst | 17 ++++++++++++++--- 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 doc/tutorials/contrib/retina_model/images/retina_TreeHdr_retina.jpg diff --git a/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_retina.jpg b/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_retina.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9f28e203689aaf9583c089ec24ab14182d94aa4a GIT binary patch literal 194186 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 z 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 literal 0 HcmV?d00001 diff --git a/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_small.jpg b/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_small.jpg index 4ffb43ec47e421d5f59961dc6704d9407b69a967..b0a2e39fb2cd68cd99e0b5afcd72531fab7217f8 100644 GIT binary patch literal 218791 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 {4>dGUz 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 MFcIa(YyX-)haN_EaRCcqDhZUb8Z~&4?*Agj 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. It is involved in image processing applications with `Listic `_ (code maintainer) lab. This is not a complete model but it already present interesting properties that can be involved for enhanced image processing experience. The model allows the following human retina properties to be used : -* spectral whitening that has 3 important effects: high spatio-temporal frequency signals canceling (noise), mid-frequency details enhancement and low frequency luminance energy reduction. This *all in one* property directly allows visual signals cleaning of classical undesired distortions introduced by image sensors and input luminance range. +* spectral whitening that has 3 important effects: high spatio-temporal frequency signals canceling (noise), mid-frequencies details enhancement and low frequencies luminance energy reduction. This *all in one* property directly allows visual signals cleaning of classical undesired distortions introduced by image sensors and input luminance range. * local logarithmic luminance compression allows details to be enhanced even in low light conditions. * decorrelation of the details information (Parvocellular output channel) and transient information (events, motion made available at the Magnocellular output channel). +The first two points are illustrated below : + +In the figure below, the OpenEXR image sample *CrissyField.exr*, a High Dynamic Range image is shown. In order to make it visible on this web-page, the original input image is linearly rescaled to the classical image luminance range [0-255] and is converted to 8bit/channel format. Such strong conversion hides many details because of too strong local contrasts. Furthermore, noise energy is also strong and pollutes visual information. + .. image:: images/retina_TreeHdr_small.jpg - :alt: Illustration of the retina luminance compression effect + :alt: A High dynamic range image linearly rescaled within range [0-255]. :align: center -For example in the above figure, a High Dynamic Range image (left) is processed by the retina model (right). The left image is coded on more than 8bit/color channel so that its compression to 8bit image format hides many details. However, as your retina does, local luminance adaptation, spatio-temporal noise removal and spectral whitening work together and transmit accurate information on lower range 8bit data channels. +In the following image, as your retina does, local luminance adaptation, spatial noise removal and spectral whitening work together and transmit accurate information on lower range 8bit data channels. On this picture, noise in significantly removed, local details hidden by strong luminance contrasts are enhanced. Output image keeps its naturalness and visual content is enhanced. + +.. image:: images/retina_TreeHdr_retina.jpg + :alt: A High dynamic range image compressed within range [0-255] using the retina. + :align: center + + +*Note :* image sample can be downloaded from the `OpenEXR website `_. Regarding this demonstration, before retina processing, input image has been linearly rescaled within 0-255 keeping its channels float format. 5% of its histogram ends has been cut (mostly removes wrong HDR pixels). Check out the sample for similar processing. The following demonstration will only consider classical 8bit/channel images. The retina model output channels ================================ From 4e58fd645cd5fb7563d502cf9e41799d29d71b83 Mon Sep 17 00:00:00 2001 From: alexandre benoit Date: Sun, 28 Oct 2012 18:34:48 +0100 Subject: [PATCH 0007/1333] minor update --- doc/tutorials/contrib/retina_model/retina_model.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/tutorials/contrib/retina_model/retina_model.rst b/doc/tutorials/contrib/retina_model/retina_model.rst index ba80a8d511..a7f8d30afa 100644 --- a/doc/tutorials/contrib/retina_model/retina_model.rst +++ b/doc/tutorials/contrib/retina_model/retina_model.rst @@ -44,7 +44,7 @@ In the following image, as your retina does, local luminance adaptation, spatial :align: center -*Note :* image sample can be downloaded from the `OpenEXR website `_. Regarding this demonstration, before retina processing, input image has been linearly rescaled within 0-255 keeping its channels float format. 5% of its histogram ends has been cut (mostly removes wrong HDR pixels). Check out the sample for similar processing. The following demonstration will only consider classical 8bit/channel images. +*Note :* image sample can be downloaded from the `OpenEXR website `_. Regarding this demonstration, before retina processing, input image has been linearly rescaled within 0-255 keeping its channels float format. 5% of its histogram ends has been cut (mostly removes wrong HDR pixels). Check out the sample *opencv/samples/cpp/OpenEXRimages_HighDynamicRange_Retina_toneMapping.cpp* for similar processing. The following demonstration will only consider classical 8bit/channel images. The retina model output channels ================================ @@ -364,7 +364,7 @@ The most simple parameters are the following : **Note :** using color requires color channels multiplexing/demultipexing which requires more processing. You can expect much faster processing using gray levels : it would require around 30 product per pixel for all the retina processes and it has recently been parallelized for multicore architectures. Photo-receptors parameters -------------------------- +-------------------------- The following parameters act on the entry point of the retina - photo-receptors - and impact all the following processes. These sensors are low pass spatio-temporal filters that smooth temporal and spatial data and also adjust there sensitivity to local luminance thus improving details extraction and high frequency noise canceling. From a0c92265db335e20ae6d0534e361bfba2d60feda Mon Sep 17 00:00:00 2001 From: alexandre benoit Date: Sun, 28 Oct 2012 18:52:04 +0100 Subject: [PATCH 0008/1333] minor updates for doc redirections and tutorial images size --- .../images/retina_TreeHdr_retina.jpg | Bin 194186 -> 150688 bytes .../images/retina_TreeHdr_small.jpg | Bin 218791 -> 166872 bytes modules/contrib/doc/retina/index.rst | 7 ++++++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_retina.jpg b/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_retina.jpg index 9f28e203689aaf9583c089ec24ab14182d94aa4a..251557e834b0ac025edfd1acf88509f016b11f39 100644 GIT binary patch literal 150688 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 z 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 z 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 diff --git a/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_small.jpg b/doc/tutorials/contrib/retina_model/images/retina_TreeHdr_small.jpg index b0a2e39fb2cd68cd99e0b5afcd72531fab7217f8..86d9f1eead64d20cdcedfd1a693c1cbaeb8ca745 100644 GIT binary patch literal 166872 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�jh`XckekaO996v^dR}_F8^k&;MjkGafr&atjf(JO7v@OVO3pU1J9ZeH4W@xB zyKgpOq0QlaGB?D{mpf36B-+mEk(kt;_0Hqm_xk;amx}aUZ3kD+(los&B#MSyq->H% z<*WnwXaZ<`D*3*o93O57WUIVCtIw`ve2i-{V?d!;irnCW2qTi#Xi)u00?4Pu+DGvT z7bC)6AJf9iERQ?qW=7LO#3?ZwaHnVlf}q%7530vYW}7zy6i25>BO)lB6?hB{9(eCZ zpSq5y%hhtRuxFJrWqgzh?EA^#nwsp<_WtAP()e0+HV}DiFPFtL=-I;;#J&v2a@b{Y zr<)bxF%xHSqA!#0b-@7kDze9i;L~KrfwKm8nRN0YgeM)y7R3EU0rcmCvGu(CeIGR> z$(JRJk$HI2fanuzt9qF50Wl4=*^Lplh_8lq#goNrrooSkic&m`Y;j1E@)v57PSU{N zH$lJh-TW}5NGpt7c!!r7qPnc8xiN`G{{Zt=(%0E+n(xq_Tyo~g9z<%2Sh({40HmIM ztP$APf9=uQPMtmruAvJs^COUCpE8MVdE@GTx8I?Qk$fI5 z$JeRJD&S^C;n=-ykb*qe!M8l0((HTj$J3j1YzNBJVZq9XHu-ldUj+86_63*@J-TgC z38c3RsvB=}fW{%wnu6~qMn;&8H>0VB@?x-5) zHe0g4!8vP*Fw~lKw{ru=;axx=*<#g76?r_G{{Z#6we<}nA79VG((#>^X$~y7;g6^Q z$b=JS!v$*labCmd504gBQ^2LMPCCla&VX6-Ry~{&ESDe}p}U@k{xu$Ew;o#J$BbW4 zNf^Y(F*&T!VkL5RF=yq=Z1MN$Zkkn}{ue0=+5E8^18l3e)wp&%4h0j(aBHMGPs?EBLpD6K ztaoor3wp2gzBv7dSFGuZBsOHNWOmb&cXxR~zC67rUkEb942OM8i zuom4ZaRFK4MAv?FndioMa%J9w0fz)xt*R+N+<5KJew5-*7}S;J2;`EjB%rXa#E>tF z`d{hPq09N%-eE74z=nc4ChOY$fB<*o*HzCH`0$*JX<1ih;G%-q@Ao~gpQpcCOB^L3 zsPgSaKGQO^(}r_%^%5Xcw6H_J%ma!a(hYl>9_QPp7`on_qq?hNt5!w{{VFkYy^1Pwj|Nc zGuD_wPXO&=0H8qa#ST4%efql|*Wq22A8AZ=7&hd)!;s}m1Q94jb%~XD19LTB@9$iY zAvCk(;LE4Yr_9fd2INNpY6F%0FKG9`HWIM68~#NlwIYERcJ4>^<(T&k&SNK;dLwEOP4$g{J2=Oca-o znGPwCqkvUFOH#|Yg<>s$Ab@LWdy(M{cSMo=2k{5O8io#_l#i+&S?3DR#^`Vy*H1_P)8Ff`Ue(H(bn6+e;srW6Zm^S z!e11jZ9`TwPCty8xmoe%O5i9hGk_?u zU_oQ`Ab+ns^PeX#irXEr6@%>-8LP)4-U&HQ}vWSIvtajv$i+%D3v=1HAx!Yg}Ce zef_#ou0tLlfuMsIA!iv-HeC4ty0QLoKuKY2cs5VC?0b~dOQV5GL|i5Kvuap61ep^& zOg!?EKS9-jSn7?EvI~cDF(3tU2N!39XZw-WxcJEwZxpDz znTae1fBt{;>wvI9g(MFCxtvQQD)Yf$fPTTR+}Qeb^CdJuT;W2qN(TFkx^8kf;DgQk zP_CQjV<-^h%F%;te6<^aUgz@h-R-xo=al8%9zn0+D{e=@>VbS^V&*hAV zUo1%FVN>r_#~r)=_tLn@MWE?a!weW%P{%whM5JtcDi-^jqIvf<$M@@vO)*yuaxq$5 zj8=AIAZ?{BtlH5eU%vp?zg6nLGN>u35jU4(XK3V)`q$L;Qed=`Nskf)eYZ+zayuS< N$A8zN*huLs|JhAS^jrV{ literal 218791 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 Date: Mon, 25 Feb 2013 14:33:00 +0400 Subject: [PATCH 0009/1333] Super Resolution module --- modules/java/generator/rst_parser.py | 4 +- modules/superres/CMakeLists.txt | 33 + modules/superres/doc/super_resolution.rst | 84 ++ modules/superres/doc/superres.rst | 8 + .../include/opencv2/superres/optical_flow.hpp | 73 ++ .../include/opencv2/superres/superres.hpp | 98 +++ modules/superres/perf/perf_main.cpp | 3 + modules/superres/perf/perf_precomp.cpp | 1 + modules/superres/perf/perf_precomp.hpp | 26 + modules/superres/perf/perf_superres.cpp | 153 ++++ modules/superres/src/btv_l1.cpp | 619 +++++++++++++++ modules/superres/src/btv_l1_gpu.cpp | 580 ++++++++++++++ modules/superres/src/cuda/btv_l1_gpu.cu | 234 ++++++ modules/superres/src/frame_source.cpp | 255 +++++++ modules/superres/src/input_array_utility.cpp | 273 +++++++ modules/superres/src/input_array_utility.hpp | 63 ++ modules/superres/src/optical_flow.cpp | 721 ++++++++++++++++++ modules/superres/src/precomp.cpp | 43 ++ modules/superres/src/precomp.hpp | 78 ++ modules/superres/src/ring_buffer.hpp | 79 ++ modules/superres/src/super_resolution.cpp | 85 +++ modules/superres/test/test_main.cpp | 3 + modules/superres/test/test_precomp.cpp | 1 + modules/superres/test/test_precomp.hpp | 23 + modules/superres/test/test_superres.cpp | 236 ++++++ samples/gpu/CMakeLists.txt | 2 +- samples/gpu/super_resolution.cpp | 152 ++++ 27 files changed, 3927 insertions(+), 3 deletions(-) create mode 100644 modules/superres/CMakeLists.txt create mode 100644 modules/superres/doc/super_resolution.rst create mode 100644 modules/superres/doc/superres.rst create mode 100644 modules/superres/include/opencv2/superres/optical_flow.hpp create mode 100644 modules/superres/include/opencv2/superres/superres.hpp create mode 100644 modules/superres/perf/perf_main.cpp create mode 100644 modules/superres/perf/perf_precomp.cpp create mode 100644 modules/superres/perf/perf_precomp.hpp create mode 100644 modules/superres/perf/perf_superres.cpp create mode 100644 modules/superres/src/btv_l1.cpp create mode 100644 modules/superres/src/btv_l1_gpu.cpp create mode 100644 modules/superres/src/cuda/btv_l1_gpu.cu create mode 100644 modules/superres/src/frame_source.cpp create mode 100644 modules/superres/src/input_array_utility.cpp create mode 100644 modules/superres/src/input_array_utility.hpp create mode 100644 modules/superres/src/optical_flow.cpp create mode 100644 modules/superres/src/precomp.cpp create mode 100644 modules/superres/src/precomp.hpp create mode 100644 modules/superres/src/ring_buffer.hpp create mode 100644 modules/superres/src/super_resolution.cpp create mode 100644 modules/superres/test/test_main.cpp create mode 100644 modules/superres/test/test_precomp.cpp create mode 100644 modules/superres/test/test_precomp.hpp create mode 100644 modules/superres/test/test_superres.cpp create mode 100644 samples/gpu/super_resolution.cpp diff --git a/modules/java/generator/rst_parser.py b/modules/java/generator/rst_parser.py index a9f5e04c99..33dae447d5 100755 --- a/modules/java/generator/rst_parser.py +++ b/modules/java/generator/rst_parser.py @@ -1,7 +1,7 @@ #/usr/bin/env python import os, sys, re, string, fnmatch -allmodules = ["core", "flann", "imgproc", "ml", "highgui", "video", "features2d", "calib3d", "objdetect", "legacy", "contrib", "gpu", "androidcamera", "java", "python", "stitching", "ts", "photo", "nonfree", "videostab", "ocl"] +allmodules = ["core", "flann", "imgproc", "ml", "highgui", "video", "features2d", "calib3d", "objdetect", "legacy", "contrib", "gpu", "androidcamera", "java", "python", "stitching", "ts", "photo", "nonfree", "videostab", "ocl", "superres"] verbose = False show_warnings = True show_errors = True @@ -380,7 +380,7 @@ class RstParser(object): @classmethod def parse_namespace(cls, func, section_name): - known_namespaces = ["cv", "gpu", "flann"] + known_namespaces = ["cv", "gpu", "flann", "superres"] l = section_name.strip() for namespace in known_namespaces: if l.startswith(namespace + "::"): diff --git a/modules/superres/CMakeLists.txt b/modules/superres/CMakeLists.txt new file mode 100644 index 0000000000..5e82629ae8 --- /dev/null +++ b/modules/superres/CMakeLists.txt @@ -0,0 +1,33 @@ +if(ANDROID OR IOS) + ocv_module_disable(superres) +endif() + +set(the_description "Super Resolution") +ocv_add_module(superres opencv_imgproc opencv_video OPTIONAL opencv_gpu opencv_highgui) +ocv_module_include_directories() + +ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef /wd4127) + +if(HAVE_CUDA) + string(REPLACE "-Wsign-promo" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + + ocv_source_group("Src\\Cuda" GLOB "src/cuda/*.cu") + ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include" ${CUDA_INCLUDE_DIRS}) + + file(GLOB lib_cuda "src/cuda/*.cu") + ocv_cuda_compile(cuda_objs ${lib_cuda}) + + set(cuda_link_libs ${CUDA_LIBRARIES}) +else() + set(lib_cuda "") + set(cuda_objs "") + set(cuda_link_libs "") +endif() + +ocv_glob_module_sources(SOURCES ${lib_cuda} ${cuda_objs}) + +ocv_create_module(${cuda_link_libs}) +ocv_add_precompiled_headers(${the_module}) + +ocv_add_accuracy_tests() +ocv_add_perf_tests() diff --git a/modules/superres/doc/super_resolution.rst b/modules/superres/doc/super_resolution.rst new file mode 100644 index 0000000000..1772b0d2db --- /dev/null +++ b/modules/superres/doc/super_resolution.rst @@ -0,0 +1,84 @@ +Super Resolution +================ + +.. highlight:: cpp + +The Super Resolution module contains a set of functions and classes that can be used to solve the problem of resolution enhancement. There are a few methods implemented, most of them are descibed in the papers [Farsiu03]_ and [Mitzel09]_. + + + +superres::SuperResolution +------------------------- +Base class for Super Resolution algorithms. + +.. ocv:class:: superres::SuperResolution : public Algorithm, public superres::FrameSource + +The class is only used to define the common interface for the whole family of Super Resolution algorithms. + + + +superres::SuperResolution::setInput +----------------------------------- +Set input frame source for Super Resolution algorithm. + +.. ocv:function:: void superres::SuperResolution::setInput(const Ptr& frameSource) + + :param frameSource: Input frame source + + + +superres::SuperResolution::nextFrame +------------------------------------ +Process next frame from input and return output result. + +.. ocv:function:: void superres::SuperResolution::nextFrame(OutputArray frame) + + :param frame: Output result + + + +superres::SuperResolution::collectGarbage +----------------------------------------- +Clear all inner buffers. + +.. ocv:function:: void superres::SuperResolution::collectGarbage() + + + +superres::createSuperResolution_BTVL1 +------------------------------------- +Create Bilateral TV-L1 Super Resolution. + +.. ocv:function:: Ptr superres::createSuperResolution_BTVL1() + +.. ocv:function:: Ptr superres::createSuperResolution_BTVL1_GPU() + +This class implements Super Resolution algorithm described in the papers [Farsiu03]_ and [Mitzel09]_ . + +Here are important members of the class that control the algorithm, which you can set after constructing the class instance: + + * **int scale** Scale factor. + + * **int iterations** Iteration count. + + * **double tau** Asymptotic value of steepest descent method. + + * **double lambda** Weight parameter to balance data term and smoothness term. + + * **double alpha** Parameter of spacial distribution in Bilateral-TV. + + * **int btvKernelSize** Kernel size of Bilateral-TV filter. + + * **int blurKernelSize** Gaussian blur kernel size. + + * **double blurSigma** Gaussian blur sigma. + + * **int temporalAreaRadius** Radius of the temporal search area. + + * **Ptr opticalFlow** Dense optical flow algorithm. + + + +.. [Farsiu03] S. Farsiu, D. Robinson, M. Elad, P. Milanfar. Fast and robust Super-Resolution. Proc 2003 IEEE Int Conf on Image Process, pp. 291–294, 2003. + +.. [Mitzel09] D. Mitzel, T. Pock, T. Schoenemann, D. Cremers. Video super resolution using duality based TV-L1 optical flow. DAGM, 2009. diff --git a/modules/superres/doc/superres.rst b/modules/superres/doc/superres.rst new file mode 100644 index 0000000000..6a69fcaeb9 --- /dev/null +++ b/modules/superres/doc/superres.rst @@ -0,0 +1,8 @@ +************************** +superres. Super Resolution +************************** + +.. toctree:: + :maxdepth: 2 + + super_resolution diff --git a/modules/superres/include/opencv2/superres/optical_flow.hpp b/modules/superres/include/opencv2/superres/optical_flow.hpp new file mode 100644 index 0000000000..bb344fc92f --- /dev/null +++ b/modules/superres/include/opencv2/superres/optical_flow.hpp @@ -0,0 +1,73 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef __OPENCV_SUPERRES_OPTICAL_FLOW_HPP__ +#define __OPENCV_SUPERRES_OPTICAL_FLOW_HPP__ + +#include "opencv2/core/core.hpp" + +namespace cv +{ + namespace superres + { + class CV_EXPORTS DenseOpticalFlowExt : public cv::Algorithm + { + public: + virtual void calc(InputArray frame0, InputArray frame1, OutputArray flow1, OutputArray flow2 = noArray()) = 0; + virtual void collectGarbage() = 0; + }; + + CV_EXPORTS Ptr createOptFlow_Farneback(); + CV_EXPORTS Ptr createOptFlow_Farneback_GPU(); + + CV_EXPORTS Ptr createOptFlow_Simple(); + + CV_EXPORTS Ptr createOptFlow_DualTVL1(); + CV_EXPORTS Ptr createOptFlow_DualTVL1_GPU(); + + CV_EXPORTS Ptr createOptFlow_Brox_GPU(); + + CV_EXPORTS Ptr createOptFlow_PyrLK_GPU(); + } +} + +#endif // __OPENCV_SUPERRES_OPTICAL_FLOW_HPP__ diff --git a/modules/superres/include/opencv2/superres/superres.hpp b/modules/superres/include/opencv2/superres/superres.hpp new file mode 100644 index 0000000000..e3e7a1e8dc --- /dev/null +++ b/modules/superres/include/opencv2/superres/superres.hpp @@ -0,0 +1,98 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef __OPENCV_SUPERRES_HPP__ +#define __OPENCV_SUPERRES_HPP__ + +#include "opencv2/core/core.hpp" + +namespace cv +{ + namespace superres + { + CV_EXPORTS bool initModule_superres(); + + class CV_EXPORTS FrameSource + { + public: + virtual ~FrameSource(); + + virtual void nextFrame(OutputArray frame) = 0; + virtual void reset() = 0; + }; + + CV_EXPORTS Ptr createFrameSource_Empty(); + + CV_EXPORTS Ptr createFrameSource_Video(const std::string& fileName); + CV_EXPORTS Ptr createFrameSource_Video_GPU(const std::string& fileName); + + CV_EXPORTS Ptr createFrameSource_Camera(int deviceId = 0); + + class CV_EXPORTS SuperResolution : public cv::Algorithm, public FrameSource + { + public: + void setInput(const Ptr& frameSource); + + void nextFrame(OutputArray frame); + void reset(); + + virtual void collectGarbage(); + + protected: + SuperResolution(); + + virtual void initImpl(Ptr& frameSource) = 0; + virtual void processImpl(Ptr& frameSource, OutputArray output) = 0; + + private: + Ptr frameSource_; + bool firstCall_; + }; + + // S. Farsiu , D. Robinson, M. Elad, P. Milanfar. Fast and robust multiframe super resolution. + // Dennis Mitzel, Thomas Pock, Thomas Schoenemann, Daniel Cremers. Video Super Resolution using Duality Based TV-L1 Optical Flow. + CV_EXPORTS Ptr createSuperResolution_BTVL1(); + CV_EXPORTS Ptr createSuperResolution_BTVL1_GPU(); + } +} + +#endif // __OPENCV_SUPERRES_HPP__ diff --git a/modules/superres/perf/perf_main.cpp b/modules/superres/perf/perf_main.cpp new file mode 100644 index 0000000000..230df8190d --- /dev/null +++ b/modules/superres/perf/perf_main.cpp @@ -0,0 +1,3 @@ +#include "perf_precomp.hpp" + +CV_PERF_TEST_MAIN(superres) diff --git a/modules/superres/perf/perf_precomp.cpp b/modules/superres/perf/perf_precomp.cpp new file mode 100644 index 0000000000..8552ac3d42 --- /dev/null +++ b/modules/superres/perf/perf_precomp.cpp @@ -0,0 +1 @@ +#include "perf_precomp.hpp" diff --git a/modules/superres/perf/perf_precomp.hpp b/modules/superres/perf/perf_precomp.hpp new file mode 100644 index 0000000000..732dd1118f --- /dev/null +++ b/modules/superres/perf/perf_precomp.hpp @@ -0,0 +1,26 @@ +#ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wmissing-declarations" +# if defined __clang__ || defined __APPLE__ +# pragma GCC diagnostic ignored "-Wmissing-prototypes" +# pragma GCC diagnostic ignored "-Wextra" +# endif +#endif + +#ifndef __OPENCV_PERF_PRECOMP_HPP__ +#define __OPENCV_PERF_PRECOMP_HPP__ + +#ifdef HAVE_CVCONFIG_H +#include "cvconfig.h" +#endif + +#include "opencv2/core/core.hpp" +#include "opencv2/core/gpumat.hpp" +#include "opencv2/ts/ts_perf.hpp" +#include "opencv2/superres/superres.hpp" +#include "opencv2/superres/optical_flow.hpp" + +#ifdef GTEST_CREATE_SHARED_LIBRARY +#error no modules except ts should have GTEST_CREATE_SHARED_LIBRARY defined +#endif + +#endif diff --git a/modules/superres/perf/perf_superres.cpp b/modules/superres/perf/perf_superres.cpp new file mode 100644 index 0000000000..a0fa8e58d2 --- /dev/null +++ b/modules/superres/perf/perf_superres.cpp @@ -0,0 +1,153 @@ +#include "perf_precomp.hpp" + +using namespace std; +using namespace std::tr1; +using namespace testing; +using namespace perf; +using namespace cv; +using namespace cv::superres; +using namespace cv::gpu; + +#define GPU_SANITY_CHECK(mat, ...) \ + do{ \ + Mat gpu_##mat(mat); \ + SANITY_CHECK(gpu_##mat, ## __VA_ARGS__); \ + } while(0) + +#define CPU_SANITY_CHECK(mat, ...) \ + do{ \ + Mat cpu_##mat(mat); \ + SANITY_CHECK(cpu_##mat, ## __VA_ARGS__); \ + } while(0) + +namespace +{ + class OneFrameSource_CPU : public FrameSource + { + public: + explicit OneFrameSource_CPU(const Mat& frame) : frame_(frame) {} + + void nextFrame(OutputArray frame) + { + frame.getMatRef() = frame_; + } + + void reset() + { + } + + private: + Mat frame_; + }; + + class OneFrameSource_GPU : public FrameSource + { + public: + explicit OneFrameSource_GPU(const GpuMat& frame) : frame_(frame) {} + + void nextFrame(OutputArray frame) + { + frame.getGpuMatRef() = frame_; + } + + void reset() + { + } + + private: + GpuMat frame_; + }; + + class ZeroOpticalFlow : public DenseOpticalFlowExt + { + public: + void calc(InputArray frame0, InputArray, OutputArray flow1, OutputArray flow2) + { + cv::Size size = frame0.size(); + + if (!flow2.needed()) + { + flow1.create(size, CV_32FC2); + + if (flow1.kind() == cv::_InputArray::GPU_MAT) + flow1.getGpuMatRef().setTo(cv::Scalar::all(0)); + else + flow1.getMatRef().setTo(cv::Scalar::all(0)); + } + else + { + flow1.create(size, CV_32FC1); + flow2.create(size, CV_32FC1); + + if (flow1.kind() == cv::_InputArray::GPU_MAT) + flow1.getGpuMatRef().setTo(cv::Scalar::all(0)); + else + flow1.getMatRef().setTo(cv::Scalar::all(0)); + + if (flow2.kind() == cv::_InputArray::GPU_MAT) + flow2.getGpuMatRef().setTo(cv::Scalar::all(0)); + else + flow2.getMatRef().setTo(cv::Scalar::all(0)); + } + } + + void collectGarbage() + { + } + }; +} + +PERF_TEST_P(Size_MatType, SuperResolution_BTVL1, + Combine(Values(szSmall64, szSmall128), + Values(MatType(CV_8UC1), MatType(CV_8UC3)))) +{ + declare.time(5 * 60); + + const Size size = get<0>(GetParam()); + const int type = get<1>(GetParam()); + + Mat frame(size, type); + declare.in(frame, WARMUP_RNG); + + const int scale = 2; + const int iterations = 50; + const int temporalAreaRadius = 1; + Ptr opticalFlow(new ZeroOpticalFlow); + + if (PERF_RUN_GPU()) + { + Ptr superRes = createSuperResolution_BTVL1_GPU(); + + superRes->set("scale", scale); + superRes->set("iterations", iterations); + superRes->set("temporalAreaRadius", temporalAreaRadius); + superRes->set("opticalFlow", opticalFlow); + + superRes->setInput(new OneFrameSource_GPU(GpuMat(frame))); + + GpuMat dst; + superRes->nextFrame(dst); + + TEST_CYCLE_N(10) superRes->nextFrame(dst); + + GPU_SANITY_CHECK(dst); + } + else + { + Ptr superRes = createSuperResolution_BTVL1(); + + superRes->set("scale", scale); + superRes->set("iterations", iterations); + superRes->set("temporalAreaRadius", temporalAreaRadius); + superRes->set("opticalFlow", opticalFlow); + + superRes->setInput(new OneFrameSource_CPU(frame)); + + Mat dst; + superRes->nextFrame(dst); + + TEST_CYCLE_N(10) superRes->nextFrame(dst); + + CPU_SANITY_CHECK(dst); + } +} diff --git a/modules/superres/src/btv_l1.cpp b/modules/superres/src/btv_l1.cpp new file mode 100644 index 0000000000..71c68365d0 --- /dev/null +++ b/modules/superres/src/btv_l1.cpp @@ -0,0 +1,619 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +// S. Farsiu , D. Robinson, M. Elad, P. Milanfar. Fast and robust multiframe super resolution. +// Dennis Mitzel, Thomas Pock, Thomas Schoenemann, Daniel Cremers. Video Super Resolution using Duality Based TV-L1 Optical Flow. + +#include "precomp.hpp" + +using namespace std; +using namespace cv; +using namespace cv::superres; +using namespace cv::superres::detail; + +namespace +{ + void calcRelativeMotions(const vector& forwardMotions, const vector& backwardMotions, + vector& relForwardMotions, vector& relBackwardMotions, + int baseIdx, Size size) + { + const int count = static_cast(forwardMotions.size()); + + relForwardMotions.resize(count); + relForwardMotions[baseIdx].create(size, CV_32FC2); + relForwardMotions[baseIdx].setTo(Scalar::all(0)); + + relBackwardMotions.resize(count); + relBackwardMotions[baseIdx].create(size, CV_32FC2); + relBackwardMotions[baseIdx].setTo(Scalar::all(0)); + + for (int i = baseIdx - 1; i >= 0; --i) + { + add(relForwardMotions[i + 1], forwardMotions[i], relForwardMotions[i]); + + add(relBackwardMotions[i + 1], backwardMotions[i + 1], relBackwardMotions[i]); + } + + for (int i = baseIdx + 1; i < count; ++i) + { + add(relForwardMotions[i - 1], backwardMotions[i], relForwardMotions[i]); + + add(relBackwardMotions[i - 1], forwardMotions[i - 1], relBackwardMotions[i]); + } + } + + void upscaleMotions(const vector& lowResMotions, vector& highResMotions, int scale) + { + highResMotions.resize(lowResMotions.size()); + + for (size_t i = 0; i < lowResMotions.size(); ++i) + { + resize(lowResMotions[i], highResMotions[i], Size(), scale, scale, INTER_CUBIC); + multiply(highResMotions[i], Scalar::all(scale), highResMotions[i]); + } + } + + void buildMotionMaps(const Mat& forwardMotion, const Mat& backwardMotion, Mat& forwardMap, Mat& backwardMap) + { + forwardMap.create(forwardMotion.size(), CV_32FC2); + backwardMap.create(forwardMotion.size(), CV_32FC2); + + for (int y = 0; y < forwardMotion.rows; ++y) + { + const Point2f* forwardMotionRow = forwardMotion.ptr(y); + const Point2f* backwardMotionRow = backwardMotion.ptr(y); + Point2f* forwardMapRow = forwardMap.ptr(y); + Point2f* backwardMapRow = backwardMap.ptr(y); + + for (int x = 0; x < forwardMotion.cols; ++x) + { + Point2f base(static_cast(x), static_cast(y)); + + forwardMapRow[x] = base + backwardMotionRow[x]; + backwardMapRow[x] = base + forwardMotionRow[x]; + } + } + } + + template + void upscaleImpl(const Mat& src, Mat& dst, int scale) + { + dst.create(src.rows * scale, src.cols * scale, src.type()); + dst.setTo(Scalar::all(0)); + + for (int y = 0, Y = 0; y < src.rows; ++y, Y += scale) + { + const T* srcRow = src.ptr(y); + T* dstRow = dst.ptr(Y); + + for (int x = 0, X = 0; x < src.cols; ++x, X += scale) + dstRow[X] = srcRow[x]; + } + } + + void upscale(const Mat& src, Mat& dst, int scale) + { + typedef void (*func_t)(const Mat& src, Mat& dst, int scale); + static const func_t funcs[] = + { + 0, upscaleImpl, 0, upscaleImpl + }; + + CV_Assert( src.channels() == 1 || src.channels() == 3 || src.channels() == 4 ); + + const func_t func = funcs[src.channels()]; + + func(src, dst, scale); + } + + float diffSign(float a, float b) + { + return a > b ? 1.0f : a < b ? -1.0f : 0.0f; + } + Point3f diffSign(Point3f a, Point3f b) + { + return Point3f( + a.x > b.x ? 1.0f : a.x < b.x ? -1.0f : 0.0f, + a.y > b.y ? 1.0f : a.y < b.y ? -1.0f : 0.0f, + a.z > b.z ? 1.0f : a.z < b.z ? -1.0f : 0.0f + ); + } + + void diffSign(const Mat& src1, const Mat& src2, Mat& dst) + { + const int count = src1.cols * src1.channels(); + + dst.create(src1.size(), src1.type()); + + for (int y = 0; y < src1.rows; ++y) + { + const float* src1Ptr = src1.ptr(y); + const float* src2Ptr = src2.ptr(y); + float* dstPtr = dst.ptr(y); + + for (int x = 0; x < count; ++x) + dstPtr[x] = diffSign(src1Ptr[x], src2Ptr[x]); + } + } + + void calcBtvWeights(int btvKernelSize, double alpha, vector& btvWeights) + { + const size_t size = btvKernelSize * btvKernelSize; + + btvWeights.resize(size); + + const int ksize = (btvKernelSize - 1) / 2; + const float alpha_f = static_cast(alpha); + + for (int m = 0, ind = 0; m <= ksize; ++m) + { + for (int l = ksize; l + m >= 0; --l, ++ind) + btvWeights[ind] = pow(alpha_f, std::abs(m) + std::abs(l)); + } + } + + template + struct BtvRegularizationBody : ParallelLoopBody + { + void operator ()(const Range& range) const; + + Mat src; + mutable Mat dst; + int ksize; + const float* btvWeights; + }; + + template + void BtvRegularizationBody::operator ()(const Range& range) const + { + for (int i = range.start; i < range.end; ++i) + { + const T* srcRow = src.ptr(i); + T* dstRow = dst.ptr(i); + + for(int j = ksize; j < src.cols - ksize; ++j) + { + const T srcVal = srcRow[j]; + + for (int m = 0, ind = 0; m <= ksize; ++m) + { + const T* srcRow2 = src.ptr(i - m); + const T* srcRow3 = src.ptr(i + m); + + for (int l = ksize; l + m >= 0; --l, ++ind) + { + dstRow[j] += btvWeights[ind] * (diffSign(srcVal, srcRow3[j + l]) - diffSign(srcRow2[j - l], srcVal)); + } + } + } + } + } + + template + void calcBtvRegularizationImpl(const Mat& src, Mat& dst, int btvKernelSize, const vector& btvWeights) + { + dst.create(src.size(), src.type()); + dst.setTo(Scalar::all(0)); + + const int ksize = (btvKernelSize - 1) / 2; + + BtvRegularizationBody body; + + body.src = src; + body.dst = dst; + body.ksize = ksize; + body.btvWeights = &btvWeights[0]; + + parallel_for_(Range(ksize, src.rows - ksize), body); + } + + void calcBtvRegularization(const Mat& src, Mat& dst, int btvKernelSize, const vector& btvWeights) + { + typedef void (*func_t)(const Mat& src, Mat& dst, int btvKernelSize, const vector& btvWeights); + static const func_t funcs[] = + { + 0, calcBtvRegularizationImpl, 0, calcBtvRegularizationImpl + }; + + const func_t func = funcs[src.channels()]; + + func(src, dst, btvKernelSize, btvWeights); + } + + class BTVL1_Base + { + public: + BTVL1_Base(); + + void process(const vector& src, Mat& dst, + const vector& forwardMotions, const vector& backwardMotions, + int baseIdx); + + void collectGarbage(); + + protected: + int scale_; + int iterations_; + double tau_; + double lambda_; + double alpha_; + int btvKernelSize_; + int blurKernelSize_; + double blurSigma_; + Ptr opticalFlow_; + + private: + Ptr filter_; + int curBlurKernelSize_; + double curBlurSigma_; + int curSrcType_; + + vector btvWeights_; + int curBtvKernelSize_; + double curAlpha_; + + vector lowResForwardMotions_; + vector lowResBackwardMotions_; + + vector highResForwardMotions_; + vector highResBackwardMotions_; + + vector forwardMaps_; + vector backwardMaps_; + + Mat highRes_; + + Mat diffTerm_, regTerm_; + Mat a_, b_, c_; + }; + + BTVL1_Base::BTVL1_Base() + { + scale_ = 4; + iterations_ = 180; + lambda_ = 0.03; + tau_ = 1.3; + alpha_ = 0.7; + btvKernelSize_ = 7; + blurKernelSize_ = 5; + blurSigma_ = 0.0; + opticalFlow_ = createOptFlow_Farneback(); + + curBlurKernelSize_ = -1; + curBlurSigma_ = -1.0; + curSrcType_ = -1; + + curBtvKernelSize_ = -1; + curAlpha_ = -1.0; + } + + void BTVL1_Base::process(const vector& src, Mat& dst, const vector& forwardMotions, const vector& backwardMotions, int baseIdx) + { + CV_Assert( scale_ > 1 ); + CV_Assert( iterations_ > 0 ); + CV_Assert( tau_ > 0.0 ); + CV_Assert( alpha_ > 0.0 ); + CV_Assert( btvKernelSize_ > 0 ); + CV_Assert( blurKernelSize_ > 0 ); + CV_Assert( blurSigma_ >= 0.0 ); + + // update blur filter and btv weights + + if (filter_.empty() || blurKernelSize_ != curBlurKernelSize_ || blurSigma_ != curBlurSigma_ || src[0].type() != curSrcType_) + { + filter_ = createGaussianFilter(src[0].type(), Size(blurKernelSize_, blurKernelSize_), blurSigma_); + curBlurKernelSize_ = blurKernelSize_; + curBlurSigma_ = blurSigma_; + curSrcType_ = src[0].type(); + } + + if (btvWeights_.empty() || btvKernelSize_ != curBtvKernelSize_ || alpha_ != curAlpha_) + { + calcBtvWeights(btvKernelSize_, alpha_, btvWeights_); + curBtvKernelSize_ = btvKernelSize_; + curAlpha_ = alpha_; + } + + // calc high res motions + + calcRelativeMotions(forwardMotions, backwardMotions, lowResForwardMotions_, lowResBackwardMotions_, baseIdx, src[0].size()); + + upscaleMotions(lowResForwardMotions_, highResForwardMotions_, scale_); + upscaleMotions(lowResBackwardMotions_, highResBackwardMotions_, scale_); + + forwardMaps_.resize(highResForwardMotions_.size()); + backwardMaps_.resize(highResForwardMotions_.size()); + for (size_t i = 0; i < highResForwardMotions_.size(); ++i) + buildMotionMaps(highResForwardMotions_[i], highResBackwardMotions_[i], forwardMaps_[i], backwardMaps_[i]); + + // initial estimation + + const Size lowResSize = src[0].size(); + const Size highResSize(lowResSize.width * scale_, lowResSize.height * scale_); + + resize(src[baseIdx], highRes_, highResSize, 0, 0, INTER_CUBIC); + + // iterations + + diffTerm_.create(highResSize, highRes_.type()); + a_.create(highResSize, highRes_.type()); + b_.create(highResSize, highRes_.type()); + c_.create(lowResSize, highRes_.type()); + + for (int i = 0; i < iterations_; ++i) + { + diffTerm_.setTo(Scalar::all(0)); + + for (size_t k = 0; k < src.size(); ++k) + { + // a = M * Ih + remap(highRes_, a_, backwardMaps_[k], noArray(), INTER_NEAREST); + // b = HM * Ih + filter_->apply(a_, b_); + // c = DHM * Ih + resize(b_, c_, lowResSize, 0, 0, INTER_NEAREST); + + diffSign(src[k], c_, c_); + + // a = Dt * diff + upscale(c_, a_, scale_); + // b = HtDt * diff + filter_->apply(a_, b_); + // a = MtHtDt * diff + remap(b_, a_, forwardMaps_[k], noArray(), INTER_NEAREST); + + add(diffTerm_, a_, diffTerm_); + } + + if (lambda_ > 0) + { + calcBtvRegularization(highRes_, regTerm_, btvKernelSize_, btvWeights_); + addWeighted(diffTerm_, 1.0, regTerm_, -lambda_, 0.0, diffTerm_); + } + + addWeighted(highRes_, 1.0, diffTerm_, tau_, 0.0, highRes_); + } + + Rect inner(btvKernelSize_, btvKernelSize_, highRes_.cols - 2 * btvKernelSize_, highRes_.rows - 2 * btvKernelSize_); + highRes_(inner).copyTo(dst); + } + + void BTVL1_Base::collectGarbage() + { + filter_.release(); + + lowResForwardMotions_.clear(); + lowResBackwardMotions_.clear(); + + highResForwardMotions_.clear(); + highResBackwardMotions_.clear(); + + forwardMaps_.clear(); + backwardMaps_.clear(); + + highRes_.release(); + + diffTerm_.release(); + regTerm_.release(); + a_.release(); + b_.release(); + c_.release(); + } + +//////////////////////////////////////////////////////////////////// + + class BTVL1 : public SuperResolution, private BTVL1_Base + { + public: + AlgorithmInfo* info() const; + + BTVL1(); + + void collectGarbage(); + + protected: + void initImpl(Ptr& frameSource); + void processImpl(Ptr& frameSource, OutputArray output); + + private: + int temporalAreaRadius_; + + void readNextFrame(Ptr& frameSource); + void processFrame(int idx); + + Mat curFrame_; + Mat prevFrame_; + + vector frames_; + vector forwardMotions_; + vector backwardMotions_; + vector outputs_; + + int storePos_; + int procPos_; + int outPos_; + + vector srcFrames_; + vector srcForwardMotions_; + vector srcBackwardMotions_; + Mat finalOutput_; + }; + + CV_INIT_ALGORITHM(BTVL1, "SuperResolution.BTVL1", + obj.info()->addParam(obj, "scale", obj.scale_, false, 0, 0, "Scale factor."); + obj.info()->addParam(obj, "iterations", obj.iterations_, false, 0, 0, "Iteration count."); + obj.info()->addParam(obj, "tau", obj.tau_, false, 0, 0, "Asymptotic value of steepest descent method."); + obj.info()->addParam(obj, "lambda", obj.lambda_, false, 0, 0, "Weight parameter to balance data term and smoothness term."); + obj.info()->addParam(obj, "alpha", obj.alpha_, false, 0, 0, "Parameter of spacial distribution in Bilateral-TV."); + obj.info()->addParam(obj, "btvKernelSize", obj.btvKernelSize_, false, 0, 0, "Kernel size of Bilateral-TV filter."); + obj.info()->addParam(obj, "blurKernelSize", obj.blurKernelSize_, false, 0, 0, "Gaussian blur kernel size."); + obj.info()->addParam(obj, "blurSigma", obj.blurSigma_, false, 0, 0, "Gaussian blur sigma."); + obj.info()->addParam(obj, "temporalAreaRadius", obj.temporalAreaRadius_, false, 0, 0, "Radius of the temporal search area."); + obj.info()->addParam(obj, "opticalFlow", obj.opticalFlow_, false, 0, 0, "Dense optical flow algorithm.")); + + BTVL1::BTVL1() + { + temporalAreaRadius_ = 4; + } + + void BTVL1::collectGarbage() + { + curFrame_.release(); + prevFrame_.release(); + + frames_.clear(); + forwardMotions_.clear(); + backwardMotions_.clear(); + outputs_.clear(); + + srcFrames_.clear(); + srcForwardMotions_.clear(); + srcBackwardMotions_.clear(); + finalOutput_.release(); + + SuperResolution::collectGarbage(); + BTVL1_Base::collectGarbage(); + } + + void BTVL1::initImpl(Ptr& frameSource) + { + const int cacheSize = 2 * temporalAreaRadius_ + 1; + + frames_.resize(cacheSize); + forwardMotions_.resize(cacheSize); + backwardMotions_.resize(cacheSize); + outputs_.resize(cacheSize); + + storePos_ = -1; + + for (int t = -temporalAreaRadius_; t <= temporalAreaRadius_; ++t) + readNextFrame(frameSource); + + for (int i = 0; i <= temporalAreaRadius_; ++i) + processFrame(i); + + procPos_ = temporalAreaRadius_; + outPos_ = -1; + } + + void BTVL1::processImpl(Ptr& frameSource, OutputArray _output) + { + if (outPos_ >= storePos_) + { + _output.release(); + return; + } + + readNextFrame(frameSource); + + if (procPos_ < storePos_) + { + ++procPos_; + processFrame(procPos_); + } + + ++outPos_; + const Mat& curOutput = at(outPos_, outputs_); + + if (_output.kind() < _InputArray::OPENGL_BUFFER) + curOutput.convertTo(_output, CV_8U); + else + { + curOutput.convertTo(finalOutput_, CV_8U); + arrCopy(finalOutput_, _output); + } + } + + void BTVL1::readNextFrame(Ptr& frameSource) + { + frameSource->nextFrame(curFrame_); + + if (curFrame_.empty()) + return; + + ++storePos_; + curFrame_.convertTo(at(storePos_, frames_), CV_32F); + + if (storePos_ > 0) + { + opticalFlow_->calc(prevFrame_, curFrame_, at(storePos_ - 1, forwardMotions_)); + opticalFlow_->calc(curFrame_, prevFrame_, at(storePos_, backwardMotions_)); + } + + curFrame_.copyTo(prevFrame_); + } + + void BTVL1::processFrame(int idx) + { + const int startIdx = max(idx - temporalAreaRadius_, 0); + const int procIdx = idx; + const int endIdx = min(startIdx + 2 * temporalAreaRadius_, storePos_); + + const int count = endIdx - startIdx + 1; + + srcFrames_.resize(count); + srcForwardMotions_.resize(count); + srcBackwardMotions_.resize(count); + + int baseIdx = -1; + + for (int i = startIdx, k = 0; i <= endIdx; ++i, ++k) + { + if (i == procIdx) + baseIdx = k; + + srcFrames_[k] = at(i, frames_); + + if (i < endIdx) + srcForwardMotions_[k] = at(i, forwardMotions_); + if (i > startIdx) + srcBackwardMotions_[k] = at(i, backwardMotions_); + } + + process(srcFrames_, at(idx, outputs_), srcForwardMotions_, srcBackwardMotions_, baseIdx); + } +} + +Ptr cv::superres::createSuperResolution_BTVL1() +{ + return new BTVL1; +} diff --git a/modules/superres/src/btv_l1_gpu.cpp b/modules/superres/src/btv_l1_gpu.cpp new file mode 100644 index 0000000000..4820d716a9 --- /dev/null +++ b/modules/superres/src/btv_l1_gpu.cpp @@ -0,0 +1,580 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +// S. Farsiu , D. Robinson, M. Elad, P. Milanfar. Fast and robust multiframe super resolution. +// Dennis Mitzel, Thomas Pock, Thomas Schoenemann, Daniel Cremers. Video Super Resolution using Duality Based TV-L1 Optical Flow. + +#include "precomp.hpp" + +using namespace std; +using namespace cv; +using namespace cv::gpu; +using namespace cv::superres; +using namespace cv::superres::detail; + +#ifndef HAVE_CUDA + +Ptr cv::superres::createSuperResolution_BTVL1_GPU() +{ + CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); + return Ptr(); +} + +#else // HAVE_CUDA + +namespace btv_l1_device +{ + void buildMotionMaps(PtrStepSzf forwardMotionX, PtrStepSzf forwardMotionY, + PtrStepSzf backwardMotionX, PtrStepSzf bacwardMotionY, + PtrStepSzf forwardMapX, PtrStepSzf forwardMapY, + PtrStepSzf backwardMapX, PtrStepSzf backwardMapY); + + template + void upscale(const PtrStepSzb src, PtrStepSzb dst, int scale, cudaStream_t stream); + + void diffSign(PtrStepSzf src1, PtrStepSzf src2, PtrStepSzf dst, cudaStream_t stream); + + void loadBtvWeights(const float* weights, size_t count); + template void calcBtvRegularization(PtrStepSzb src, PtrStepSzb dst, int ksize); +} + +namespace +{ + void calcRelativeMotions(const vector >& forwardMotions, const vector >& backwardMotions, + vector >& relForwardMotions, vector >& relBackwardMotions, + int baseIdx, Size size) + { + const int count = static_cast(forwardMotions.size()); + + relForwardMotions.resize(count); + relForwardMotions[baseIdx].first.create(size, CV_32FC1); + relForwardMotions[baseIdx].first.setTo(Scalar::all(0)); + relForwardMotions[baseIdx].second.create(size, CV_32FC1); + relForwardMotions[baseIdx].second.setTo(Scalar::all(0)); + + relBackwardMotions.resize(count); + relBackwardMotions[baseIdx].first.create(size, CV_32FC1); + relBackwardMotions[baseIdx].first.setTo(Scalar::all(0)); + relBackwardMotions[baseIdx].second.create(size, CV_32FC1); + relBackwardMotions[baseIdx].second.setTo(Scalar::all(0)); + + for (int i = baseIdx - 1; i >= 0; --i) + { + gpu::add(relForwardMotions[i + 1].first, forwardMotions[i].first, relForwardMotions[i].first); + gpu::add(relForwardMotions[i + 1].second, forwardMotions[i].second, relForwardMotions[i].second); + + gpu::add(relBackwardMotions[i + 1].first, backwardMotions[i + 1].first, relBackwardMotions[i].first); + gpu::add(relBackwardMotions[i + 1].second, backwardMotions[i + 1].second, relBackwardMotions[i].second); + } + + for (int i = baseIdx + 1; i < count; ++i) + { + gpu::add(relForwardMotions[i - 1].first, backwardMotions[i].first, relForwardMotions[i].first); + gpu::add(relForwardMotions[i - 1].second, backwardMotions[i].second, relForwardMotions[i].second); + + gpu::add(relBackwardMotions[i - 1].first, forwardMotions[i - 1].first, relBackwardMotions[i].first); + gpu::add(relBackwardMotions[i - 1].second, forwardMotions[i - 1].second, relBackwardMotions[i].second); + } + } + + void upscaleMotions(const vector >& lowResMotions, vector >& highResMotions, int scale) + { + highResMotions.resize(lowResMotions.size()); + + for (size_t i = 0; i < lowResMotions.size(); ++i) + { + gpu::resize(lowResMotions[i].first, highResMotions[i].first, Size(), scale, scale, INTER_CUBIC); + gpu::resize(lowResMotions[i].second, highResMotions[i].second, Size(), scale, scale, INTER_CUBIC); + + gpu::multiply(highResMotions[i].first, Scalar::all(scale), highResMotions[i].first); + gpu::multiply(highResMotions[i].second, Scalar::all(scale), highResMotions[i].second); + } + } + + void buildMotionMaps(const pair& forwardMotion, const pair& backwardMotion, + pair& forwardMap, pair& backwardMap) + { + forwardMap.first.create(forwardMotion.first.size(), CV_32FC1); + forwardMap.second.create(forwardMotion.first.size(), CV_32FC1); + + backwardMap.first.create(forwardMotion.first.size(), CV_32FC1); + backwardMap.second.create(forwardMotion.first.size(), CV_32FC1); + + btv_l1_device::buildMotionMaps(forwardMotion.first, forwardMotion.second, + backwardMotion.first, backwardMotion.second, + forwardMap.first, forwardMap.second, + backwardMap.first, backwardMap.second); + } + + void upscale(const GpuMat& src, GpuMat& dst, int scale, Stream& stream) + { + typedef void (*func_t)(const PtrStepSzb src, PtrStepSzb dst, int scale, cudaStream_t stream); + static const func_t funcs[] = + { + 0, btv_l1_device::upscale<1>, 0, btv_l1_device::upscale<3>, btv_l1_device::upscale<4> + }; + + CV_Assert( src.channels() == 1 || src.channels() == 3 || src.channels() == 4 ); + + dst.create(src.rows * scale, src.cols * scale, src.type()); + dst.setTo(Scalar::all(0)); + + const func_t func = funcs[src.channels()]; + + func(src, dst, scale, StreamAccessor::getStream(stream)); + } + + void diffSign(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, Stream& stream) + { + dst.create(src1.size(), src1.type()); + + btv_l1_device::diffSign(src1.reshape(1), src2.reshape(1), dst.reshape(1), StreamAccessor::getStream(stream)); + } + + void calcBtvWeights(int btvKernelSize, double alpha, vector& btvWeights) + { + const size_t size = btvKernelSize * btvKernelSize; + + btvWeights.resize(size); + + const int ksize = (btvKernelSize - 1) / 2; + const float alpha_f = static_cast(alpha); + + for (int m = 0, ind = 0; m <= ksize; ++m) + { + for (int l = ksize; l + m >= 0; --l, ++ind) + btvWeights[ind] = pow(alpha_f, std::abs(m) + std::abs(l)); + } + + btv_l1_device::loadBtvWeights(&btvWeights[0], size); + } + + void calcBtvRegularization(const GpuMat& src, GpuMat& dst, int btvKernelSize) + { + typedef void (*func_t)(PtrStepSzb src, PtrStepSzb dst, int ksize); + static const func_t funcs[] = + { + 0, + btv_l1_device::calcBtvRegularization<1>, + 0, + btv_l1_device::calcBtvRegularization<3>, + btv_l1_device::calcBtvRegularization<4> + }; + + dst.create(src.size(), src.type()); + dst.setTo(Scalar::all(0)); + + const int ksize = (btvKernelSize - 1) / 2; + + funcs[src.channels()](src, dst, ksize); + } + + class BTVL1_GPU_Base + { + public: + BTVL1_GPU_Base(); + + void process(const vector& src, GpuMat& dst, + const vector >& forwardMotions, const vector >& backwardMotions, + int baseIdx); + + void collectGarbage(); + + protected: + int scale_; + int iterations_; + double lambda_; + double tau_; + double alpha_; + int btvKernelSize_; + int blurKernelSize_; + double blurSigma_; + Ptr opticalFlow_; + + private: + vector > filters_; + int curBlurKernelSize_; + double curBlurSigma_; + int curSrcType_; + + vector btvWeights_; + int curBtvKernelSize_; + double curAlpha_; + + vector > lowResForwardMotions_; + vector > lowResBackwardMotions_; + + vector > highResForwardMotions_; + vector > highResBackwardMotions_; + + vector > forwardMaps_; + vector > backwardMaps_; + + GpuMat highRes_; + + vector streams_; + vector diffTerms_; + vector a_, b_, c_; + GpuMat regTerm_; + }; + + BTVL1_GPU_Base::BTVL1_GPU_Base() + { + scale_ = 4; + iterations_ = 180; + lambda_ = 0.03; + tau_ = 1.3; + alpha_ = 0.7; + btvKernelSize_ = 7; + blurKernelSize_ = 5; + blurSigma_ = 0.0; + opticalFlow_ = createOptFlow_Farneback_GPU(); + + curBlurKernelSize_ = -1; + curBlurSigma_ = -1.0; + curSrcType_ = -1; + + curBtvKernelSize_ = -1; + curAlpha_ = -1.0; + } + + void BTVL1_GPU_Base::process(const vector& src, GpuMat& dst, + const vector >& forwardMotions, const vector >& backwardMotions, + int baseIdx) + { + CV_Assert( scale_ > 1 ); + CV_Assert( iterations_ > 0 ); + CV_Assert( tau_ > 0.0 ); + CV_Assert( alpha_ > 0.0 ); + CV_Assert( btvKernelSize_ > 0 && btvKernelSize_ <= 16 ); + CV_Assert( blurKernelSize_ > 0 ); + CV_Assert( blurSigma_ >= 0.0 ); + + // update blur filter and btv weights + + if (filters_.size() != src.size() || blurKernelSize_ != curBlurKernelSize_ || blurSigma_ != curBlurSigma_ || src[0].type() != curSrcType_) + { + filters_.resize(src.size()); + for (size_t i = 0; i < src.size(); ++i) + filters_[i] = createGaussianFilter_GPU(src[0].type(), Size(blurKernelSize_, blurKernelSize_), blurSigma_); + curBlurKernelSize_ = blurKernelSize_; + curBlurSigma_ = blurSigma_; + curSrcType_ = src[0].type(); + } + + if (btvWeights_.empty() || btvKernelSize_ != curBtvKernelSize_ || alpha_ != curAlpha_) + { + calcBtvWeights(btvKernelSize_, alpha_, btvWeights_); + curBtvKernelSize_ = btvKernelSize_; + curAlpha_ = alpha_; + } + + // calc motions between input frames + + calcRelativeMotions(forwardMotions, backwardMotions, lowResForwardMotions_, lowResBackwardMotions_, baseIdx, src[0].size()); + + upscaleMotions(lowResForwardMotions_, highResForwardMotions_, scale_); + upscaleMotions(lowResBackwardMotions_, highResBackwardMotions_, scale_); + + forwardMaps_.resize(highResForwardMotions_.size()); + backwardMaps_.resize(highResForwardMotions_.size()); + for (size_t i = 0; i < highResForwardMotions_.size(); ++i) + buildMotionMaps(highResForwardMotions_[i], highResBackwardMotions_[i], forwardMaps_[i], backwardMaps_[i]); + + // initial estimation + + const Size lowResSize = src[0].size(); + const Size highResSize(lowResSize.width * scale_, lowResSize.height * scale_); + + gpu::resize(src[baseIdx], highRes_, highResSize, 0, 0, INTER_CUBIC); + + // iterations + + streams_.resize(src.size()); + diffTerms_.resize(src.size()); + a_.resize(src.size()); + b_.resize(src.size()); + c_.resize(src.size()); + + for (int i = 0; i < iterations_; ++i) + { + for (size_t k = 0; k < src.size(); ++k) + { + // a = M * Ih + gpu::remap(highRes_, a_[k], backwardMaps_[k].first, backwardMaps_[k].second, INTER_NEAREST, BORDER_REPLICATE, Scalar(), streams_[k]); + // b = HM * Ih + filters_[k]->apply(a_[k], b_[k], Rect(0,0,-1,-1), streams_[k]); + // c = DHF * Ih + gpu::resize(b_[k], c_[k], lowResSize, 0, 0, INTER_NEAREST, streams_[k]); + + diffSign(src[k], c_[k], c_[k], streams_[k]); + + // a = Dt * diff + upscale(c_[k], a_[k], scale_, streams_[k]); + // b = HtDt * diff + filters_[k]->apply(a_[k], b_[k], Rect(0,0,-1,-1), streams_[k]); + // diffTerm = MtHtDt * diff + gpu::remap(b_[k], diffTerms_[k], forwardMaps_[k].first, forwardMaps_[k].second, INTER_NEAREST, BORDER_REPLICATE, Scalar(), streams_[k]); + } + + if (lambda_ > 0) + { + calcBtvRegularization(highRes_, regTerm_, btvKernelSize_); + gpu::addWeighted(highRes_, 1.0, regTerm_, -tau_ * lambda_, 0.0, highRes_); + } + + for (size_t k = 0; k < src.size(); ++k) + { + streams_[k].waitForCompletion(); + gpu::addWeighted(highRes_, 1.0, diffTerms_[k], tau_, 0.0, highRes_); + } + } + + Rect inner(btvKernelSize_, btvKernelSize_, highRes_.cols - 2 * btvKernelSize_, highRes_.rows - 2 * btvKernelSize_); + highRes_(inner).copyTo(dst); + } + + void BTVL1_GPU_Base::collectGarbage() + { + filters_.clear(); + + lowResForwardMotions_.clear(); + lowResBackwardMotions_.clear(); + + highResForwardMotions_.clear(); + highResBackwardMotions_.clear(); + + forwardMaps_.clear(); + backwardMaps_.clear(); + + highRes_.release(); + + diffTerms_.clear(); + a_.clear(); + b_.clear(); + c_.clear(); + regTerm_.release(); + } + +//////////////////////////////////////////////////////////// + + class BTVL1_GPU : public SuperResolution, private BTVL1_GPU_Base + { + public: + AlgorithmInfo* info() const; + + BTVL1_GPU(); + + void collectGarbage(); + + protected: + void initImpl(Ptr& frameSource); + void processImpl(Ptr& frameSource, OutputArray output); + + private: + int temporalAreaRadius_; + + void readNextFrame(Ptr& frameSource); + void processFrame(int idx); + + GpuMat curFrame_; + GpuMat prevFrame_; + + vector frames_; + vector > forwardMotions_; + vector > backwardMotions_; + vector outputs_; + + int storePos_; + int procPos_; + int outPos_; + + vector srcFrames_; + vector > srcForwardMotions_; + vector > srcBackwardMotions_; + GpuMat finalOutput_; + }; + + CV_INIT_ALGORITHM(BTVL1_GPU, "SuperResolution.BTVL1_GPU", + obj.info()->addParam(obj, "scale", obj.scale_, false, 0, 0, "Scale factor."); + obj.info()->addParam(obj, "iterations", obj.iterations_, false, 0, 0, "Iteration count."); + obj.info()->addParam(obj, "tau", obj.tau_, false, 0, 0, "Asymptotic value of steepest descent method."); + obj.info()->addParam(obj, "lambda", obj.lambda_, false, 0, 0, "Weight parameter to balance data term and smoothness term."); + obj.info()->addParam(obj, "alpha", obj.alpha_, false, 0, 0, "Parameter of spacial distribution in Bilateral-TV."); + obj.info()->addParam(obj, "btvKernelSize", obj.btvKernelSize_, false, 0, 0, "Kernel size of Bilateral-TV filter."); + obj.info()->addParam(obj, "blurKernelSize", obj.blurKernelSize_, false, 0, 0, "Gaussian blur kernel size."); + obj.info()->addParam(obj, "blurSigma", obj.blurSigma_, false, 0, 0, "Gaussian blur sigma."); + obj.info()->addParam(obj, "temporalAreaRadius", obj.temporalAreaRadius_, false, 0, 0, "Radius of the temporal search area."); + obj.info()->addParam(obj, "opticalFlow", obj.opticalFlow_, false, 0, 0, "Dense optical flow algorithm.")); + + BTVL1_GPU::BTVL1_GPU() + { + temporalAreaRadius_ = 4; + } + + void BTVL1_GPU::collectGarbage() + { + curFrame_.release(); + prevFrame_.release(); + + frames_.clear(); + forwardMotions_.clear(); + backwardMotions_.clear(); + outputs_.clear(); + + srcFrames_.clear(); + srcForwardMotions_.clear(); + srcBackwardMotions_.clear(); + finalOutput_.release(); + + SuperResolution::collectGarbage(); + BTVL1_GPU_Base::collectGarbage(); + } + + void BTVL1_GPU::initImpl(Ptr& frameSource) + { + const int cacheSize = 2 * temporalAreaRadius_ + 1; + + frames_.resize(cacheSize); + forwardMotions_.resize(cacheSize); + backwardMotions_.resize(cacheSize); + outputs_.resize(cacheSize); + + storePos_ = -1; + + for (int t = -temporalAreaRadius_; t <= temporalAreaRadius_; ++t) + readNextFrame(frameSource); + + for (int i = 0; i <= temporalAreaRadius_; ++i) + processFrame(i); + + procPos_ = temporalAreaRadius_; + outPos_ = -1; + } + + void BTVL1_GPU::processImpl(Ptr& frameSource, OutputArray _output) + { + if (outPos_ >= storePos_) + { + _output.release(); + return; + } + + readNextFrame(frameSource); + + if (procPos_ < storePos_) + { + ++procPos_; + processFrame(procPos_); + } + + ++outPos_; + const GpuMat& curOutput = at(outPos_, outputs_); + + if (_output.kind() == _InputArray::GPU_MAT) + curOutput.convertTo(_output.getGpuMatRef(), CV_8U); + else + { + curOutput.convertTo(finalOutput_, CV_8U); + arrCopy(finalOutput_, _output); + } + } + + void BTVL1_GPU::readNextFrame(Ptr& frameSource) + { + frameSource->nextFrame(curFrame_); + + if (curFrame_.empty()) + return; + + ++storePos_; + curFrame_.convertTo(at(storePos_, frames_), CV_32F); + + if (storePos_ > 0) + { + pair& forwardMotion = at(storePos_ - 1, forwardMotions_); + pair& backwardMotion = at(storePos_, backwardMotions_); + + opticalFlow_->calc(prevFrame_, curFrame_, forwardMotion.first, forwardMotion.second); + opticalFlow_->calc(curFrame_, prevFrame_, backwardMotion.first, backwardMotion.second); + } + + curFrame_.copyTo(prevFrame_); + } + + void BTVL1_GPU::processFrame(int idx) + { + const int startIdx = max(idx - temporalAreaRadius_, 0); + const int procIdx = idx; + const int endIdx = min(startIdx + 2 * temporalAreaRadius_, storePos_); + + const int count = endIdx - startIdx + 1; + + srcFrames_.resize(count); + srcForwardMotions_.resize(count); + srcBackwardMotions_.resize(count); + + int baseIdx = -1; + + for (int i = startIdx, k = 0; i <= endIdx; ++i, ++k) + { + if (i == procIdx) + baseIdx = k; + + srcFrames_[k] = at(i, frames_); + + if (i < endIdx) + srcForwardMotions_[k] = at(i, forwardMotions_); + if (i > startIdx) + srcBackwardMotions_[k] = at(i, backwardMotions_); + } + + process(srcFrames_, at(idx, outputs_), srcForwardMotions_, srcBackwardMotions_, baseIdx); + } +} + +Ptr cv::superres::createSuperResolution_BTVL1_GPU() +{ + return new BTVL1_GPU; +} + +#endif // HAVE_CUDA diff --git a/modules/superres/src/cuda/btv_l1_gpu.cu b/modules/superres/src/cuda/btv_l1_gpu.cu new file mode 100644 index 0000000000..772e11d4fe --- /dev/null +++ b/modules/superres/src/cuda/btv_l1_gpu.cu @@ -0,0 +1,234 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "opencv2/gpu/device/common.hpp" +#include "opencv2/gpu/device/transform.hpp" +#include "opencv2/gpu/device/vec_traits.hpp" +#include "opencv2/gpu/device/vec_math.hpp" + +using namespace cv::gpu; +using namespace cv::gpu::device; + +namespace btv_l1_device +{ + void buildMotionMaps(PtrStepSzf forwardMotionX, PtrStepSzf forwardMotionY, + PtrStepSzf backwardMotionX, PtrStepSzf bacwardMotionY, + PtrStepSzf forwardMapX, PtrStepSzf forwardMapY, + PtrStepSzf backwardMapX, PtrStepSzf backwardMapY); + + template + void upscale(const PtrStepSzb src, PtrStepSzb dst, int scale, cudaStream_t stream); + + void diffSign(PtrStepSzf src1, PtrStepSzf src2, PtrStepSzf dst, cudaStream_t stream); + + void loadBtvWeights(const float* weights, size_t count); + template void calcBtvRegularization(PtrStepSzb src, PtrStepSzb dst, int ksize); +} + +namespace btv_l1_device +{ + __global__ void buildMotionMapsKernel(const PtrStepSzf forwardMotionX, const PtrStepf forwardMotionY, + PtrStepf backwardMotionX, PtrStepf backwardMotionY, + PtrStepf forwardMapX, PtrStepf forwardMapY, + PtrStepf backwardMapX, PtrStepf backwardMapY) + { + const int x = blockIdx.x * blockDim.x + threadIdx.x; + const int y = blockIdx.y * blockDim.y + threadIdx.y; + + if (x >= forwardMotionX.cols || y >= forwardMotionX.rows) + return; + + const float fx = forwardMotionX(y, x); + const float fy = forwardMotionY(y, x); + + const float bx = backwardMotionX(y, x); + const float by = backwardMotionY(y, x); + + forwardMapX(y, x) = x + bx; + forwardMapY(y, x) = y + by; + + backwardMapX(y, x) = x + fx; + backwardMapY(y, x) = y + fy; + } + + void buildMotionMaps(PtrStepSzf forwardMotionX, PtrStepSzf forwardMotionY, + PtrStepSzf backwardMotionX, PtrStepSzf bacwardMotionY, + PtrStepSzf forwardMapX, PtrStepSzf forwardMapY, + PtrStepSzf backwardMapX, PtrStepSzf backwardMapY) + { + const dim3 block(32, 8); + const dim3 grid(divUp(forwardMapX.cols, block.x), divUp(forwardMapX.rows, block.y)); + + buildMotionMapsKernel<<>>(forwardMotionX, forwardMotionY, + backwardMotionX, bacwardMotionY, + forwardMapX, forwardMapY, + backwardMapX, backwardMapY); + cudaSafeCall( cudaGetLastError() ); + + cudaSafeCall( cudaDeviceSynchronize() ); + } + + template + __global__ void upscaleKernel(const PtrStepSz src, PtrStep dst, const int scale) + { + const int x = blockIdx.x * blockDim.x + threadIdx.x; + const int y = blockIdx.y * blockDim.y + threadIdx.y; + + if (x >= src.cols || y >= src.rows) + return; + + dst(y * scale, x * scale) = src(y, x); + } + + template + void upscale(const PtrStepSzb src, PtrStepSzb dst, int scale, cudaStream_t stream) + { + typedef typename TypeVec::vec_type src_t; + + const dim3 block(32, 8); + const dim3 grid(divUp(src.cols, block.x), divUp(src.rows, block.y)); + + upscaleKernel<<>>((PtrStepSz) src, (PtrStepSz) dst, scale); + cudaSafeCall( cudaGetLastError() ); + + if (stream == 0) + cudaSafeCall( cudaDeviceSynchronize() ); + } + + template void upscale<1>(const PtrStepSzb src, PtrStepSzb dst, int scale, cudaStream_t stream); + template void upscale<3>(const PtrStepSzb src, PtrStepSzb dst, int scale, cudaStream_t stream); + template void upscale<4>(const PtrStepSzb src, PtrStepSzb dst, int scale, cudaStream_t stream); + + __device__ __forceinline__ float diffSign(float a, float b) + { + return a > b ? 1.0f : a < b ? -1.0f : 0.0f; + } + __device__ __forceinline__ float3 diffSign(const float3& a, const float3& b) + { + return make_float3( + a.x > b.x ? 1.0f : a.x < b.x ? -1.0f : 0.0f, + a.y > b.y ? 1.0f : a.y < b.y ? -1.0f : 0.0f, + a.z > b.z ? 1.0f : a.z < b.z ? -1.0f : 0.0f + ); + } + __device__ __forceinline__ float4 diffSign(const float4& a, const float4& b) + { + return make_float4( + a.x > b.x ? 1.0f : a.x < b.x ? -1.0f : 0.0f, + a.y > b.y ? 1.0f : a.y < b.y ? -1.0f : 0.0f, + a.z > b.z ? 1.0f : a.z < b.z ? -1.0f : 0.0f, + 0.0f + ); + } + + struct DiffSign : binary_function + { + __device__ __forceinline__ float operator ()(float a, float b) const + { + return diffSign(a, b); + } + }; +} + +namespace cv { namespace gpu { namespace device +{ + template <> struct TransformFunctorTraits : DefaultTransformFunctorTraits + { + enum { smart_block_dim_y = 8 }; + enum { smart_shift = 4 }; + }; +}}} + +namespace btv_l1_device +{ + void diffSign(PtrStepSzf src1, PtrStepSzf src2, PtrStepSzf dst, cudaStream_t stream) + { + transform(src1, src2, dst, DiffSign(), WithOutMask(), stream); + } + + __constant__ float c_btvRegWeights[16*16]; + + template + __global__ void calcBtvRegularizationKernel(const PtrStepSz src, PtrStep dst, const int ksize) + { + const int x = blockIdx.x * blockDim.x + threadIdx.x + ksize; + const int y = blockIdx.y * blockDim.y + threadIdx.y + ksize; + + if (y >= src.rows - ksize || x >= src.cols - ksize) + return; + + const T srcVal = src(y, x); + + T dstVal = VecTraits::all(0); + + for (int m = 0, count = 0; m <= ksize; ++m) + { + for (int l = ksize; l + m >= 0; --l, ++count) + dstVal = dstVal + c_btvRegWeights[count] * (diffSign(srcVal, src(y + m, x + l)) - diffSign(src(y - m, x - l), srcVal)); + } + + dst(y, x) = dstVal; + } + + void loadBtvWeights(const float* weights, size_t count) + { + cudaSafeCall( cudaMemcpyToSymbol(c_btvRegWeights, weights, count * sizeof(float)) ); + } + + template + void calcBtvRegularization(PtrStepSzb src, PtrStepSzb dst, int ksize) + { + typedef typename TypeVec::vec_type src_t; + + const dim3 block(32, 8); + const dim3 grid(divUp(src.cols, block.x), divUp(src.rows, block.y)); + + calcBtvRegularizationKernel<<>>((PtrStepSz) src, (PtrStepSz) dst, ksize); + cudaSafeCall( cudaGetLastError() ); + + cudaSafeCall( cudaDeviceSynchronize() ); + } + + template void calcBtvRegularization<1>(PtrStepSzb src, PtrStepSzb dst, int ksize); + template void calcBtvRegularization<3>(PtrStepSzb src, PtrStepSzb dst, int ksize); + template void calcBtvRegularization<4>(PtrStepSzb src, PtrStepSzb dst, int ksize); +} diff --git a/modules/superres/src/frame_source.cpp b/modules/superres/src/frame_source.cpp new file mode 100644 index 0000000000..b22d0d03c1 --- /dev/null +++ b/modules/superres/src/frame_source.cpp @@ -0,0 +1,255 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" + +using namespace std; +using namespace cv; +using namespace cv::gpu; +using namespace cv::superres; +using namespace cv::superres::detail; + +cv::superres::FrameSource::~FrameSource() +{ +} + +////////////////////////////////////////////////////// +// EmptyFrameSource + +namespace +{ + class EmptyFrameSource : public FrameSource + { + public: + void nextFrame(OutputArray frame); + void reset(); + }; + + void EmptyFrameSource::nextFrame(OutputArray frame) + { + frame.release(); + } + + void EmptyFrameSource::reset() + { + } +} + +Ptr cv::superres::createFrameSource_Empty() +{ + return new EmptyFrameSource; +} + +////////////////////////////////////////////////////// +// VideoFrameSource & CameraFrameSource + +#ifndef HAVE_OPENCV_HIGHGUI + +Ptr cv::superres::createFrameSource_Video(const string& fileName) +{ + (void) fileName; + CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); + return Ptr(); +} + +Ptr cv::superres::createFrameSource_Camera(int deviceId) +{ + (void) deviceId; + CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); + return Ptr(); +} + +#else // HAVE_OPENCV_HIGHGUI + +namespace +{ + class CaptureFrameSource : public FrameSource + { + public: + void nextFrame(OutputArray frame); + + protected: + VideoCapture vc_; + + private: + Mat frame_; + }; + + void CaptureFrameSource::nextFrame(OutputArray _frame) + { + if (_frame.kind() == _InputArray::MAT) + { + vc_ >> _frame.getMatRef(); + } + else + { + vc_ >> frame_; + arrCopy(frame_, _frame); + } + } + + class VideoFrameSource : public CaptureFrameSource + { + public: + VideoFrameSource(const string& fileName); + + void reset(); + + private: + string fileName_; + }; + + VideoFrameSource::VideoFrameSource(const string& fileName) : fileName_(fileName) + { + reset(); + } + + void VideoFrameSource::reset() + { + vc_.release(); + vc_.open(fileName_); + CV_Assert( vc_.isOpened() ); + } + + class CameraFrameSource : public CaptureFrameSource + { + public: + CameraFrameSource(int deviceId); + + void reset(); + + private: + int deviceId_; + }; + + CameraFrameSource::CameraFrameSource(int deviceId) : deviceId_(deviceId) + { + reset(); + } + + void CameraFrameSource::reset() + { + vc_.release(); + vc_.open(deviceId_); + CV_Assert( vc_.isOpened() ); + } +} + +Ptr cv::superres::createFrameSource_Video(const string& fileName) +{ + return new VideoFrameSource(fileName); +} + +Ptr cv::superres::createFrameSource_Camera(int deviceId) +{ + return new CameraFrameSource(deviceId); +} + +#endif // HAVE_OPENCV_HIGHGUI + +////////////////////////////////////////////////////// +// VideoFrameSource_GPU + +#ifndef HAVE_OPENCV_GPU + +Ptr cv::superres::createFrameSource_Video_GPU(const string& fileName) +{ + (void) fileName; + CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); + return Ptr(); +} + +#else // HAVE_OPENCV_GPU + +namespace +{ + class VideoFrameSource_GPU : public FrameSource + { + public: + VideoFrameSource_GPU(const string& fileName); + + void nextFrame(OutputArray frame); + void reset(); + + private: + string fileName_; + VideoReader_GPU reader_; + GpuMat frame_; + }; + + VideoFrameSource_GPU::VideoFrameSource_GPU(const string& fileName) : fileName_(fileName) + { + reset(); + } + + void VideoFrameSource_GPU::nextFrame(OutputArray _frame) + { + if (_frame.kind() == _InputArray::GPU_MAT) + { + bool res = reader_.read(_frame.getGpuMatRef()); + if (!res) + _frame.release(); + } + else + { + bool res = reader_.read(frame_); + if (!res) + _frame.release(); + else + arrCopy(frame_, _frame); + } + } + + void VideoFrameSource_GPU::reset() + { + reader_.close(); + reader_.open(fileName_); + CV_Assert( reader_.isOpened() ); + } +} + +Ptr cv::superres::createFrameSource_Video_GPU(const string& fileName) +{ + return new VideoFrameSource(fileName); +} + +#endif // HAVE_OPENCV_GPU diff --git a/modules/superres/src/input_array_utility.cpp b/modules/superres/src/input_array_utility.cpp new file mode 100644 index 0000000000..8d905bf2d3 --- /dev/null +++ b/modules/superres/src/input_array_utility.cpp @@ -0,0 +1,273 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" + +using namespace std; +using namespace cv; +using namespace cv::gpu; + +Mat cv::superres::arrGetMat(InputArray arr, Mat& buf) +{ + switch (arr.kind()) + { + case _InputArray::GPU_MAT: + arr.getGpuMat().download(buf); + return buf; + + case _InputArray::OPENGL_BUFFER: + arr.getOGlBuffer().copyTo(buf); + return buf; + + case _InputArray::OPENGL_TEXTURE: + arr.getOGlTexture2D().copyTo(buf); + return buf; + + default: + return arr.getMat(); + } +} + +GpuMat cv::superres::arrGetGpuMat(InputArray arr, GpuMat& buf) +{ + switch (arr.kind()) + { + case _InputArray::GPU_MAT: + return arr.getGpuMat(); + + case _InputArray::OPENGL_BUFFER: + arr.getOGlBuffer().copyTo(buf); + return buf; + + case _InputArray::OPENGL_TEXTURE: + arr.getOGlTexture2D().copyTo(buf); + return buf; + + default: + buf.upload(arr.getMat()); + return buf; + } +} + +namespace +{ + void mat2mat(InputArray src, OutputArray dst) + { + src.getMat().copyTo(dst); + } + void arr2buf(InputArray src, OutputArray dst) + { + dst.getOGlBufferRef().copyFrom(src); + } + void arr2tex(InputArray src, OutputArray dst) + { + dst.getOGlTexture2D().copyFrom(src); + } + void mat2gpu(InputArray src, OutputArray dst) + { + dst.getGpuMatRef().upload(src.getMat()); + } + void buf2arr(InputArray src, OutputArray dst) + { + src.getOGlBuffer().copyTo(dst); + } + void tex2arr(InputArray src, OutputArray dst) + { + src.getOGlTexture2D().copyTo(dst); + } + void gpu2mat(InputArray src, OutputArray dst) + { + GpuMat d = src.getGpuMat(); + dst.create(d.size(), d.type()); + Mat m = dst.getMat(); + d.download(m); + } + void gpu2gpu(InputArray src, OutputArray dst) + { + src.getGpuMat().copyTo(dst.getGpuMatRef()); + } +} + +void cv::superres::arrCopy(InputArray src, OutputArray dst) +{ + typedef void (*func_t)(InputArray src, OutputArray dst); + static const func_t funcs[10][10] = + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, arr2buf, arr2tex, mat2gpu}, + {0, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, arr2buf, arr2tex, mat2gpu}, + {0, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, arr2buf, arr2tex, mat2gpu}, + {0, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, arr2buf, arr2tex, mat2gpu}, + {0, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, arr2buf, arr2tex, mat2gpu}, + {0, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, mat2mat, arr2buf, arr2tex, mat2gpu}, + {0, buf2arr, buf2arr, buf2arr, buf2arr, buf2arr, buf2arr, buf2arr, buf2arr, buf2arr}, + {0, tex2arr, tex2arr, tex2arr, tex2arr, tex2arr, tex2arr, tex2arr, tex2arr, tex2arr}, + {0, gpu2mat, gpu2mat, gpu2mat, gpu2mat, gpu2mat, gpu2mat, arr2buf, arr2tex, gpu2gpu} + }; + + const int src_kind = src.kind() >> _InputArray::KIND_SHIFT; + const int dst_kind = dst.kind() >> _InputArray::KIND_SHIFT; + + CV_DbgAssert( src_kind >= 0 && src_kind < 10 ); + CV_DbgAssert( dst_kind >= 0 && dst_kind < 10 ); + + const func_t func = funcs[src_kind][dst_kind]; + CV_DbgAssert( func != 0 ); + + func(src, dst); +} + +namespace +{ + void convertToCn(InputArray src, OutputArray dst, int cn) + { + CV_Assert( src.channels() == 1 || src.channels() == 3 || src.channels() == 4 ); + CV_Assert( cn == 1 || cn == 3 || cn == 4 ); + + static const int codes[5][5] = + { + {-1, -1, -1, -1, -1}, + {-1, -1, -1, COLOR_GRAY2BGR, COLOR_GRAY2BGRA}, + {-1, -1, -1, -1, -1}, + {-1, COLOR_BGR2GRAY, -1, -1, COLOR_BGR2BGRA}, + {-1, COLOR_BGRA2GRAY, -1, COLOR_BGRA2BGR, -1}, + }; + + const int code = codes[src.channels()][cn]; + CV_DbgAssert( code >= 0 ); + + switch (src.kind()) + { + case _InputArray::GPU_MAT: + #ifdef HAVE_OPENCV_GPU + gpu::cvtColor(src.getGpuMat(), dst.getGpuMatRef(), code, cn); + #else + CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); + #endif + break; + + default: + cvtColor(src, dst, code, cn); + break; + } + } + + void convertToDepth(InputArray src, OutputArray dst, int depth) + { + CV_Assert( src.depth() <= CV_64F ); + CV_Assert( depth == CV_8U || depth == CV_32F ); + + static const double maxVals[] = + { + numeric_limits::max(), + numeric_limits::max(), + numeric_limits::max(), + numeric_limits::max(), + numeric_limits::max(), + 1.0, + 1.0, + }; + + const double scale = maxVals[depth] / maxVals[src.depth()]; + + switch (src.kind()) + { + case _InputArray::GPU_MAT: + src.getGpuMat().convertTo(dst.getGpuMatRef(), depth, scale); + break; + + default: + src.getMat().convertTo(dst, depth, scale); + break; + } + } +} + +Mat cv::superres::convertToType(const Mat& src, int type, Mat& buf0, Mat& buf1) +{ + if (src.type() == type) + return src; + + const int depth = CV_MAT_DEPTH(type); + const int cn = CV_MAT_CN(type); + + if (src.depth() == depth) + { + convertToCn(src, buf0, cn); + return buf0; + } + + if (src.channels() == cn) + { + convertToDepth(src, buf1, depth); + return buf1; + } + + convertToCn(src, buf0, cn); + convertToDepth(buf0, buf1, depth); + return buf1; +} + +GpuMat cv::superres::convertToType(const GpuMat& src, int type, GpuMat& buf0, GpuMat& buf1) +{ + if (src.type() == type) + return src; + + const int depth = CV_MAT_DEPTH(type); + const int cn = CV_MAT_CN(type); + + if (src.depth() == depth) + { + convertToCn(src, buf0, cn); + return buf0; + } + + if (src.channels() == cn) + { + convertToDepth(src, buf1, depth); + return buf1; + } + + convertToCn(src, buf0, cn); + convertToDepth(buf0, buf1, depth); + return buf1; +} diff --git a/modules/superres/src/input_array_utility.hpp b/modules/superres/src/input_array_utility.hpp new file mode 100644 index 0000000000..790d6216b0 --- /dev/null +++ b/modules/superres/src/input_array_utility.hpp @@ -0,0 +1,63 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef __OPENCV_SUPERRES_INPUT_ARRAY_UTILITY_HPP__ +#define __OPENCV_SUPERRES_INPUT_ARRAY_UTILITY_HPP__ + +#include "opencv2/core/core.hpp" +#include "opencv2/core/gpumat.hpp" + +namespace cv +{ + namespace superres + { + CV_EXPORTS Mat arrGetMat(InputArray arr, Mat& buf); + CV_EXPORTS gpu::GpuMat arrGetGpuMat(InputArray arr, gpu::GpuMat& buf); + + CV_EXPORTS void arrCopy(InputArray src, OutputArray dst); + + CV_EXPORTS Mat convertToType(const Mat& src, int type, Mat& buf0, Mat& buf1); + CV_EXPORTS gpu::GpuMat convertToType(const gpu::GpuMat& src, int type, gpu::GpuMat& buf0, gpu::GpuMat& buf1); + } +} + +#endif // __OPENCV_SUPERRES_INPUT_ARRAY_UTILITY_HPP__ diff --git a/modules/superres/src/optical_flow.cpp b/modules/superres/src/optical_flow.cpp new file mode 100644 index 0000000000..8c8454c8a2 --- /dev/null +++ b/modules/superres/src/optical_flow.cpp @@ -0,0 +1,721 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" + +using namespace std; +using namespace cv; +using namespace cv::gpu; +using namespace cv::superres; +using namespace cv::superres::detail; + +/////////////////////////////////////////////////////////////////// +// CpuOpticalFlow + +namespace +{ + class CpuOpticalFlow : public DenseOpticalFlowExt + { + public: + explicit CpuOpticalFlow(int work_type); + + void calc(InputArray frame0, InputArray frame1, OutputArray flow1, OutputArray flow2); + void collectGarbage(); + + protected: + virtual void impl(const Mat& input0, const Mat& input1, OutputArray dst) = 0; + + private: + int work_type_; + Mat buf_[6]; + Mat flow_; + Mat flows_[2]; + }; + + CpuOpticalFlow::CpuOpticalFlow(int work_type) : work_type_(work_type) + { + } + + void CpuOpticalFlow::calc(InputArray _frame0, InputArray _frame1, OutputArray _flow1, OutputArray _flow2) + { + Mat frame0 = arrGetMat(_frame0, buf_[0]); + Mat frame1 = arrGetMat(_frame1, buf_[1]); + + CV_Assert( frame1.type() == frame0.type() ); + CV_Assert( frame1.size() == frame0.size() ); + + Mat input0 = convertToType(frame0, work_type_, buf_[2], buf_[3]); + Mat input1 = convertToType(frame1, work_type_, buf_[4], buf_[5]); + + if (!_flow2.needed() && _flow1.kind() < _InputArray::OPENGL_BUFFER) + { + impl(input0, input1, _flow1); + return; + } + + impl(input0, input1, flow_); + + if (!_flow2.needed()) + { + arrCopy(flow_, _flow1); + } + else + { + split(flow_, flows_); + + arrCopy(flows_[0], _flow1); + arrCopy(flows_[1], _flow2); + } + } + + void CpuOpticalFlow::collectGarbage() + { + for (int i = 0; i < 6; ++i) + buf_[i].release(); + flow_.release(); + flows_[0].release(); + flows_[1].release(); + } +} + +/////////////////////////////////////////////////////////////////// +// Farneback + +namespace +{ + class Farneback : public CpuOpticalFlow + { + public: + AlgorithmInfo* info() const; + + Farneback(); + + protected: + void impl(const Mat& input0, const Mat& input1, OutputArray dst); + + private: + double pyrScale_; + int numLevels_; + int winSize_; + int numIters_; + int polyN_; + double polySigma_; + int flags_; + }; + + CV_INIT_ALGORITHM(Farneback, "DenseOpticalFlowExt.Farneback", + obj.info()->addParam(obj, "pyrScale", obj.pyrScale_); + obj.info()->addParam(obj, "numLevels", obj.numLevels_); + obj.info()->addParam(obj, "winSize", obj.winSize_); + obj.info()->addParam(obj, "numIters", obj.numIters_); + obj.info()->addParam(obj, "polyN", obj.polyN_); + obj.info()->addParam(obj, "polySigma", obj.polySigma_); + obj.info()->addParam(obj, "flags", obj.flags_)); + + Farneback::Farneback() : CpuOpticalFlow(CV_8UC1) + { + pyrScale_ = 0.5; + numLevels_ = 5; + winSize_ = 13; + numIters_ = 10; + polyN_ = 5; + polySigma_ = 1.1; + flags_ = 0; + } + + void Farneback::impl(const Mat& input0, const Mat& input1, OutputArray dst) + { + calcOpticalFlowFarneback(input0, input1, dst, pyrScale_, numLevels_, winSize_, numIters_, polyN_, polySigma_, flags_); + } +} + +Ptr cv::superres::createOptFlow_Farneback() +{ + return new Farneback; +} + +/////////////////////////////////////////////////////////////////// +// Simple + +namespace +{ + class Simple : public CpuOpticalFlow + { + public: + AlgorithmInfo* info() const; + + Simple(); + + protected: + void impl(const Mat& input0, const Mat& input1, OutputArray dst); + + private: + int layers_; + int averagingBlockSize_; + int maxFlow_; + double sigmaDist_; + double sigmaColor_; + int postProcessWindow_; + double sigmaDistFix_; + double sigmaColorFix_; + double occThr_; + int upscaleAveragingRadius_; + double upscaleSigmaDist_; + double upscaleSigmaColor_; + double speedUpThr_; + }; + + CV_INIT_ALGORITHM(Simple, "DenseOpticalFlowExt.Simple", + obj.info()->addParam(obj, "layers", obj.layers_); + obj.info()->addParam(obj, "averagingBlockSize", obj.averagingBlockSize_); + obj.info()->addParam(obj, "maxFlow", obj.maxFlow_); + obj.info()->addParam(obj, "sigmaDist", obj.sigmaDist_); + obj.info()->addParam(obj, "sigmaColor", obj.sigmaColor_); + obj.info()->addParam(obj, "postProcessWindow", obj.postProcessWindow_); + obj.info()->addParam(obj, "sigmaDistFix", obj.sigmaDistFix_); + obj.info()->addParam(obj, "sigmaColorFix", obj.sigmaColorFix_); + obj.info()->addParam(obj, "occThr", obj.occThr_); + obj.info()->addParam(obj, "upscaleAveragingRadius", obj.upscaleAveragingRadius_); + obj.info()->addParam(obj, "upscaleSigmaDist", obj.upscaleSigmaDist_); + obj.info()->addParam(obj, "upscaleSigmaColor", obj.upscaleSigmaColor_); + obj.info()->addParam(obj, "speedUpThr", obj.speedUpThr_)); + + Simple::Simple() : CpuOpticalFlow(CV_8UC3) + { + layers_ = 3; + averagingBlockSize_ = 2; + maxFlow_ = 4; + sigmaDist_ = 4.1; + sigmaColor_ = 25.5; + postProcessWindow_ = 18; + sigmaDistFix_ = 55.0; + sigmaColorFix_ = 25.5; + occThr_ = 0.35; + upscaleAveragingRadius_ = 18; + upscaleSigmaDist_ = 55.0; + upscaleSigmaColor_ = 25.5; + speedUpThr_ = 10; + } + + void Simple::impl(const Mat& _input0, const Mat& _input1, OutputArray dst) + { + Mat input0 = _input0; + Mat input1 = _input1; + calcOpticalFlowSF(input0, input1, dst.getMatRef(), + layers_, + averagingBlockSize_, + maxFlow_, + sigmaDist_, + sigmaColor_, + postProcessWindow_, + sigmaDistFix_, + sigmaColorFix_, + occThr_, + upscaleAveragingRadius_, + upscaleSigmaDist_, + upscaleSigmaColor_, + speedUpThr_); + } +} + +Ptr cv::superres::createOptFlow_Simple() +{ + return new Simple; +} + +/////////////////////////////////////////////////////////////////// +// DualTVL1 + +namespace +{ + class DualTVL1 : public CpuOpticalFlow + { + public: + AlgorithmInfo* info() const; + + DualTVL1(); + + void collectGarbage(); + + protected: + void impl(const Mat& input0, const Mat& input1, OutputArray dst); + + private: + double tau_; + double lambda_; + double theta_; + int nscales_; + int warps_; + double epsilon_; + int iterations_; + bool useInitialFlow_; + + Ptr alg_; + }; + + CV_INIT_ALGORITHM(DualTVL1, "DenseOpticalFlowExt.DualTVL1", + obj.info()->addParam(obj, "tau", obj.tau_); + obj.info()->addParam(obj, "lambda", obj.lambda_); + obj.info()->addParam(obj, "theta", obj.theta_); + obj.info()->addParam(obj, "nscales", obj.nscales_); + obj.info()->addParam(obj, "warps", obj.warps_); + obj.info()->addParam(obj, "epsilon", obj.epsilon_); + obj.info()->addParam(obj, "iterations", obj.iterations_); + obj.info()->addParam(obj, "useInitialFlow", obj.useInitialFlow_)); + + DualTVL1::DualTVL1() : CpuOpticalFlow(CV_8UC1) + { + alg_ = cv::createOptFlow_DualTVL1(); + tau_ = alg_->getDouble("tau"); + lambda_ = alg_->getDouble("lambda"); + theta_ = alg_->getDouble("theta"); + nscales_ = alg_->getInt("nscales"); + warps_ = alg_->getInt("warps"); + epsilon_ = alg_->getDouble("epsilon"); + iterations_ = alg_->getInt("iterations"); + useInitialFlow_ = alg_->getBool("useInitialFlow"); + } + + void DualTVL1::impl(const Mat& input0, const Mat& input1, OutputArray dst) + { + alg_->set("tau", tau_); + alg_->set("lambda", lambda_); + alg_->set("theta", theta_); + alg_->set("nscales", nscales_); + alg_->set("warps", warps_); + alg_->set("epsilon", epsilon_); + alg_->set("iterations", iterations_); + alg_->set("useInitialFlow", useInitialFlow_); + + alg_->calc(input0, input1, dst); + } + + void DualTVL1::collectGarbage() + { + alg_->collectGarbage(); + CpuOpticalFlow::collectGarbage(); + } +} + +Ptr cv::superres::createOptFlow_DualTVL1() +{ + return new DualTVL1; +} + +/////////////////////////////////////////////////////////////////// +// GpuOpticalFlow + +#ifndef HAVE_OPENCV_GPU + +Ptr cv::superres::createOptFlow_Farneback_GPU() +{ + CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); + return Ptr(); +} + +Ptr cv::superres::createOptFlow_DualTVL1_GPU() +{ + CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); + return Ptr(); +} + +Ptr cv::superres::createOptFlow_Brox_GPU() +{ + CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); + return Ptr(); +} + +Ptr cv::superres::createOptFlow_PyrLK_GPU() +{ + CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); + return Ptr(); +} + +#else // HAVE_OPENCV_GPU + +namespace +{ + class GpuOpticalFlow : public DenseOpticalFlowExt + { + public: + explicit GpuOpticalFlow(int work_type); + + void calc(InputArray frame0, InputArray frame1, OutputArray flow1, OutputArray flow2); + void collectGarbage(); + + protected: + virtual void impl(const GpuMat& input0, const GpuMat& input1, GpuMat& dst1, GpuMat& dst2) = 0; + + private: + int work_type_; + GpuMat buf_[6]; + GpuMat u_, v_, flow_; + }; + + GpuOpticalFlow::GpuOpticalFlow(int work_type) : work_type_(work_type) + { + } + + void GpuOpticalFlow::calc(InputArray _frame0, InputArray _frame1, OutputArray _flow1, OutputArray _flow2) + { + GpuMat frame0 = arrGetGpuMat(_frame0, buf_[0]); + GpuMat frame1 = arrGetGpuMat(_frame1, buf_[1]); + + CV_Assert( frame1.type() == frame0.type() ); + CV_Assert( frame1.size() == frame0.size() ); + + GpuMat input0 = convertToType(frame0, work_type_, buf_[2], buf_[3]); + GpuMat input1 = convertToType(frame1, work_type_, buf_[4], buf_[5]); + + if (_flow2.needed() && _flow1.kind() == _InputArray::GPU_MAT && _flow2.kind() == _InputArray::GPU_MAT) + { + impl(input0, input1, _flow1.getGpuMatRef(), _flow2.getGpuMatRef()); + return; + } + + impl(input0, input1, u_, v_); + + if (_flow2.needed()) + { + arrCopy(u_, _flow1); + arrCopy(v_, _flow2); + } + else + { + GpuMat src[] = {u_, v_}; + merge(src, 2, flow_); + arrCopy(flow_, _flow1); + } + } + + void GpuOpticalFlow::collectGarbage() + { + for (int i = 0; i < 6; ++i) + buf_[i].release(); + u_.release(); + v_.release(); + flow_.release(); + } +} + +/////////////////////////////////////////////////////////////////// +// Brox_GPU + +namespace +{ + class Brox_GPU : public GpuOpticalFlow + { + public: + AlgorithmInfo* info() const; + + Brox_GPU(); + + void collectGarbage(); + + protected: + void impl(const GpuMat& input0, const GpuMat& input1, GpuMat& dst1, GpuMat& dst2); + + private: + double alpha_; + double gamma_; + double scaleFactor_; + int innerIterations_; + int outerIterations_; + int solverIterations_; + + BroxOpticalFlow alg_; + }; + + CV_INIT_ALGORITHM(Brox_GPU, "DenseOpticalFlowExt.Brox_GPU", + obj.info()->addParam(obj, "alpha", obj.alpha_, false, 0, 0, "Flow smoothness"); + obj.info()->addParam(obj, "gamma", obj.gamma_, false, 0, 0, "Gradient constancy importance"); + obj.info()->addParam(obj, "scaleFactor", obj.scaleFactor_, false, 0, 0, "Pyramid scale factor"); + obj.info()->addParam(obj, "innerIterations", obj.innerIterations_, false, 0, 0, "Number of lagged non-linearity iterations (inner loop)"); + obj.info()->addParam(obj, "outerIterations", obj.outerIterations_, false, 0, 0, "Number of warping iterations (number of pyramid levels)"); + obj.info()->addParam(obj, "solverIterations", obj.solverIterations_, false, 0, 0, "Number of linear system solver iterations")); + + Brox_GPU::Brox_GPU() : GpuOpticalFlow(CV_32FC1), alg_(0.197f, 50.0f, 0.8f, 10, 77, 10) + { + alpha_ = alg_.alpha; + gamma_ = alg_.gamma; + scaleFactor_ = alg_.scale_factor; + innerIterations_ = alg_.inner_iterations; + outerIterations_ = alg_.outer_iterations; + solverIterations_ = alg_.solver_iterations; + } + + void Brox_GPU::impl(const GpuMat& input0, const GpuMat& input1, GpuMat& dst1, GpuMat& dst2) + { + alg_.alpha = static_cast(alpha_); + alg_.gamma = static_cast(gamma_); + alg_.scale_factor = static_cast(scaleFactor_); + alg_.inner_iterations = innerIterations_; + alg_.outer_iterations = outerIterations_; + alg_.solver_iterations = solverIterations_; + + alg_(input0, input1, dst1, dst2); + } + + void Brox_GPU::collectGarbage() + { + alg_.buf.release(); + GpuOpticalFlow::collectGarbage(); + } +} + +Ptr cv::superres::createOptFlow_Brox_GPU() +{ + return new Brox_GPU; +} + +/////////////////////////////////////////////////////////////////// +// PyrLK_GPU + +namespace +{ + class PyrLK_GPU : public GpuOpticalFlow + { + public: + AlgorithmInfo* info() const; + + PyrLK_GPU(); + + void collectGarbage(); + + protected: + void impl(const GpuMat& input0, const GpuMat& input1, GpuMat& dst1, GpuMat& dst2); + + private: + int winSize_; + int maxLevel_; + int iterations_; + + PyrLKOpticalFlow alg_; + }; + + CV_INIT_ALGORITHM(PyrLK_GPU, "DenseOpticalFlowExt.PyrLK_GPU", + obj.info()->addParam(obj, "winSize", obj.winSize_); + obj.info()->addParam(obj, "maxLevel", obj.maxLevel_); + obj.info()->addParam(obj, "iterations", obj.iterations_)); + + PyrLK_GPU::PyrLK_GPU() : GpuOpticalFlow(CV_8UC1) + { + winSize_ = alg_.winSize.width; + maxLevel_ = alg_.maxLevel; + iterations_ = alg_.iters; + } + + void PyrLK_GPU::impl(const GpuMat& input0, const GpuMat& input1, GpuMat& dst1, GpuMat& dst2) + { + alg_.winSize.width = winSize_; + alg_.winSize.height = winSize_; + alg_.maxLevel = maxLevel_; + alg_.iters = iterations_; + + alg_.dense(input0, input1, dst1, dst2); + } + + void PyrLK_GPU::collectGarbage() + { + alg_.releaseMemory(); + GpuOpticalFlow::collectGarbage(); + } +} + +Ptr cv::superres::createOptFlow_PyrLK_GPU() +{ + return new PyrLK_GPU; +} + +/////////////////////////////////////////////////////////////////// +// Farneback_GPU + +namespace +{ + class Farneback_GPU : public GpuOpticalFlow + { + public: + AlgorithmInfo* info() const; + + Farneback_GPU(); + + void collectGarbage(); + + protected: + void impl(const GpuMat& input0, const GpuMat& input1, GpuMat& dst1, GpuMat& dst2); + + private: + double pyrScale_; + int numLevels_; + int winSize_; + int numIters_; + int polyN_; + double polySigma_; + int flags_; + + FarnebackOpticalFlow alg_; + }; + + CV_INIT_ALGORITHM(Farneback_GPU, "DenseOpticalFlowExt.Farneback_GPU", + obj.info()->addParam(obj, "pyrScale", obj.pyrScale_); + obj.info()->addParam(obj, "numLevels", obj.numLevels_); + obj.info()->addParam(obj, "winSize", obj.winSize_); + obj.info()->addParam(obj, "numIters", obj.numIters_); + obj.info()->addParam(obj, "polyN", obj.polyN_); + obj.info()->addParam(obj, "polySigma", obj.polySigma_); + obj.info()->addParam(obj, "flags", obj.flags_)); + + Farneback_GPU::Farneback_GPU() : GpuOpticalFlow(CV_8UC1) + { + pyrScale_ = alg_.pyrScale; + numLevels_ = alg_.numLevels; + winSize_ = alg_.winSize; + numIters_ = alg_.numIters; + polyN_ = alg_.polyN; + polySigma_ = alg_.polySigma; + flags_ = alg_.flags; + } + + void Farneback_GPU::impl(const GpuMat& input0, const GpuMat& input1, GpuMat& dst1, GpuMat& dst2) + { + alg_.pyrScale = pyrScale_; + alg_.numLevels = numLevels_; + alg_.winSize = winSize_; + alg_.numIters = numIters_; + alg_.polyN = polyN_; + alg_.polySigma = polySigma_; + alg_.flags = flags_; + + alg_(input0, input1, dst1, dst2); + } + + void Farneback_GPU::collectGarbage() + { + alg_.releaseMemory(); + GpuOpticalFlow::collectGarbage(); + } +} + +Ptr cv::superres::createOptFlow_Farneback_GPU() +{ + return new Farneback_GPU; +} + +/////////////////////////////////////////////////////////////////// +// DualTVL1_GPU + +namespace +{ + class DualTVL1_GPU : public GpuOpticalFlow + { + public: + AlgorithmInfo* info() const; + + DualTVL1_GPU(); + + void collectGarbage(); + + protected: + void impl(const GpuMat& input0, const GpuMat& input1, GpuMat& dst1, GpuMat& dst2); + + private: + double tau_; + double lambda_; + double theta_; + int nscales_; + int warps_; + double epsilon_; + int iterations_; + bool useInitialFlow_; + + OpticalFlowDual_TVL1_GPU alg_; + }; + + CV_INIT_ALGORITHM(DualTVL1_GPU, "DenseOpticalFlowExt.DualTVL1_GPU", + obj.info()->addParam(obj, "tau", obj.tau_); + obj.info()->addParam(obj, "lambda", obj.lambda_); + obj.info()->addParam(obj, "theta", obj.theta_); + obj.info()->addParam(obj, "nscales", obj.nscales_); + obj.info()->addParam(obj, "warps", obj.warps_); + obj.info()->addParam(obj, "epsilon", obj.epsilon_); + obj.info()->addParam(obj, "iterations", obj.iterations_); + obj.info()->addParam(obj, "useInitialFlow", obj.useInitialFlow_)); + + DualTVL1_GPU::DualTVL1_GPU() : GpuOpticalFlow(CV_8UC1) + { + tau_ = alg_.tau; + lambda_ = alg_.lambda; + theta_ = alg_.theta; + nscales_ = alg_.nscales; + warps_ = alg_.warps; + epsilon_ = alg_.epsilon; + iterations_ = alg_.iterations; + useInitialFlow_ = alg_.useInitialFlow; + } + + void DualTVL1_GPU::impl(const GpuMat& input0, const GpuMat& input1, GpuMat& dst1, GpuMat& dst2) + { + alg_.tau = tau_; + alg_.lambda = lambda_; + alg_.theta = theta_; + alg_.nscales = nscales_; + alg_.warps = warps_; + alg_.epsilon = epsilon_; + alg_.iterations = iterations_; + alg_.useInitialFlow = useInitialFlow_; + + alg_(input0, input1, dst1, dst2); + } + + void DualTVL1_GPU::collectGarbage() + { + alg_.collectGarbage(); + GpuOpticalFlow::collectGarbage(); + } +} + +Ptr cv::superres::createOptFlow_DualTVL1_GPU() +{ + return new DualTVL1_GPU; +} + +#endif // HAVE_OPENCV_GPU diff --git a/modules/superres/src/precomp.cpp b/modules/superres/src/precomp.cpp new file mode 100644 index 0000000000..111385282e --- /dev/null +++ b/modules/superres/src/precomp.cpp @@ -0,0 +1,43 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" diff --git a/modules/superres/src/precomp.hpp b/modules/superres/src/precomp.hpp new file mode 100644 index 0000000000..2b4d0d9d64 --- /dev/null +++ b/modules/superres/src/precomp.hpp @@ -0,0 +1,78 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef __OPENCV_PRECOMP_H__ +#define __OPENCV_PRECOMP_H__ + +#include +#include + +#ifdef HAVE_CVCONFIG_H + #include "cvconfig.h" +#endif + +#include "opencv2/opencv_modules.hpp" +#include "opencv2/core/core.hpp" +#include "opencv2/core/gpumat.hpp" +#include "opencv2/core/opengl_interop.hpp" +#include "opencv2/core/internal.hpp" +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/video/tracking.hpp" + +#ifdef HAVE_OPENCV_GPU + #include "opencv2/gpu/gpu.hpp" + #ifdef HAVE_CUDA + #include "opencv2/gpu/stream_accessor.hpp" + #endif +#endif + +#ifdef HAVE_OPENCV_HIGHGUI + #include "opencv2/highgui/highgui.hpp" +#endif + +#include "opencv2/superres/superres.hpp" +#include "opencv2/superres/optical_flow.hpp" +#include "input_array_utility.hpp" + +#include "ring_buffer.hpp" + +#endif /* __OPENCV_PRECOMP_H__ */ diff --git a/modules/superres/src/ring_buffer.hpp b/modules/superres/src/ring_buffer.hpp new file mode 100644 index 0000000000..3c51d7a26d --- /dev/null +++ b/modules/superres/src/ring_buffer.hpp @@ -0,0 +1,79 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef __RING_BUFFER_HPP__ +#define __RING_BUFFER_HPP__ + +#include "precomp.hpp" + +namespace cv +{ + namespace superres + { + namespace detail + { + template + inline const T& at(int index, const std::vector& items) + { + const int len = static_cast(items.size()); + if (index < 0) + index -= ((index - len + 1) / len) * len; + if (index >= len) + index %= len; + return items[index]; + } + + template + inline T& at(int index, std::vector& items) + { + const int len = static_cast(items.size()); + if (index < 0) + index -= ((index - len + 1) / len) * len; + if (index >= len) + index %= len; + return items[index]; + } + } + } +} + +#endif // __RING_BUFFER_HPP__ diff --git a/modules/superres/src/super_resolution.cpp b/modules/superres/src/super_resolution.cpp new file mode 100644 index 0000000000..73a2147ef0 --- /dev/null +++ b/modules/superres/src/super_resolution.cpp @@ -0,0 +1,85 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" + +using namespace std; +using namespace cv; +using namespace cv::superres; + +bool cv::superres::initModule_superres() +{ + return !createSuperResolution_BTVL1().empty(); +} + +cv::superres::SuperResolution::SuperResolution() +{ + frameSource_ = createFrameSource_Empty(); + firstCall_ = true; +} + +void cv::superres::SuperResolution::setInput(const Ptr& frameSource) +{ + frameSource_ = frameSource; + firstCall_ = true; +} + +void cv::superres::SuperResolution::nextFrame(OutputArray frame) +{ + if (firstCall_) + { + initImpl(frameSource_); + firstCall_ = false; + } + + processImpl(frameSource_, frame); +} + +void cv::superres::SuperResolution::reset() +{ + frameSource_->reset(); + firstCall_ = true; +} + +void cv::superres::SuperResolution::collectGarbage() +{ +} diff --git a/modules/superres/test/test_main.cpp b/modules/superres/test/test_main.cpp new file mode 100644 index 0000000000..146e262850 --- /dev/null +++ b/modules/superres/test/test_main.cpp @@ -0,0 +1,3 @@ +#include "test_precomp.hpp" + +CV_TEST_MAIN("superres") diff --git a/modules/superres/test/test_precomp.cpp b/modules/superres/test/test_precomp.cpp new file mode 100644 index 0000000000..5956e13e3e --- /dev/null +++ b/modules/superres/test/test_precomp.cpp @@ -0,0 +1 @@ +#include "test_precomp.hpp" diff --git a/modules/superres/test/test_precomp.hpp b/modules/superres/test/test_precomp.hpp new file mode 100644 index 0000000000..84c0a76ad2 --- /dev/null +++ b/modules/superres/test/test_precomp.hpp @@ -0,0 +1,23 @@ +#ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wmissing-declarations" +# if defined __clang__ || defined __APPLE__ +# pragma GCC diagnostic ignored "-Wmissing-prototypes" +# pragma GCC diagnostic ignored "-Wextra" +# endif +#endif + +#ifndef __OPENCV_TEST_PRECOMP_HPP__ +#define __OPENCV_TEST_PRECOMP_HPP__ + +#ifdef HAVE_CVCONFIG_H +#include "cvconfig.h" +#endif + +#include "opencv2/opencv_modules.hpp" +#include "opencv2/core/core.hpp" +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/ts/ts.hpp" +#include "opencv2/superres/superres.hpp" +#include "input_array_utility.hpp" + +#endif diff --git a/modules/superres/test/test_superres.cpp b/modules/superres/test/test_superres.cpp new file mode 100644 index 0000000000..44d6a7a2a0 --- /dev/null +++ b/modules/superres/test/test_superres.cpp @@ -0,0 +1,236 @@ +#include "test_precomp.hpp" + +class AllignedFrameSource : public cv::superres::FrameSource +{ +public: + AllignedFrameSource(const cv::Ptr& base, int scale); + + void nextFrame(cv::OutputArray frame); + void reset(); + +private: + cv::Ptr base_; + cv::Mat origFrame_; + int scale_; +}; + +AllignedFrameSource::AllignedFrameSource(const cv::Ptr& base, int scale) : + base_(base), scale_(scale) +{ + CV_Assert( !base_.empty() ); +} + +void AllignedFrameSource::nextFrame(cv::OutputArray frame) +{ + base_->nextFrame(origFrame_); + + if (origFrame_.rows % scale_ == 0 && origFrame_.cols % scale_ == 0) + { + cv::superres::arrCopy(origFrame_, frame); + } + else + { + cv::Rect ROI(0, 0, (origFrame_.cols / scale_) * scale_, (origFrame_.rows / scale_) * scale_); + cv::superres::arrCopy(origFrame_(ROI), frame); + } +} + +void AllignedFrameSource::reset() +{ + base_->reset(); +} + +class DegradeFrameSource : public cv::superres::FrameSource +{ +public: + DegradeFrameSource(const cv::Ptr& base, int scale); + + void nextFrame(cv::OutputArray frame); + void reset(); + +private: + cv::Ptr base_; + cv::Mat origFrame_; + cv::Mat blurred_; + cv::Mat deg_; + double iscale_; +}; + +DegradeFrameSource::DegradeFrameSource(const cv::Ptr& base, int scale) : + base_(base), iscale_(1.0 / scale) +{ + CV_Assert( !base_.empty() ); +} + +void addGaussNoise(cv::Mat& image, double sigma) +{ + cv::Mat noise(image.size(), CV_32FC(image.channels())); + cvtest::TS::ptr()->get_rng().fill(noise, cv::RNG::NORMAL, 0.0, sigma); + + cv::addWeighted(image, 1.0, noise, 1.0, 0.0, image, image.depth()); +} + +void addSpikeNoise(cv::Mat& image, int frequency) +{ + cv::Mat_ mask(image.size(), 0); + + for (int y = 0; y < mask.rows; ++y) + { + for (int x = 0; x < mask.cols; ++x) + { + if (cvtest::TS::ptr()->get_rng().uniform(0, frequency) < 1) + mask(y, x) = 255; + } + } + + image.setTo(cv::Scalar::all(255), mask); +} + +void DegradeFrameSource::nextFrame(cv::OutputArray frame) +{ + base_->nextFrame(origFrame_); + + cv::GaussianBlur(origFrame_, blurred_, cv::Size(5, 5), 0); + cv::resize(blurred_, deg_, cv::Size(), iscale_, iscale_, cv::INTER_NEAREST); + + addGaussNoise(deg_, 10.0); + addSpikeNoise(deg_, 500); + + cv::superres::arrCopy(deg_, frame); +} + +void DegradeFrameSource::reset() +{ + base_->reset(); +} + +double MSSIM(const cv::Mat& i1, const cv::Mat& i2) +{ + const double C1 = 6.5025; + const double C2 = 58.5225; + + const int depth = CV_32F; + + cv::Mat I1, I2; + i1.convertTo(I1, depth); + i2.convertTo(I2, depth); + + cv::Mat I2_2 = I2.mul(I2); // I2^2 + cv::Mat I1_2 = I1.mul(I1); // I1^2 + cv::Mat I1_I2 = I1.mul(I2); // I1 * I2 + + cv::Mat mu1, mu2; + cv::GaussianBlur(I1, mu1, cv::Size(11, 11), 1.5); + cv::GaussianBlur(I2, mu2, cv::Size(11, 11), 1.5); + + cv::Mat mu1_2 = mu1.mul(mu1); + cv::Mat mu2_2 = mu2.mul(mu2); + cv::Mat mu1_mu2 = mu1.mul(mu2); + + cv::Mat sigma1_2, sigma2_2, sigma12; + + cv::GaussianBlur(I1_2, sigma1_2, cv::Size(11, 11), 1.5); + sigma1_2 -= mu1_2; + + cv::GaussianBlur(I2_2, sigma2_2, cv::Size(11, 11), 1.5); + sigma2_2 -= mu2_2; + + cv::GaussianBlur(I1_I2, sigma12, cv::Size(11, 11), 1.5); + sigma12 -= mu1_mu2; + + cv::Mat t1, t2; + cv::Mat numerator; + cv::Mat denominator; + + // t3 = ((2*mu1_mu2 + C1).*(2*sigma12 + C2)) + t1 = 2 * mu1_mu2 + C1; + t2 = 2 * sigma12 + C2; + numerator = t1.mul(t2); + + // t1 =((mu1_2 + mu2_2 + C1).*(sigma1_2 + sigma2_2 + C2)) + t1 = mu1_2 + mu2_2 + C1; + t2 = sigma1_2 + sigma2_2 + C2; + denominator = t1.mul(t2); + + // ssim_map = numerator./denominator; + cv::Mat ssim_map; + cv::divide(numerator, denominator, ssim_map); + + // mssim = average of ssim map + cv::Scalar mssim = cv::mean(ssim_map); + + if (i1.channels() == 1) + return mssim[0]; + + return (mssim[0] + mssim[1] + mssim[3]) / 3; +} + +class SuperResolution : public testing::Test +{ +public: + void RunTest(cv::Ptr superRes); +}; + +void SuperResolution::RunTest(cv::Ptr superRes) +{ + const std::string inputVideoName = cvtest::TS::ptr()->get_data_path() + "car.avi"; + const int scale = 2; + const int iterations = 100; + const int temporalAreaRadius = 2; + + ASSERT_FALSE( superRes.empty() ); + + const int btvKernelSize = superRes->getInt("btvKernelSize"); + + superRes->set("scale", scale); + superRes->set("iterations", iterations); + superRes->set("temporalAreaRadius", temporalAreaRadius); + + cv::Ptr goldSource(new AllignedFrameSource(cv::superres::createFrameSource_Video(inputVideoName), scale)); + cv::Ptr lowResSource(new DegradeFrameSource(new AllignedFrameSource(cv::superres::createFrameSource_Video(inputVideoName), scale), scale)); + + // skip first frame + cv::Mat frame; + + lowResSource->nextFrame(frame); + goldSource->nextFrame(frame); + + cv::Rect inner(btvKernelSize, btvKernelSize, frame.cols - 2 * btvKernelSize, frame.rows - 2 * btvKernelSize); + + superRes->setInput(lowResSource); + + double srAvgMSSIM = 0.0; + const int count = 10; + + cv::Mat goldFrame, superResFrame; + for (int i = 0; i < count; ++i) + { + goldSource->nextFrame(goldFrame); + ASSERT_FALSE( goldFrame.empty() ); + + superRes->nextFrame(superResFrame); + ASSERT_FALSE( superResFrame.empty() ); + + const double srMSSIM = MSSIM(goldFrame(inner), superResFrame); + + srAvgMSSIM += srMSSIM; + } + + srAvgMSSIM /= count; + + EXPECT_GE( srAvgMSSIM, 0.5 ); +} + +TEST_F(SuperResolution, BTVL1) +{ + RunTest(cv::superres::createSuperResolution_BTVL1()); +} + +#if defined(HAVE_OPENCV_GPU) && defined(HAVE_CUDA) + +TEST_F(SuperResolution, BTVL1_GPU) +{ + RunTest(cv::superres::createSuperResolution_BTVL1_GPU()); +} + +#endif diff --git a/samples/gpu/CMakeLists.txt b/samples/gpu/CMakeLists.txt index 6abb7e5af8..9fd19e28c4 100644 --- a/samples/gpu/CMakeLists.txt +++ b/samples/gpu/CMakeLists.txt @@ -1,7 +1,7 @@ SET(OPENCV_GPU_SAMPLES_REQUIRED_DEPS opencv_core opencv_flann opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_features2d opencv_calib3d opencv_legacy opencv_contrib opencv_gpu - opencv_nonfree) + opencv_nonfree opencv_superres) ocv_check_dependencies(${OPENCV_GPU_SAMPLES_REQUIRED_DEPS}) diff --git a/samples/gpu/super_resolution.cpp b/samples/gpu/super_resolution.cpp new file mode 100644 index 0000000000..2dd3656b0e --- /dev/null +++ b/samples/gpu/super_resolution.cpp @@ -0,0 +1,152 @@ +#include +#include +#include +#include "opencv2/core/core.hpp" +#include "opencv2/highgui/highgui.hpp" +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/contrib/contrib.hpp" +#include "opencv2/superres/superres.hpp" +#include "opencv2/superres/optical_flow.hpp" + +using namespace std; +using namespace cv; +using namespace cv::superres; + +#define MEASURE_TIME(op) \ + { \ + TickMeter tm; \ + tm.start(); \ + op; \ + tm.stop(); \ + cout << tm.getTimeSec() << " sec" << endl; \ + } + +static Ptr createOptFlow(const string& name, bool useGpu) +{ + if (name == "farneback") + { + if (useGpu) + return createOptFlow_Farneback_GPU(); + else + return createOptFlow_Farneback(); + } + else if (name == "simple") + return createOptFlow_Simple(); + else if (name == "tvl1") + { + if (useGpu) + return createOptFlow_DualTVL1_GPU(); + else + return createOptFlow_DualTVL1(); + } + else if (name == "brox") + return createOptFlow_Brox_GPU(); + else if (name == "pyrlk") + return createOptFlow_PyrLK_GPU(); + else + { + cerr << "Incorrect Optical Flow algorithm - " << name << endl; + exit(-1); + } + + return Ptr(); +} + +int main(int argc, const char* argv[]) +{ + CommandLineParser cmd(argc, argv, + "{ v | video | | Input video }" + "{ o | output | | Output video }" + "{ s | scale | 4 | Scale factor }" + "{ i | iterations | 180 | Iteration count }" + "{ t | temporal | 4 | Radius of the temporal search area }" + "{ f | flow | farneback | Optical flow algorithm (farneback, simple, tvl1, brox, pyrlk) }" + "{ gpu | gpu | false | Use GPU }" + "{ h | help | false | Print help message }" + ); + + if (cmd.get("help")) + { + cout << "This sample demonstrates Super Resolution algorithms for video sequence" << endl; + cmd.printParams(); + return 0; + } + + const string inputVideoName = cmd.get("video"); + const string outputVideoName = cmd.get("output"); + const int scale = cmd.get("scale"); + const int iterations = cmd.get("iterations"); + const int temporalAreaRadius = cmd.get("temporal"); + const string optFlow = cmd.get("flow"); + const bool useGpu = cmd.get("gpu"); + + Ptr superRes; + if (useGpu) + superRes = createSuperResolution_BTVL1_GPU(); + else + superRes = createSuperResolution_BTVL1(); + + superRes->set("scale", scale); + superRes->set("iterations", iterations); + superRes->set("temporalAreaRadius", temporalAreaRadius); + superRes->set("opticalFlow", createOptFlow(optFlow, useGpu)); + + Ptr frameSource; + if (useGpu) + { + // Try to use gpu Video Decoding + try + { + frameSource = createFrameSource_Video_GPU(inputVideoName); + Mat frame; + frameSource->nextFrame(frame); + } + catch (const cv::Exception&) + { + frameSource.release(); + } + } + if (frameSource.empty()) + frameSource = createFrameSource_Video(inputVideoName); + + // skip first frame, it is usually corrupted + { + Mat frame; + frameSource->nextFrame(frame); + cout << "Input : " << inputVideoName << " " << frame.size() << endl; + cout << "Scale factor : " << scale << endl; + cout << "Iterations : " << iterations << endl; + cout << "Temporal radius : " << temporalAreaRadius << endl; + cout << "Optical Flow : " << optFlow << endl; + cout << "Mode : " << (useGpu ? "GPU" : "CPU") << endl; + } + + superRes->setInput(frameSource); + + VideoWriter writer; + + for (int i = 0;; ++i) + { + cout << '[' << setw(3) << i << "] : "; + + Mat result; + MEASURE_TIME(superRes->nextFrame(result)); + + if (result.empty()) + break; + + imshow("Super Resolution", result); + + if (waitKey(1000) > 0) + break; + + if (!outputVideoName.empty()) + { + if (!writer.isOpened()) + writer.open(outputVideoName, CV_FOURCC('X', 'V', 'I', 'D'), 25.0, result.size()); + writer << result; + } + } + + return 0; +} From 7f0d6d42f0a22db5984e17dc38ad03e8a548d029 Mon Sep 17 00:00:00 2001 From: yao Date: Fri, 8 Mar 2013 10:30:01 +0800 Subject: [PATCH 0010/1333] fix mismatch on NV OCL and some AMD GPUs --- modules/ocl/src/kernels/moments.cl | 75 ++++++++++++++---------- modules/ocl/src/moments.cpp | 94 +++++++++++++----------------- 2 files changed, 87 insertions(+), 82 deletions(-) diff --git a/modules/ocl/src/kernels/moments.cl b/modules/ocl/src/kernels/moments.cl index bd3001eeef..60488372e7 100644 --- a/modules/ocl/src/kernels/moments.cl +++ b/modules/ocl/src/kernels/moments.cl @@ -1,42 +1,56 @@ #if defined (DOUBLE_SUPPORT) + +#ifdef cl_khr_fp64 #pragma OPENCL EXTENSION cl_khr_fp64:enable +#elif defined (cl_amd_fp64) +#pragma OPENCL EXTENSION cl_amd_fp64:enable +#endif +typedef double T; + #else typedef float double; typedef float4 double4; +typedef long T; #define convert_double4 convert_float4 #endif //#pragma OPENCL EXTENSION cl_amd_printf:enable //#if defined (DOUBLE_SUPPORT) -__kernel void icvContourMoments(int contour_total, - __global float* reader_oclmat_data, - __global double* dst_a00, - __global double* dst_a10, - __global double* dst_a01, - __global double* dst_a20, - __global double* dst_a11, - __global double* dst_a02, - __global double* dst_a30, - __global double* dst_a21, - __global double* dst_a12, - __global double* dst_a03) +#define DST_ROW_A00 0 +#define DST_ROW_A10 1 +#define DST_ROW_A01 2 +#define DST_ROW_A20 3 +#define DST_ROW_A11 4 +#define DST_ROW_A02 5 +#define DST_ROW_A30 6 +#define DST_ROW_A21 7 +#define DST_ROW_A12 8 +#define DST_ROW_A03 9 + +__kernel void icvContourMoments(int contour_total, + __global float* reader_oclmat_data, + __global T* dst_a, + int dst_step) { - double xi_1, yi_1, xi_12, yi_12, xi, yi, xi2, yi2, dxy, xii_1, yii_1; + T xi_1, yi_1, xi_12, yi_12, xi, yi, xi2, yi2, dxy, xii_1, yii_1; int idx = get_global_id(0); - xi_1 = *(reader_oclmat_data + (get_global_id(0) << 1)); - yi_1 = *(reader_oclmat_data + (get_global_id(0) << 1) + 1); + if (idx < 0 || idx >= contour_total) + return; + + xi_1 = (T)(*(reader_oclmat_data + (get_global_id(0) << 1))); + yi_1 = (T)(*(reader_oclmat_data + (get_global_id(0) << 1) + 1)); xi_12 = xi_1 * xi_1; yi_12 = yi_1 * yi_1; if(idx == contour_total - 1) { - xi = *(reader_oclmat_data); - yi = *(reader_oclmat_data + 1); + xi = (T)(*(reader_oclmat_data)); + yi = (T)(*(reader_oclmat_data + 1)); } else { - xi = *(reader_oclmat_data + (idx + 1) * 2); - yi = *(reader_oclmat_data + (idx + 1) * 2 + 1); + xi = (T)(*(reader_oclmat_data + (idx + 1) * 2)); + yi = (T)(*(reader_oclmat_data + (idx + 1) * 2 + 1)); } xi2 = xi * xi; @@ -44,19 +58,20 @@ __kernel void icvContourMoments(int contour_total, dxy = xi_1 * yi - xi * yi_1; xii_1 = xi_1 + xi; yii_1 = yi_1 + yi; - - dst_a00[idx] = dxy; - dst_a10[idx] = dxy * xii_1; - dst_a01[idx] = dxy * yii_1; - dst_a20[idx] = dxy * (xi_1 * xii_1 + xi2); - dst_a11[idx] = dxy * (xi_1 * (yii_1 + yi_1) + xi * (yii_1 + yi)); - dst_a02[idx] = dxy * (yi_1 * yii_1 + yi2); - dst_a30[idx] = dxy * xii_1 * (xi_12 + xi2); - dst_a03[idx] = dxy * yii_1 * (yi_12 + yi2); - dst_a21[idx] = + + dst_step /= sizeof(T); + *( dst_a + DST_ROW_A00 * dst_step + idx) = dxy; + *( dst_a + DST_ROW_A10 * dst_step + idx) = dxy * xii_1; + *( dst_a + DST_ROW_A01 * dst_step + idx) = dxy * yii_1; + *( dst_a + DST_ROW_A20 * dst_step + idx) = dxy * (xi_1 * xii_1 + xi2); + *( dst_a + DST_ROW_A11 * dst_step + idx) = dxy * (xi_1 * (yii_1 + yi_1) + xi * (yii_1 + yi)); + *( dst_a + DST_ROW_A02 * dst_step + idx) = dxy * (yi_1 * yii_1 + yi2); + *( dst_a + DST_ROW_A30 * dst_step + idx) = dxy * xii_1 * (xi_12 + xi2); + *( dst_a + DST_ROW_A03 * dst_step + idx) = dxy * yii_1 * (yi_12 + yi2); + *( dst_a + DST_ROW_A21 * dst_step + idx) = dxy * (xi_12 * (3 * yi_1 + yi) + 2 * xi * xi_1 * yii_1 + xi2 * (yi_1 + 3 * yi)); - dst_a12[idx] = + *( dst_a + DST_ROW_A12 * dst_step + idx) = dxy * (yi_12 * (3 * xi_1 + xi) + 2 * yi * yi_1 * xii_1 + yi2 * (xi_1 + 3 * xi)); } diff --git a/modules/ocl/src/moments.cpp b/modules/ocl/src/moments.cpp index 6979433ab3..4abca0383f 100644 --- a/modules/ocl/src/moments.cpp +++ b/modules/ocl/src/moments.cpp @@ -98,25 +98,19 @@ static void icvContourMoments( CvSeq* contour, CvMoments* mom ) CvSeqReader reader; int lpt = contour->total; double a00, a10, a01, a20, a11, a02, a30, a21, a12, a03; - int dst_type = cv::ocl::Context::getContext()->impl->double_support ? CV_64FC1 : CV_32FC1; cvStartReadSeq( contour, &reader, 0 ); - cv::ocl::oclMat dst_a00(1,lpt,dst_type); - cv::ocl::oclMat dst_a10(1,lpt,dst_type); - cv::ocl::oclMat dst_a01(1,lpt,dst_type); - cv::ocl::oclMat dst_a20(1,lpt,dst_type); - cv::ocl::oclMat dst_a11(1,lpt,dst_type); - cv::ocl::oclMat dst_a02(1,lpt,dst_type); - cv::ocl::oclMat dst_a30(1,lpt,dst_type); - cv::ocl::oclMat dst_a21(1,lpt,dst_type); - cv::ocl::oclMat dst_a12(1,lpt,dst_type); - cv::ocl::oclMat dst_a03(1,lpt,dst_type); size_t reader_size = lpt << 1; cv::Mat reader_mat(1,reader_size,CV_32FC1); bool is_float = CV_SEQ_ELTYPE(contour) == CV_32FC2; + if (!cv::ocl::Context::getContext()->impl->double_support && is_float) + { + CV_Error(CV_StsUnsupportedFormat, "Moments - double is not supported by your GPU!"); + } + if( is_float ) { for(size_t i = 0; i < reader_size; ++i) @@ -136,6 +130,7 @@ static void icvContourMoments( CvSeq* contour, CvMoments* mom ) } } + cv::ocl::oclMat dst_a(10, lpt, CV_64FC1); cv::ocl::oclMat reader_oclmat(reader_mat); int llength = std::min(lpt,128); size_t localThreads[3] = { llength, 1, 1}; @@ -143,48 +138,43 @@ static void icvContourMoments( CvSeq* contour, CvMoments* mom ) vector > args; args.push_back( make_pair( sizeof(cl_int) , (void *)&contour->total )); args.push_back( make_pair( sizeof(cl_mem) , (void *)&reader_oclmat.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a00.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a10.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a01.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a20.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a11.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a02.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a30.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a21.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a12.data )); - args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a03.data )); - openCLExecuteKernel(dst_a00.clCxt, &moments, "icvContourMoments", globalThreads, localThreads, args, -1, -1); + args.push_back( make_pair( sizeof(cl_mem) , (void *)&dst_a.data )); + cl_int dst_step = (cl_int)dst_a.step; + args.push_back( make_pair( sizeof(cl_int) , (void *)&dst_step )); - cv::Mat dst(dst_a00); - cv::Scalar s = cv::sum(dst); - a00 = s[0]; - dst = dst_a10; - s = cv::sum(dst); - a10 = s[0];//dstsum[1]; - dst = dst_a01; - s = cv::sum(dst); - a01 = s[0];//dstsum[2]; - dst = dst_a20; - s = cv::sum(dst); - a20 = s[0];//dstsum[3]; - dst = dst_a11; - s = cv::sum(dst); - a11 = s[0];//dstsum[4]; - dst = dst_a02; - s = cv::sum(dst); - a02 = s[0];//dstsum[5]; - dst = dst_a30; - s = cv::sum(dst); - a30 = s[0];//dstsum[6]; - dst = dst_a21; - s = cv::sum(dst); - a21 = s[0];//dstsum[7]; - dst = dst_a12; - s = cv::sum(dst); - a12 = s[0];//dstsum[8]; - dst = dst_a03; - s = cv::sum(dst); - a03 = s[0];//dstsum[9]; + openCLExecuteKernel(dst_a.clCxt, &moments, "icvContourMoments", globalThreads, localThreads, args, -1, -1); + + cv::Mat dst(dst_a); + a00 = a10 = a01 = a20 = a11 = a02 = a30 = a21 = a12 = a03 = 0.0; + if (!cv::ocl::Context::getContext()->impl->double_support) + { + for (int i = 0; i < contour->total; ++i) + { + a00 += dst.at(0, i); + a10 += dst.at(1, i); + a01 += dst.at(2, i); + a20 += dst.at(3, i); + a11 += dst.at(4, i); + a02 += dst.at(5, i); + a30 += dst.at(6, i); + a21 += dst.at(7, i); + a12 += dst.at(8, i); + a03 += dst.at(9, i); + } + } + else + { + a00 = cv::sum(dst.row(0))[0]; + a10 = cv::sum(dst.row(1))[0]; + a01 = cv::sum(dst.row(2))[0]; + a20 = cv::sum(dst.row(3))[0]; + a11 = cv::sum(dst.row(4))[0]; + a02 = cv::sum(dst.row(5))[0]; + a30 = cv::sum(dst.row(6))[0]; + a21 = cv::sum(dst.row(7))[0]; + a12 = cv::sum(dst.row(8))[0]; + a03 = cv::sum(dst.row(9))[0]; + } double db1_2, db1_6, db1_12, db1_24, db1_20, db1_60; if( fabs(a00) > FLT_EPSILON ) From 8942eaf0d79e49c6fdf19965b2ab2bed923f9805 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Mon, 11 Mar 2013 11:17:19 +0400 Subject: [PATCH 0011/1333] Stetch support for Android View classes added (Feature #2840) --- .../java/android+CameraBridgeViewBase.java | 19 ++++++++++++++++++- .../src/java/android+JavaCameraView.java | 6 ++++++ .../src/java/android+NativeCameraView.java | 6 ++++++ .../res/layout/tutorial3_surface_view.xml | 4 ++-- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/modules/java/generator/src/java/android+CameraBridgeViewBase.java b/modules/java/generator/src/java/android+CameraBridgeViewBase.java index 4dd3af96f1..e76ac26c56 100644 --- a/modules/java/generator/src/java/android+CameraBridgeViewBase.java +++ b/modules/java/generator/src/java/android+CameraBridgeViewBase.java @@ -15,6 +15,7 @@ import android.content.DialogInterface; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Canvas; +import android.graphics.Rect; import android.util.AttributeSet; import android.util.Log; import android.view.SurfaceHolder; @@ -44,6 +45,7 @@ public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac protected int mFrameHeight; protected int mMaxHeight; protected int mMaxWidth; + protected float mScale = 0; protected int mPreviewFormat = Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA; protected int mCameraIndex = -1; protected boolean mEnabled; @@ -389,7 +391,22 @@ public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac Canvas canvas = getHolder().lockCanvas(); if (canvas != null) { canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); - canvas.drawBitmap(mCacheBitmap, (canvas.getWidth() - mCacheBitmap.getWidth()) / 2, (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, null); + Log.d(TAG, "mStretch value: " + mScale); + + if (mScale != 0) { + canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), + new Rect((int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2), + (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2), + (int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2 + mScale*mCacheBitmap.getWidth()), + (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2 + mScale*mCacheBitmap.getHeight())), null); + } else { + canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), + new Rect((canvas.getWidth() - mCacheBitmap.getWidth()) / 2, + (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, + (canvas.getWidth() - mCacheBitmap.getWidth()) / 2 + mCacheBitmap.getWidth(), + (canvas.getHeight() - mCacheBitmap.getHeight()) / 2 + mCacheBitmap.getHeight()), null); + } + if (mFpsMeter != null) { mFpsMeter.measure(); mFpsMeter.draw(canvas, 20, 30); diff --git a/modules/java/generator/src/java/android+JavaCameraView.java b/modules/java/generator/src/java/android+JavaCameraView.java index 962899ad8f..34fe6091ae 100644 --- a/modules/java/generator/src/java/android+JavaCameraView.java +++ b/modules/java/generator/src/java/android+JavaCameraView.java @@ -10,6 +10,7 @@ import android.hardware.Camera.PreviewCallback; import android.os.Build; import android.util.AttributeSet; import android.util.Log; +import android.view.ViewGroup.LayoutParams; import org.opencv.core.CvType; import org.opencv.core.Mat; @@ -130,6 +131,11 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb mFrameWidth = params.getPreviewSize().width; mFrameHeight = params.getPreviewSize().height; + if ((getLayoutParams().width == LayoutParams.MATCH_PARENT) && (getLayoutParams().height == LayoutParams.MATCH_PARENT)) + mScale = Math.min(((float)height)/mFrameHeight, ((float)width)/mFrameWidth); + else + mScale = 0; + if (mFpsMeter != null) { mFpsMeter.setResolution(mFrameWidth, mFrameHeight); } diff --git a/modules/java/generator/src/java/android+NativeCameraView.java b/modules/java/generator/src/java/android+NativeCameraView.java index 3802167b35..496ed53d6e 100644 --- a/modules/java/generator/src/java/android+NativeCameraView.java +++ b/modules/java/generator/src/java/android+NativeCameraView.java @@ -8,6 +8,7 @@ import org.opencv.highgui.VideoCapture; import android.content.Context; import android.util.AttributeSet; import android.util.Log; +import android.view.ViewGroup.LayoutParams; /** * This class is an implementation of a bridge between SurfaceView and native OpenCV camera. @@ -102,6 +103,11 @@ public class NativeCameraView extends CameraBridgeViewBase { mFrameWidth = (int)frameSize.width; mFrameHeight = (int)frameSize.height; + if ((getLayoutParams().width == LayoutParams.MATCH_PARENT) && (getLayoutParams().height == LayoutParams.MATCH_PARENT)) + mScale = Math.min(((float)height)/mFrameHeight, ((float)width)/mFrameWidth); + else + mScale = 0; + if (mFpsMeter != null) { mFpsMeter.setResolution(mFrameWidth, mFrameHeight); } diff --git a/samples/android/tutorial-3-cameracontrol/res/layout/tutorial3_surface_view.xml b/samples/android/tutorial-3-cameracontrol/res/layout/tutorial3_surface_view.xml index 79fef4eae4..a574905782 100644 --- a/samples/android/tutorial-3-cameracontrol/res/layout/tutorial3_surface_view.xml +++ b/samples/android/tutorial-3-cameracontrol/res/layout/tutorial3_surface_view.xml @@ -4,8 +4,8 @@ android:layout_height="match_parent" > From 0f0a4c30991e8cfe3c3f7e8b37a04bdb52223fa3 Mon Sep 17 00:00:00 2001 From: yao Date: Mon, 11 Mar 2013 17:10:58 +0800 Subject: [PATCH 0012/1333] add stereoBM function --- modules/ocl/include/opencv2/ocl/ocl.hpp | 34 ++ modules/ocl/src/kernels/stereobm.cl | 427 ++++++++++++++++++++++++ modules/ocl/src/stereobm.cpp | 293 ++++++++++++++++ modules/ocl/test/test_calib3d.cpp | 94 ++++++ samples/ocl/aloe-L.png | Bin 0 -> 737508 bytes samples/ocl/aloe-R.png | Bin 0 -> 739497 bytes samples/ocl/aloe-disp.png | Bin 0 -> 60396 bytes 7 files changed, 848 insertions(+) create mode 100644 modules/ocl/src/kernels/stereobm.cl create mode 100644 modules/ocl/src/stereobm.cpp create mode 100644 modules/ocl/test/test_calib3d.cpp create mode 100644 samples/ocl/aloe-L.png create mode 100644 samples/ocl/aloe-R.png create mode 100644 samples/ocl/aloe-disp.png diff --git a/modules/ocl/include/opencv2/ocl/ocl.hpp b/modules/ocl/include/opencv2/ocl/ocl.hpp index 31b61410e7..4c2d54f00d 100644 --- a/modules/ocl/include/opencv2/ocl/ocl.hpp +++ b/modules/ocl/include/opencv2/ocl/ocl.hpp @@ -1806,6 +1806,40 @@ namespace cv //! computes moments of the rasterized shape or a vector of points CV_EXPORTS Moments ocl_moments(InputArray _array, bool binaryImage); + + class CV_EXPORTS StereoBM_OCL + { + public: + enum { BASIC_PRESET = 0, PREFILTER_XSOBEL = 1 }; + + enum { DEFAULT_NDISP = 64, DEFAULT_WINSZ = 19 }; + + //! the default constructor + StereoBM_OCL(); + //! the full constructor taking the camera-specific preset, number of disparities and the SAD window size. ndisparities must be multiple of 8. + StereoBM_OCL(int preset, int ndisparities = DEFAULT_NDISP, int winSize = DEFAULT_WINSZ); + + //! the stereo correspondence operator. Finds the disparity for the specified rectified stereo pair + //! Output disparity has CV_8U type. + void operator() ( const oclMat &left, const oclMat &right, oclMat &disparity); + + //! Some heuristics that tries to estmate + // if current GPU will be faster then CPU in this algorithm. + // It queries current active device. + static bool checkIfGpuCallReasonable(); + + int preset; + int ndisp; + int winSize; + + // If avergeTexThreshold == 0 => post procesing is disabled + // If avergeTexThreshold != 0 then disparity is set 0 in each point (x,y) where for left image + // SumOfHorizontalGradiensInWindow(x, y, winSize) < (winSize * winSize) * avergeTexThreshold + // i.e. input left image is low textured. + float avergeTexThreshold; + private: + oclMat minSSD, leBuf, riBuf; + }; } } #if defined _MSC_VER && _MSC_VER >= 1200 diff --git a/modules/ocl/src/kernels/stereobm.cl b/modules/ocl/src/kernels/stereobm.cl new file mode 100644 index 0000000000..4edab86b45 --- /dev/null +++ b/modules/ocl/src/kernels/stereobm.cl @@ -0,0 +1,427 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Jia Haipeng, jiahaipeng95@gmail.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#define ROWSperTHREAD 21 // the number of rows a thread will process +#define BLOCK_W 128 // the thread block width (464) +#define N_DISPARITIES 8 + +#define STEREO_MIND 0 // The minimum d range to check +#define STEREO_DISP_STEP N_DISPARITIES // the d step, must be <= 1 to avoid aliasing + +int SQ(int a) +{ + return a * a; +} + +unsigned int CalcSSD(volatile __local unsigned int *col_ssd_cache, + volatile __local unsigned int *col_ssd, int radius) +{ + unsigned int cache = 0; + unsigned int cache2 = 0; + + for(int i = 1; i <= radius; i++) + cache += col_ssd[i]; + + col_ssd_cache[0] = cache; + + barrier(CLK_LOCAL_MEM_FENCE); + + if (get_local_id(0) < BLOCK_W - radius) + cache2 = col_ssd_cache[radius]; + else + for(int i = radius + 1; i < (2 * radius + 1); i++) + cache2 += col_ssd[i]; + + return col_ssd[0] + cache + cache2; +} + +uint2 MinSSD(volatile __local unsigned int *col_ssd_cache, + volatile __local unsigned int *col_ssd, int radius) +{ + unsigned int ssd[N_DISPARITIES]; + + //See above: #define COL_SSD_SIZE (BLOCK_W + 2 * radius) + ssd[0] = CalcSSD(col_ssd_cache, col_ssd + 0 * (BLOCK_W + 2 * radius), radius); + barrier(CLK_LOCAL_MEM_FENCE); + ssd[1] = CalcSSD(col_ssd_cache, col_ssd + 1 * (BLOCK_W + 2 * radius), radius); + barrier(CLK_LOCAL_MEM_FENCE); + ssd[2] = CalcSSD(col_ssd_cache, col_ssd + 2 * (BLOCK_W + 2 * radius), radius); + barrier(CLK_LOCAL_MEM_FENCE); + ssd[3] = CalcSSD(col_ssd_cache, col_ssd + 3 * (BLOCK_W + 2 * radius), radius); + barrier(CLK_LOCAL_MEM_FENCE); + ssd[4] = CalcSSD(col_ssd_cache, col_ssd + 4 * (BLOCK_W + 2 * radius), radius); + barrier(CLK_LOCAL_MEM_FENCE); + ssd[5] = CalcSSD(col_ssd_cache, col_ssd + 5 * (BLOCK_W + 2 * radius), radius); + barrier(CLK_LOCAL_MEM_FENCE); + ssd[6] = CalcSSD(col_ssd_cache, col_ssd + 6 * (BLOCK_W + 2 * radius), radius); + barrier(CLK_LOCAL_MEM_FENCE); + ssd[7] = CalcSSD(col_ssd_cache, col_ssd + 7 * (BLOCK_W + 2 * radius), radius); + barrier(CLK_LOCAL_MEM_FENCE); + + unsigned int mssd = min(min(min(ssd[0], ssd[1]), min(ssd[4], ssd[5])), min(min(ssd[2], ssd[3]), min(ssd[6], ssd[7]))); + + int bestIdx = 0; + for (int i = 0; i < N_DISPARITIES; i++) + { + if (mssd == ssd[i]) + bestIdx = i; + } + + return (uint2)(mssd, bestIdx); +} + +void StepDown(int idx1, int idx2, __global unsigned char* imageL, + __global unsigned char* imageR, int d, volatile __local unsigned int *col_ssd, int radius) +{ + unsigned char leftPixel1; + unsigned char leftPixel2; + unsigned char rightPixel1[8]; + unsigned char rightPixel2[8]; + unsigned int diff1, diff2; + + leftPixel1 = imageL[idx1]; + leftPixel2 = imageL[idx2]; + + idx1 = idx1 - d; + idx2 = idx2 - d; + + rightPixel1[7] = imageR[idx1 - 7]; + rightPixel1[0] = imageR[idx1 - 0]; + rightPixel1[1] = imageR[idx1 - 1]; + rightPixel1[2] = imageR[idx1 - 2]; + rightPixel1[3] = imageR[idx1 - 3]; + rightPixel1[4] = imageR[idx1 - 4]; + rightPixel1[5] = imageR[idx1 - 5]; + rightPixel1[6] = imageR[idx1 - 6]; + + rightPixel2[7] = imageR[idx2 - 7]; + rightPixel2[0] = imageR[idx2 - 0]; + rightPixel2[1] = imageR[idx2 - 1]; + rightPixel2[2] = imageR[idx2 - 2]; + rightPixel2[3] = imageR[idx2 - 3]; + rightPixel2[4] = imageR[idx2 - 4]; + rightPixel2[5] = imageR[idx2 - 5]; + rightPixel2[6] = imageR[idx2 - 6]; + + //See above: #define COL_SSD_SIZE (BLOCK_W + 2 * radius) + diff1 = leftPixel1 - rightPixel1[0]; + diff2 = leftPixel2 - rightPixel2[0]; + col_ssd[0 * (BLOCK_W + 2 * radius)] += SQ(diff2) - SQ(diff1); + + diff1 = leftPixel1 - rightPixel1[1]; + diff2 = leftPixel2 - rightPixel2[1]; + col_ssd[1 * (BLOCK_W + 2 * radius)] += SQ(diff2) - SQ(diff1); + + diff1 = leftPixel1 - rightPixel1[2]; + diff2 = leftPixel2 - rightPixel2[2]; + col_ssd[2 * (BLOCK_W + 2 * radius)] += SQ(diff2) - SQ(diff1); + + diff1 = leftPixel1 - rightPixel1[3]; + diff2 = leftPixel2 - rightPixel2[3]; + col_ssd[3 * (BLOCK_W + 2 * radius)] += SQ(diff2) - SQ(diff1); + + diff1 = leftPixel1 - rightPixel1[4]; + diff2 = leftPixel2 - rightPixel2[4]; + col_ssd[4 * (BLOCK_W + 2 * radius)] += SQ(diff2) - SQ(diff1); + + diff1 = leftPixel1 - rightPixel1[5]; + diff2 = leftPixel2 - rightPixel2[5]; + col_ssd[5 * (BLOCK_W + 2 * radius)] += SQ(diff2) - SQ(diff1); + + diff1 = leftPixel1 - rightPixel1[6]; + diff2 = leftPixel2 - rightPixel2[6]; + col_ssd[6 * (BLOCK_W + 2 * radius)] += SQ(diff2) - SQ(diff1); + + diff1 = leftPixel1 - rightPixel1[7]; + diff2 = leftPixel2 - rightPixel2[7]; + col_ssd[7 * (BLOCK_W + 2 * radius)] += SQ(diff2) - SQ(diff1); +} + +void InitColSSD(int x_tex, int y_tex, int im_pitch, __global unsigned char* imageL, + __global unsigned char* imageR, int d, + volatile __local unsigned int *col_ssd, int radius) +{ + unsigned char leftPixel1; + int idx; + unsigned int diffa[] = {0, 0, 0, 0, 0, 0, 0, 0}; + + for(int i = 0; i < (2 * radius + 1); i++) + { + idx = y_tex * im_pitch + x_tex; + leftPixel1 = imageL[idx]; + idx = idx - d; + + diffa[0] += SQ(leftPixel1 - imageR[idx - 0]); + diffa[1] += SQ(leftPixel1 - imageR[idx - 1]); + diffa[2] += SQ(leftPixel1 - imageR[idx - 2]); + diffa[3] += SQ(leftPixel1 - imageR[idx - 3]); + diffa[4] += SQ(leftPixel1 - imageR[idx - 4]); + diffa[5] += SQ(leftPixel1 - imageR[idx - 5]); + diffa[6] += SQ(leftPixel1 - imageR[idx - 6]); + diffa[7] += SQ(leftPixel1 - imageR[idx - 7]); + + y_tex += 1; + } + //See above: #define COL_SSD_SIZE (BLOCK_W + 2 * radius) + col_ssd[0 * (BLOCK_W + 2 * radius)] = diffa[0]; + col_ssd[1 * (BLOCK_W + 2 * radius)] = diffa[1]; + col_ssd[2 * (BLOCK_W + 2 * radius)] = diffa[2]; + col_ssd[3 * (BLOCK_W + 2 * radius)] = diffa[3]; + col_ssd[4 * (BLOCK_W + 2 * radius)] = diffa[4]; + col_ssd[5 * (BLOCK_W + 2 * radius)] = diffa[5]; + col_ssd[6 * (BLOCK_W + 2 * radius)] = diffa[6]; + col_ssd[7 * (BLOCK_W + 2 * radius)] = diffa[7]; +} + +__kernel void stereoKernel(__global unsigned char *left, __global unsigned char *right, + __global unsigned int *cminSSDImage, int cminSSD_step, + __global unsigned char *disp, int disp_step,int cwidth, int cheight, + int img_step, int maxdisp, int radius, + __local unsigned int *col_ssd_cache) +{ + + volatile __local unsigned int *col_ssd = col_ssd_cache + BLOCK_W + get_local_id(0); + volatile __local unsigned int *col_ssd_extra = get_local_id(0) < (2 * radius) ? col_ssd + BLOCK_W : 0; + + int X = get_group_id(0) * BLOCK_W + get_local_id(0) + maxdisp + radius; + // int Y = get_group_id(1) * ROWSperTHREAD + radius; + + #define Y (get_group_id(1) * ROWSperTHREAD + radius) + + volatile __global unsigned int* minSSDImage = cminSSDImage + X + Y * cminSSD_step; + __global unsigned char* disparImage = disp + X + Y * disp_step; + + int end_row = ROWSperTHREAD < (cheight - Y) ? ROWSperTHREAD:(cheight - Y); + int y_tex; + int x_tex = X - radius; + + if (x_tex >= cwidth) + return; + + for(int d = STEREO_MIND; d < maxdisp; d += STEREO_DISP_STEP) + { + y_tex = Y - radius; + + InitColSSD(x_tex, y_tex, img_step, left, right, d, col_ssd, radius); + if (col_ssd_extra > 0) + if (x_tex + BLOCK_W < cwidth) + InitColSSD(x_tex + BLOCK_W, y_tex, img_step, left, right, d, col_ssd_extra, radius); + + barrier(CLK_LOCAL_MEM_FENCE); //before MinSSD function + + if (X < cwidth - radius && Y < cheight - radius) + { + uint2 minSSD = MinSSD(col_ssd_cache + get_local_id(0), col_ssd, radius); + if (minSSD.x < minSSDImage[0]) + { + disparImage[0] = (unsigned char)(d + minSSD.y); + minSSDImage[0] = minSSD.x; + } + } + + for(int row = 1; row < end_row; row++) + { + int idx1 = y_tex * img_step + x_tex; + int idx2 = (y_tex + (2 * radius + 1)) * img_step + x_tex; + + barrier(CLK_GLOBAL_MEM_FENCE); + barrier(CLK_LOCAL_MEM_FENCE); + + StepDown(idx1, idx2, left, right, d, col_ssd, radius); + if (col_ssd_extra > 0) + if (x_tex + BLOCK_W < cwidth) + StepDown(idx1, idx2, left + BLOCK_W, right + BLOCK_W, d, col_ssd_extra, radius); + + y_tex += 1; + + barrier(CLK_LOCAL_MEM_FENCE); + + if (X < cwidth - radius && row < cheight - radius - Y) + { + int idx = row * cminSSD_step; + uint2 minSSD = MinSSD(col_ssd_cache + get_local_id(0), col_ssd, radius); + if (minSSD.x < minSSDImage[idx]) + { + disparImage[disp_step * row] = (unsigned char)(d + minSSD.y); + minSSDImage[idx] = minSSD.x; + } + } + } // for row loop + } // for d loop +} + +////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Sobel Prefiler (signal channel)////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////////// + +__kernel void prefilter_xsobel(__global unsigned char *input, __global unsigned char *output, + int rows, int cols, int prefilterCap) +{ + int x = get_global_id(0); + int y = get_global_id(1); + + if(x < cols && y < rows) + { + int cov = input[(y-1) * cols + (x-1)] * (-1) + input[(y-1) * cols + (x+1)] * (1) + + input[(y) * cols + (x-1)] * (-2) + input[(y) * cols + (x+1)] * (2) + + input[(y+1) * cols + (x-1)] * (-1) + input[(y+1) * cols + (x+1)] * (1); + + cov = min(min(max(-prefilterCap, cov), prefilterCap) + prefilterCap, 255); + output[y * cols + x] = cov & 0xFF; + } +} + + +////////////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////// Textureness filtering //////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////////// + +float sobel(__global unsigned char *input, int x, int y, int rows, int cols) +{ + float conv = 0; + int y1 = y==0? 0 : y-1; + int x1 = x==0? 0 : x-1; + if(x < cols && y < rows) + { + conv = (float)input[(y1) * cols + (x1)] * (-1) + (float)input[(y1) * cols + (x+1)] * (1) + + (float)input[(y) * cols + (x1)] * (-2) + (float)input[(y) * cols + (x+1)] * (2) + + (float)input[(y+1) * cols + (x1)] * (-1) + (float)input[(y+1) * cols + (x+1)] * (1); + + } + return fabs(conv); +} + +float CalcSums(__local float *cols, __local float *cols_cache, int winsz) +{ + float cache = 0; + float cache2 = 0; + int winsz2 = winsz/2; + + int x = get_local_id(0); + int group_size_x = get_local_size(0); + + for(int i = 1; i <= winsz2; i++) + cache += cols[i]; + + cols_cache[0] = cache; + + barrier(CLK_LOCAL_MEM_FENCE); + + if (x < group_size_x - winsz2) + cache2 = cols_cache[winsz2]; + else + for(int i = winsz2 + 1; i < winsz; i++) + cache2 += cols[i]; + + return cols[0] + cache + cache2; +} + +#define RpT (2 * ROWSperTHREAD) // got experimentally +__kernel void textureness_kernel(__global unsigned char *disp, int disp_rows, int disp_cols, + int disp_step, __global unsigned char *input, int input_rows, + int input_cols,int winsz, float threshold, + __local float *cols_cache) +{ + int winsz2 = winsz/2; + int n_dirty_pixels = (winsz2) * 2; + + int local_id_x = get_local_id(0); + int group_size_x = get_local_size(0); + int group_id_y = get_group_id(1); + + __local float *cols = cols_cache + group_size_x + local_id_x; + __local float *cols_extra = local_id_x < n_dirty_pixels ? cols + group_size_x : 0; + + int x = get_global_id(0); + int beg_row = group_id_y * RpT; + int end_row = min(beg_row + RpT, disp_rows); + + // if (x < disp_cols) + // { + int y = beg_row; + + float sum = 0; + float sum_extra = 0; + + for(int i = y - winsz2; i <= y + winsz2; ++i) + { + sum += sobel(input, x - winsz2, i, input_rows, input_cols); + if (cols_extra) + sum_extra += sobel(input, x + group_size_x - winsz2, i, input_rows, input_cols); + } + *cols = sum; + if (cols_extra) + *cols_extra = sum_extra; + + barrier(CLK_LOCAL_MEM_FENCE); + + float sum_win = CalcSums(cols, cols_cache + local_id_x, winsz) * 255; + if (sum_win < threshold) + disp[y * disp_step + x] = 0; + + barrier(CLK_LOCAL_MEM_FENCE); + + for(int y = beg_row + 1; y < end_row; ++y) + { + sum = sum - sobel(input, x - winsz2, y - winsz2 - 1, input_rows, input_cols) + + sobel(input, x - winsz2, y + winsz2, input_rows, input_cols); + *cols = sum; + + if (cols_extra) + { + sum_extra = sum_extra - sobel(input, x + group_size_x - winsz2, y - winsz2 - 1,input_rows, input_cols) + + sobel(input, x + group_size_x - winsz2, y + winsz2, input_rows, input_cols); + *cols_extra = sum_extra; + } + + barrier(CLK_LOCAL_MEM_FENCE); + float sum_win = CalcSums(cols, cols_cache + local_id_x, winsz) * 255; + if (sum_win < threshold) + disp[y * disp_step + x] = 0; + + barrier(CLK_LOCAL_MEM_FENCE); + } + // } +} diff --git a/modules/ocl/src/stereobm.cpp b/modules/ocl/src/stereobm.cpp new file mode 100644 index 0000000000..2f24881ddd --- /dev/null +++ b/modules/ocl/src/stereobm.cpp @@ -0,0 +1,293 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Jia Haipeng, jiahaipeng95@gmail.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" +#include + +using namespace cv; +using namespace cv::ocl; +using namespace std; + +//////////////////////////////////////////////////////////////////////// +///////////////// stereoBM ///////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +#if !defined (HAVE_OPENCL) + +namespace cv +{ +namespace ocl +{ +cv::ocl::StereoBM_OCL::StereoBM_OCL() +{ + throw_nogpu(); +} +cv::ocl::StereoBM_OCL::StereoBM_OCL(int, int, int) +{ + throw_nogpu(); +} +bool cv::ocl::StereoBM_OCL::checkIfGpuCallReasonable() +{ + throw_nogpu(); + return false; +} +void cv::ocl::StereoBM_OCL::operator() ( const oclMat &, const oclMat &, oclMat &) +{ + throw_nogpu(); +} +} +} + +#else /* !defined (HAVE_OPENCL) */ + +namespace cv +{ +namespace ocl +{ + +///////////////////////////OpenCL kernel strings/////////////////////////// +extern const char *stereobm; + +} +} +namespace cv +{ +namespace ocl +{ +namespace stereoBM +{ +///////////////////////////////////////////////////////////////////////// +//////////////////////////prefilter_xsbel//////////////////////////////// +//////////////////////////////////////////////////////////////////////// +void prefilter_xsobel(const oclMat &input, oclMat &output, int prefilterCap) +{ + Context *clCxt = input.clCxt; + + string kernelName = "prefilter_xsobel"; + cl_kernel kernel = openCLGetKernelFromSource(clCxt, &stereobm, kernelName); + + size_t blockSize = 1; + size_t globalThreads[3] = { input.cols, input.rows, 1 }; + size_t localThreads[3] = { blockSize, blockSize, 1 }; + + openCLVerifyKernel(clCxt, kernel, localThreads); + openCLSafeCall(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *)&input.data)); + openCLSafeCall(clSetKernelArg(kernel, 1, sizeof(cl_mem), (void *)&output.data)); + openCLSafeCall(clSetKernelArg(kernel, 2, sizeof(cl_int), (void *)&input.rows)); + openCLSafeCall(clSetKernelArg(kernel, 3, sizeof(cl_int), (void *)&input.cols)); + openCLSafeCall(clSetKernelArg(kernel, 4, sizeof(cl_int), (void *)&prefilterCap)); + + openCLSafeCall(clEnqueueNDRangeKernel(clCxt->impl->clCmdQueue, kernel, 3, NULL, + globalThreads, localThreads, 0, NULL, NULL)); + + clFinish(clCxt->impl->clCmdQueue); + openCLSafeCall(clReleaseKernel(kernel)); + +} +////////////////////////////////////////////////////////////////////////// +//////////////////////////////common//////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +#define N_DISPARITIES 8 +#define ROWSperTHREAD 21 +#define BLOCK_W 128 +static inline int divUp(int total, int grain) +{ + return (total + grain - 1) / grain; +} +//////////////////////////////////////////////////////////////////////////// +///////////////////////////////stereoBM_GPU//////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +void stereo_bm(const oclMat &left, const oclMat &right, oclMat &disp, + int maxdisp, int winSize, oclMat &minSSD_buf) +{ + int winsz2 = winSize >> 1; + + //if(winsz2 == 0 || winsz2 >= calles_num) + //cv::ocl:error("Unsupported window size", __FILE__, __LINE__, __FUNCTION__); + + Context *clCxt = left.clCxt; + + string kernelName = "stereoKernel"; + cl_kernel kernel = openCLGetKernelFromSource(clCxt, &stereobm, kernelName); + + disp.setTo(Scalar_::all(0)); + minSSD_buf.setTo(Scalar_::all(0xFFFFFFFF)); + + size_t minssd_step = minSSD_buf.step / minSSD_buf.elemSize(); + size_t local_mem_size = (BLOCK_W + N_DISPARITIES * (BLOCK_W + 2 * winsz2)) * + sizeof(cl_uint); + //size_t blockSize = 1; + size_t localThreads[] = { BLOCK_W, 1,1}; + size_t globalThreads[] = { divUp(left.cols - maxdisp - 2 * winsz2, BLOCK_W) *BLOCK_W, + divUp(left.rows - 2 * winsz2, ROWSperTHREAD), + 1 + }; + + openCLVerifyKernel(clCxt, kernel, localThreads); + openCLSafeCall(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *)&left.data)); + openCLSafeCall(clSetKernelArg(kernel, 1, sizeof(cl_mem), (void *)&right.data)); + openCLSafeCall(clSetKernelArg(kernel, 2, sizeof(cl_mem), (void *)&minSSD_buf.data)); + openCLSafeCall(clSetKernelArg(kernel, 3, sizeof(cl_int), (void *)&minssd_step)); + openCLSafeCall(clSetKernelArg(kernel, 4, sizeof(cl_mem), (void *)&disp.data)); + openCLSafeCall(clSetKernelArg(kernel, 5, sizeof(cl_int), (void *)&disp.step)); + openCLSafeCall(clSetKernelArg(kernel, 6, sizeof(cl_int), (void *)&left.cols)); + openCLSafeCall(clSetKernelArg(kernel, 7, sizeof(cl_int), (void *)&left.rows)); + openCLSafeCall(clSetKernelArg(kernel, 8, sizeof(cl_int), (void *)&left.step)); + openCLSafeCall(clSetKernelArg(kernel, 9, sizeof(cl_int), (void *)&maxdisp)); + openCLSafeCall(clSetKernelArg(kernel, 10, sizeof(cl_int), (void *)&winsz2)); + openCLSafeCall(clSetKernelArg(kernel, 11, local_mem_size, (void *)NULL)); + + openCLSafeCall(clEnqueueNDRangeKernel(clCxt->impl->clCmdQueue, kernel, 2, NULL, + globalThreads, localThreads, 0, NULL, NULL)); + + + clFinish(clCxt->impl->clCmdQueue); + openCLSafeCall(clReleaseKernel(kernel)); +} +//////////////////////////////////////////////////////////////////////////// +///////////////////////////////postfilter_textureness/////////////////////// +//////////////////////////////////////////////////////////////////////////// +void postfilter_textureness(oclMat &left, int winSize, + float avergeTexThreshold, oclMat &disparity) +{ + Context *clCxt = left.clCxt; + + string kernelName = "textureness_kernel"; + cl_kernel kernel = openCLGetKernelFromSource(clCxt, &stereobm, kernelName); + + size_t blockSize = 1; + size_t localThreads[] = { BLOCK_W, blockSize ,1}; + size_t globalThreads[] = { divUp(left.cols, BLOCK_W) *BLOCK_W, + divUp(left.rows, 2 * ROWSperTHREAD), + 1 + }; + + size_t local_mem_size = (localThreads[0] + localThreads[0] + (winSize / 2) * 2) * sizeof(float); + + openCLVerifyKernel(clCxt, kernel, localThreads); + openCLSafeCall(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *)&disparity.data)); + openCLSafeCall(clSetKernelArg(kernel, 1, sizeof(cl_int), (void *)&disparity.rows)); + openCLSafeCall(clSetKernelArg(kernel, 2, sizeof(cl_int), (void *)&disparity.cols)); + openCLSafeCall(clSetKernelArg(kernel, 3, sizeof(cl_int), (void *)&disparity.step)); + openCLSafeCall(clSetKernelArg(kernel, 4, sizeof(cl_mem), (void *)&left.data)); + openCLSafeCall(clSetKernelArg(kernel, 5, sizeof(cl_int), (void *)&left.rows)); + openCLSafeCall(clSetKernelArg(kernel, 6, sizeof(cl_int), (void *)&left.cols)); + openCLSafeCall(clSetKernelArg(kernel, 7, sizeof(cl_int), (void *)&winSize)); + openCLSafeCall(clSetKernelArg(kernel, 8, sizeof(cl_float), (void *)&avergeTexThreshold)); + openCLSafeCall(clSetKernelArg(kernel, 9, local_mem_size, NULL)); + openCLSafeCall(clEnqueueNDRangeKernel(clCxt->impl->clCmdQueue, kernel, 2, NULL, + globalThreads, localThreads, 0, NULL, NULL)); + + clFinish(clCxt->impl->clCmdQueue); + openCLSafeCall(clReleaseKernel(kernel)); +} +////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////operator///////////////////////////////// +///////////////////////////////////////////////////////////////////////////// +void operator_(oclMat &minSSD, oclMat &leBuf, oclMat &riBuf, int preset, int ndisp, + int winSize, float avergeTexThreshold, const oclMat &left, + const oclMat &right, oclMat &disparity) + +{ + CV_DbgAssert(left.rows == right.rows && left.cols == right.cols); + CV_DbgAssert(left.type() == CV_8UC1); + CV_DbgAssert(right.type() == CV_8UC1); + + disparity.create(left.size(), CV_8UC1); + minSSD.create(left.size(), CV_32SC1); + + oclMat le_for_bm = left; + oclMat ri_for_bm = right; + + if (preset == cv::ocl::StereoBM_OCL::PREFILTER_XSOBEL) + { + leBuf.create( left.size(), left.type()); + riBuf.create(right.size(), right.type()); + + prefilter_xsobel( left, leBuf, 31); + prefilter_xsobel(right, riBuf, 31); + + le_for_bm = leBuf; + ri_for_bm = riBuf; + } + + stereo_bm(le_for_bm, ri_for_bm, disparity, ndisp, winSize, minSSD); + + if (avergeTexThreshold) + { + postfilter_textureness(le_for_bm, winSize, avergeTexThreshold, disparity); + } +} +} +} +} +const float defaultAvgTexThreshold = 3; + +cv::ocl::StereoBM_OCL::StereoBM_OCL() + : preset(BASIC_PRESET), ndisp(DEFAULT_NDISP), winSize(DEFAULT_WINSZ), + avergeTexThreshold(defaultAvgTexThreshold) {} + +cv::ocl::StereoBM_OCL::StereoBM_OCL(int preset_, int ndisparities_, int winSize_) + : preset(preset_), ndisp(ndisparities_), winSize(winSize_), + avergeTexThreshold(defaultAvgTexThreshold) +{ + const int max_supported_ndisp = 1 << (sizeof(unsigned char) * 8); + CV_Assert(0 < ndisp && ndisp <= max_supported_ndisp); + CV_Assert(ndisp % 8 == 0); + CV_Assert(winSize % 2 == 1); +} + +bool cv::ocl::StereoBM_OCL::checkIfGpuCallReasonable() +{ + return true; +} + +void cv::ocl::StereoBM_OCL::operator() ( const oclMat &left, const oclMat &right, + oclMat &disparity) +{ + cv::ocl::stereoBM::operator_(minSSD, leBuf, riBuf, preset, ndisp, winSize, avergeTexThreshold, left, right, disparity); +} + +#endif /* !defined (HAVE_OPENCL) */ diff --git a/modules/ocl/test/test_calib3d.cpp b/modules/ocl/test/test_calib3d.cpp new file mode 100644 index 0000000000..58dbcc2e3d --- /dev/null +++ b/modules/ocl/test/test_calib3d.cpp @@ -0,0 +1,94 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors + +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" +#include + +#ifdef HAVE_OPENCL + +using namespace cv; + +extern std::string workdir; +PARAM_TEST_CASE(StereoMatchBM, int, int) +{ + int n_disp; + int winSize; + + virtual void SetUp() + { + n_disp = GET_PARAM(0); + winSize = GET_PARAM(1); + } +}; + +TEST_P(StereoMatchBM, Accuracy) +{ + + Mat left_image = readImage(workdir + "../ocl/aloe-L.png", IMREAD_GRAYSCALE); + Mat right_image = readImage(workdir + "../ocl/aloe-R.png", IMREAD_GRAYSCALE); + Mat disp_gold = readImage(workdir + "../ocl/aloe-disp.png", IMREAD_GRAYSCALE); + ocl::oclMat d_left, d_right; + ocl::oclMat d_disp(left_image.size(), CV_8U); + Mat disp; + + ASSERT_FALSE(left_image.empty()); + ASSERT_FALSE(right_image.empty()); + ASSERT_FALSE(disp_gold.empty()); + d_left.upload(left_image); + d_right.upload(right_image); + + ocl::StereoBM_OCL bm(0, n_disp, winSize); + + + bm(d_left, d_right, d_disp); + d_disp.download(disp); + + EXPECT_MAT_SIMILAR(disp_gold, disp, 1e-3); +} + +INSTANTIATE_TEST_CASE_P(GPU_Calib3D, StereoMatchBM, testing::Combine(testing::Values(128), + testing::Values(19))); + +#endif // HAVE_OPENCL diff --git a/samples/ocl/aloe-L.png b/samples/ocl/aloe-L.png new file mode 100644 index 0000000000000000000000000000000000000000..47587668e25f51fd9117a98d1b38ea1ee834fdc5 GIT binary patch literal 737508 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­{!a7hRVykq_oi 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%0Avd#E$d(cVE%}_#gfU39!zyV>1}?3qJR- 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

7Z4HaX;#4@8e6FruW;z3z(2 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 |_j=GcCclE_*tIsG1VceJm z{<^B~jtA+9c@(Vru+8&U*~coUR%@lKQ;jkPXqLo&Ae9@Nrb5+nZon8vEkQbJ7fol; z^7V+$+RpW*>MA`p&UVa>=bo4lcIdj@-KS?S4kxoT%Vx{zY&lV*>IT(!Lo*JWV=L41 zHy3k)+JSCI{q*$QS3@L{SJPMLi)r8sNvRZ)*zx)6uL8uYU;S$2L|Nl3Qfkb2L`trH z^J@bZD6!5sXIDw&QT{0}5mh}7`=&SO2QofO;)^VFdJN9a>6ERHLmI``Z?2oVetB8v z+w%B$$EhLAS)!#E0`canD@nK~z4MEUuReXE6yGivPPGokND@g1f`w2XYu-3)MvasT zr?0X&;7~NJ1a*Er6AbI&cvn|{25M8Erc*D?(%9#mdBT?*PivyqXk!%uv_t!F_xO5s z^^4b6)D1>8#?Vbs4~<473VF>So<~FHK7IP@+0{)0fBKh?lSO=a zHupn835_Ej29qnCj-ysu8|^5Qecye2yi1bsdbM!F;0!pVY8V8_%gJ;YhkaY-ZU0i$ z!Q7W=z71-dm4q&bJ27_IRT3RjP^rYcAYl3m?Z!Di`PGV`{{OD z|L~G0v-oVDIWHiLCLzzF%;D4`I0wX8r8Hsm;fenKn{U!kP6AK2797q~AGEdBIl)7M zEx2YJN2Pt|q+qWX**p~1=qU9AFD|P3+nXQ1H^!Y^#LM~FY94q%0h~(f^0=#zaCWSk z!5M=NoF#urEjs|~taIRgCOukWG>juSP}XYQ3F)68&p^-`0Hna^37ln|1^`5~)&W}Q zECM+-qO}1c@D!FdFd7P@;d#;A;tK%nv>w4eRb|)p=nNqw@&jF!;ie$ic(oSkn*Gg#+<02(~OHNgR#pwQM4YYmKzajqkb z4wb5?GFn}qFRm8T@4x>P1pX|WfK{B3t4S;=+0@l64ld%L>zc1 zH{YGVyYl1Y{oC`+rv9fNHV>QpauzL;B#>Sb`IIv*{Xcwv`{QQ&;ma=~pBpy-;&z`G z`@3c+e2X~mw|_95%Htzx?g{^VE(lA}~e`sG{p$>U!IC8o^rKsj<_hQKr^z(6&{5J&wIWB&=6@ z91Q@aOq$WT(NT&NbQA^F=sMqq%rfV|S+veM=k#E7(dQ5K`f(^)B*f`qIPRU&RQQ@x zLxe`}rRr~=a|Kj-%sGP&1Oq>0Vd%}KNgN3agK=uT-EN+aQ*ZXy?>_&l53jCQY3dV6 zj39?Dcu~YeWqE&=Hn*LlPy+&>#DH7zdA&B=ACy4`cPi%}@W|cOO6P8a`hw z-@m`&N;6OTl<{U5d!;z# z@8-)yvYXB0eOdOF3htd{nKU>wDoK}2MwEKhp?}#N_xt_O_r_`K1~el&!#QCB37Ek1 zjI%cn4^b4yUI5l2f)pZ)qj})_j8%P852H0Oi$jSh1)D};CjD55G!&6ftG4?1{QTW^ z|AC4QVmakgAewP`ZzS8*PkrlPFqc@gd*d?)P_jGdf&lle>TXXZ5uG#TUOVYj}RHo?f>5!?7QgL+9Ms zkB#bU)fR166J!=_oTS@h_37?$HcR7Bf-%mVE&)TRBMz#*2f$^NST$5t#W@q4`GKdj z{^rx|fBx>LZD$r&*Vk{)7mL^vz>si4v{M$1QigE9?z_5eth3gDaVMpMvtSS$phb65 z8=Wp81aOX8%0%E#wXw!%ZH%?Xf-y!LGZ?L%wI{_eAUXZde+EoD1OQ41B2q^PA`*hm zo+ZiKvkPTR+4jmBAT;(PjzTLa>vsF_WcNo;S;j<=&Ae>dcY5>FojMj_B>jm5W+|bk zi8BIqY8>k0*c6D$j}kALr0K+};pYAkq!(vl6ohqWZXTbs(Mb?^LIl3&bHRb!e)Zk< z8i_hP^J6pY8oxNTzUM*%dVlEqhu!Y^kRRJ>S5=SO!#dBskb8tb{^{%b{x+UWKzPc!U0rRPaa}hS zn9tZW^j^)9Nx&jW=V=^=^5yXKl5e$fjQWHKLMQ^b+AseP1HWx7B`Aw*3&qKI7b%ylIBIt?-|Q0{S&`u;pllPETpR9$ZYoV7j^u^$)N1LEfxnC+VQp9T zgK|=MXl-7$y|%>kJ_V%QI16CS&<|BUwlDW86{L(Fj|d9DXopsbyMHnJWCh;%@@D=<=gWt0Afa`m2)S>xiiiZA*W|o zi}!DN<~u}<{B*o0v1_vIh|alS<}B_p-KP%AOJ~3K~%OqV3MU;cY)^- zE`PdvIOJ6n1=3@bA|i2wg)$&Yr5@)Lzy1DG)eLc(GAf>ToB#Ju-`(X}#*2%q^Yhg- z^%+6s&;U4PO{@C4>x;TN9*@Vvv1t3p=WWb`fAd$ru~l*VFW;s9Bsn`X=+eLo80(rg z@Vu*ec06vMi>7xx^~3keRV-LPDu~mgaz!_sFK55}>^coR)u^E?`ol}H-R(BJB0p|6 zyP~R-bV9&oN!E1gr@Oo9VjB4#+Mh!}=qzW{Y29=k7v3xiIl->$2|-WrK(fB?{`lwb zzxs5)>uoSuoLyh6&L;EBPoxN?kiL|XOF=2MoD!c4-xtQ|@4x-{<<-02y*uys4}_ra z`C;fQWy)bRh|75LeziR2$3Jhjn_dB7Z)dZKC#mrL$!gmv;rm~_eU*jb(Al==^3BU( z`&jM{`O8Kf^T)?$C*>qtSZlLMR@D8sKYn6@WpT`qI%kbGT93Y9;1I2urs2c=%kBLk zoy`0wJl6I9_4_~F<^A;P^3|(V956-!(2Z)W>w2@>-aS69U$$jg$uLC8>gK4&QEO)$ z5CRAe+-a5fw2X90M-xEe7(vDWXcA;#Ks#%kwqU>+V@5T0&YiroCzuBUIK&eM{$yN2 z0!S%>v(5n$f)*%6>3e0 zD+Td=K?!vh9Kq8*2m*}8zEo{Ji~ux{-aHImP101bG+>fJ5=t?u!7bxY;?)WKh_T30*->#;a z@V3Xprp&d`oFYNjo8hPR-L@{AW1NKuC-5XAr{EP~oC(GSBZN^(7zJV-=rj)FkhjHA zcjMJ!_1n)se0hC!y_%k-zJsAxJx9!f$fx3v@8UFK1f}miZ4SzlzX+oT(guOhjBgX&siw{%ZAIHv)owbUbPCVGr z=pLbSYBUNdWt1_bgLeCFEJxQX>wDBAL|M0Q+I`peT7{mBrRQ_m^=4mI1K4gbH+S2% z9j~qy=c~*r(+|q2UKKkrY*SJNIC85gSjoU=ED|(kkodeE$5D8GoOnWZy)No{KFjF; z{=fb=sNK{PS7{J}&5z|z_uG9r`cXm|(@GmPTBDU7mDZHRoGE$22mAbQZ=}^C@+@?3&KFfQv8ARMyaDga`7&hXJzr&Jl{~qYMOj|9CA$N7grY-lleT1Lh5nH zDLS;;n%;B8^V0?u`LF-=-=)$zU0Vl$v>ArH?~gdRtedtS20;4soNxAna*Ps+K#e_d zc5TzPd4ABm>TJv~2nz@uye+J>Q*Op;^W-99~Uk4Hv%6a<_T zjxLcb;KUd`^m;m73Ln4v@%uk~diJO1m#?p;lhBvwaBSbqy}w^Sz0|v7 z*K71d5c(`lX&g{HcA2o(iM#aZ(ql^w6Ncsfps5HalRvbn=x0ep0h|R3 z;G7Ml50)UI%WSgS?r!dPX)+B$`LKQZPk;LAxl*gk*Q?be3NY}9V0bbFIfB-jq3?%b zXh&ro9d&OAe7b#lHC_F?Uw`@Xr$65Q{*Py?OBp8wZ5nuzvbJlNlh|kQv^|WDN-Ezk zR+mXs=0(v#p`h$F7c7a`_){ zv=%Kc)A`k6$q8EL0I(hPQ(0*M&L|_S8PuU|C`V2SfCEDFswMCdDY+N`G7Xy?DcH=DoH@QPuu;b z8z`a6z<-q`AxDaaQw#)4!@!QFZ zUJ#0Cnim(nvCxU@X>!=7bLZ~yAF$AClkRi2z4sf(kHSM64$Ka&- zMnWPle18_MM%5^5ka&zw!T_QFzRvs6aU$k^5K;m)AakiidS#0=80Cv-Tt}EtG?-m zVFb$n90gQ*(8f6Dv>CElmd(=H+3M-`{`UFq^NW?!!13qlS5f!dzO4r{Iv~v6mCwnc zN`oMf9FbJoYA!}?Hg)5iBb-gLs6Fad+sC||Mv*`_3uPeqCa*p|JXfU^B=V&fctRk?^5sEPv0ADFW+1_qkQSTy}mw{$Cu~L z_;q^|L5Q{7?oAjk>%@2=gBI$A9>jZ=%K7@@($LjvyZLa=$-v zC(oy|-+p*Iiv#HqqWh;GzAazYyuu+MRCufxoWMvl*b~O|q%b;Fzi1s22S0m%9a?8P z-6eiXD5aDWYb-d*xRilX;EX{^oH5pFhZO9o_2Zl~KmZV&a|EchXecP+P>)vWi)A_s z!bRkJob*G#ue+)n3^*&eO%lC1QXs+)(({!}5_S7f9*<2~c~Jraz*%ZkzkO==&lat9 z$~hFlgoP>dQtNbEY)M~Trjg_RAHRQi+!b%$yh{8i3A}!mHSJh+-7pT+(zEl+DDkWs z0nnTPoqw5%0sriidET#6pL&8&bl{LM z0B0$govpIze138H?ag|chBIF{HAalTUoE(h$F~1;>>hVj!udQBZ>GsjS>5f**!M@{ zlyXKn>2q)lkO6{qKu_a>lf?Nnz(;~W2m<58fgP-M6e;11czNC5t)G+Fv&tTuCh%w+ zaGxPT{Oy;Y|I;@gch9@|`7DWpVLJcApC5qGcjxES66-7>fQ0Ko)!QdO4q2Fi0RlGf zTOjZ%o?gUp;&bZAp=)|GUQDx@WSOK4t<#zSMT(=*)^>g(&Axiv=cJ(25yrS-tTeGP z!~+P}AdIER7~_akYsLIHT3)dr)7I#rDUOHx?Qv^Jg`rHNUwt->Lyr*vP{t^0H9CRL zphM#9X$Qap)y8UPjOBY1qNuSMg)rB5KgoO&4msZ z7iv7~s(MZ~+vn$ex0#)tOJ6MJtMBh$m`vu|roBJt0;uw$>DBBq4Fp2~>%b^IYGqGP zXfNu|NY;Ej2Nw`Lj=pwO?{RI6dh0`j;KvpH-nwV(`DdIe94U} z+Ri$1kxsADm{<*zC_TI!ODg;iZx-dQ*zRkk5YQnw2Q-inPcMXEgcC}MtNOYdRNtGx3!3Kmrysrv{4kxQ=6wA9 zci%}V-!3L@91vX^_>u1|x_;ZV)nJu%gwQmIJR$PFJ@$hplpsy~py_qf?16wm%YtZ79NZ0Wxf0Q?f^F%pR*|Nq+o)R&HlKr_4^NB z_#O~27UA~cc_`KU#oKpR^EecOaY~R9INYu`Uw>z2=Zo_A-1g@77zAA`YTa;Cq0I^NY#!ZnImix0kc5 zF01Rib*+_SjI?1~Fix%2<+g&S*5`fb_KE1w8i&|hGTJ!ZjC}bb5_doUnSJ$FQI;8F zE>2I9IK5v!yuVw_v-r)kvw1cMmGG2`W8WBiaWz z#TsLp45Glfs%hWfuJeNx(&qxmA~~1mO{o5M?Qx)ug;rhzF4i+kE@%XS7hoW@}kg}3^^Cp;r((mm`>-X6W!K`baT5n zthTStE`Ranb(Vx=JEQBqZa7fB&OiMA=gV)uNx!&yEA*_fnw$k9N5q)q&bT8P>zGCZID+H(1JF1UWYK|h zU2`#vr(tZgdDv|i`<$3Jj? z&N&No43QZ}&WJN&9Jv8Y$jYkJS}TUgi6Qd@&qDtpKiu!jrs9h0XeBPSg_PZ%F&N}Y-$#8JQtXst1 z=-!&;wpjOlmW?l;oxc5{{ryi5zxnnu;VkrI9Qw$ZWVkBIeN`W-a4_H(qcHZxwrm9j zd0X_l13&-{h(wGrc8n_+AxFkJB7SbJBSQk{jA=EC((!V+K+uxA)K4BrJgg25jo@%L z9K}L#WENmFOn&p-H-G;Re^{7qaylJP23)W|y}LgY^_R~t20;W)17Nu=fBcXC@ch;J zv%mh825!i3XP#$+X_k3NB zr7_M~7lcs|roFbD!(f;U(!`o}HXIxdyPt0EfA#VOf+aFQjss1S&{uNTG~2c-TW76C z;IS`bKTuM2+CEjKb;LPiOgg7J2eob+XO2voLu;$1MQ;~II8KCAaT>3;yT{dTGMOg6a@IO>h-e9c z;7H4{1YjWz;`8Ak^OQhBhDB3{esVb+`*2i(({i^05u6UkK66PN4AKahb=EmcVW`ed z6S8$#mjaB>fe|5+@B*WfzigZE^lCVawwvYs_4d{2n}7A@rIM}ZyVGHetb5omm(_uB zPZEw(|I3#%>Z|Mf#bh>5(u4{6czwsY8f6)QCTAG9z>_0Cn1%jH5}ggAX(+9&H^rfI z;2e*+`toFco(7{Zw9X!yvg|bxpT?;NtZMtBGkL2IWmA?7k~bYsrlZu80N~oXX!EDY z?E+ho)c}?uD53lyWim|}slhI%{ohE6f zg2*wibG)&f`|<2#5(bPjIPABde!dyV?6<%A_VvXi6vo=#IYZ7GM=DIh@qBP`ArcQc z9GdRKYQM8iDdjUpj30WtEZc3{=5_5U=?fWnD)9VmUO$!9!#Xc3@>S?dDG(hYN6s1g z*pFmB7I`Xqd0c29^hfjI`5TaN*Y=60n67{N_`!K$oWw*n3WL#T$o+7+Ek4{oy}P}? zetNulTsRCM6=OomFJIThcX-l{cmMoGb>KysF>MK->A6--aca$P@sFuTX1ZQkwLpDX7E zqv6Tv`T6wu#ViSYBw~Vd1^^C$0RUM`OM2>fw z2EEae!{M;mZr2Rp)!BI#1_6h*Zk#nQ=HrV&qP0FW^`@@(RjXvM-8J`jJ0P2;ei{WR z{oCd4ezCS>0`IdJtnF+x97n^KRuPk z#Zfv8lSvew4U=gS`CJ@>e z3>^YWj)PE+f?yH_vp6^#q^D^xjZ`E>QPqd01;H7z^DKEa8Ae*}UcpndEREuuT}=42daXRp2C1#zDMkO>uqkr$Y{ zTyHjIQz3I%n)3hVfBGNJuAa@ukzn0!x4OSyZdWz*JQd-^XnH=K&eC`iC%^pSm230c zhebLXDNXkL05OWC&8r#TF+oMjM2qjYlN%|=d`&gi@K{&ssHsXR|HWZL4*X18qGRoxhZ zBnUb3z>}PdyejY4yG_+N!ZZv|PsVBBlhaxo2F=hfrmFI&6C9P0f^i{O)8)=}QIZ71 zp^UOb@F6$YRjb9*e!uTcPtE}t!MWrZg?^fZ*&rMY{6QqMM5U3B0Bzsje7L{JW`Fmq zud)!0>6~@inzF4P%ft0%cfZ@^wn?UgBujg1D$_Tn*0v`H&N>GCsPY8>grg|fA!7)f zp%Q|NBbDCsJsBG7967SbNvJc{ID2$o!jY&*M8uA6;o~vd5D-IRgaGa+ZP26bl-POAOl24;dtl|2W4J>He3kjP$uc@)f@1_{c_jkEoaC*W^9k>7{hY2 zXg5nRcGbG?_ofOblk@Z0Y&eJmPa#8RtZuvRP#g|b(e-_=wPPS8bL0S#NmaI{)ee9m z00KI)7L0YB)-5<`X%%#)G>r9l|_ z-eI}gy#464MiH654M*A8cVF=&x_|efUag|o8=Vc(lazbttR*R<*{K{(E%)0-b21*s z`{fgOUN%UAD0tdbkE?B(gh}M1vt)ZErPg|w_%UZqegJDLt^eWu4|mmKUljslPo@Y0 zfc}{?${6R2aUqo8TyeoTBSr*Zjp_P&pRe1dQ~)ne&pZwcOr!*N_IxtYM*n!f{B$VS zb;o5G$)K;gSC`LBU2oPa;p{Mr$K#1cdHt}yTdb<4bdtuG^LRWYj*NrkTq$vEtRa)S zZdM=OdIF>uI?n38dpsN#b+f5kU-^-em!rYhQ@&t=nMkoLjV6=PY%)0%)nc_zlOzh% zJ}=tF`Vu4MI0wym2OL${a_=weO3W`VoG0xd^*oYUtgVleK~t|KE0TZ(m~Xi z)`Cle=xRF2qVWCu8$SyC&;w*bsO#HXYnxH*gS7;NARHkANX{akhe{}Rj1SzlZr-og z4S^JLmV}qtkOAIrxA*zplFO9$Vm!%|$EfFwB!kpf99@yOLFoI6=T%oVnh3b<1$BZG zA_GTAmPyVy00%B5=M2djXQc9`<8er!^SrK_s;>F}_P_tHQgo}w`#F+|{;bHD&ma;hG0T-Pf5`F6%!!< zG`g#ao_e}zap~ec4=@_c=3{QdO!oi)AOJ~3K~!|z-R;vaUw{3@*|@C_#1-fMwyrl# z-D)@R2d_`g&eKTf3eW*C&e+-fr3PujnGgt%pFS3g zRhms4S4#M^!T54CxJZLo0Ylds^I^5#Ha1l0`C#;XIvRMAIl~z!&J|~#C+fN_O4A!+ zjE6zcG{ttmsSZ148ifu4giun2$fO^qgV`wyrGv&aJKa{gZ>Vo0UddtwY3z`-l3_{@r)KeswwkQyulOW!rA6a#@yld9^6o zWmP`rdD(V(-xp0^8&_J_5g7y0^9@jIOy^vqHE^M=E4yyn)~o!mZK|esx+72eli|ph z96%f0Rb`>vVW?VRdqzOkI%^z}vkZZ^b=?*P*q#e6xQYckjXkKF#qGnPD0?(OMsf5N zj{-g(#;5b~$#goI4o_yY)A?*L2+-=TuYdmeZOFs_@>k!@Q_tzjk>!j7!=h`qRkbP$ z&3Sg3$p9P~Aw<>d$Ew@)T6t<1h5|*ebz`AntZKVa94AU3nb;R;5Eglz7d?UuxX5Ce z4un*!*l!{zCbIUZV~jWxM{$sKmJFKCYGbT*9GQ>-<6;!6i6^K$w3}_YKdiR->X0ih zkV07Jdfj(@f6OPXBTeSh`;YVC=r_Oo3Up)oj&Wgt->tSE*4t0}VpVi`uOEx*ZoA8? zsxnqfWvK7__VZE^xZ@xYJ`a82GfomYg5!d5CJ4xr()SZ)H3I%BP-qe&Nu z9sm0Rz)?>K4v{fHaa=eB&JY2Bp)ke)05X&zfBJv04Cw@9; zibgwo_KP?1`Kax>zG_Wtbk~GwC_E_`GgW1qhD-I>!=LxYJ9&O_d6q&#Jo#u#G+YjcJ{==y2@E-#&YB zKAL7;=t*zaHh0@y-u9AgvawaLrvT!&@KlZ)QG|kQO(H{)rD40%0`^LSySy-@9 z;CX^egi!Lx_qs#=!+-c){-MSY40(wkyqIRwSdCIS$-I-vaQXiJ>3V6p zMk$<3()na;K-_JM>&5Qwad*4kJZ!g{yjX14_fMGZlY*R{Fr zXrbkUkw5RcQUxzwUP*>GpKeUk|MuH2-keU!cDs5fJb?groBeg(_+jwsWR?av9VMKp zAK!iyo(v-;q+m?F`*_!Mb((ofN&s+{kfAmD>HSAr9sI~A00OovyM0wp;`sG!ewAe* z=T+A)Hk&AnuExXX!))M7=PV%zhJc_=51bcOy*)ICqCFHf0XipoO~&?uG)J(uch*>K zyS(i8yLz*1i#4?!kaN0&t`5+|N)m|sea-*J|K-1XxVta*-OH2b-+lQq42TOG1oCma z{y=@Cl~Ac##+W8^5x-vQ9hQl%NLdHE8Rct z4^MTqwFvQGIG@kvqsb`EV&zG;Ts{rFgqW1MSei>}$$O#`eqpToh;dc9n(%1T?3sC$nY z-yi55D{IrKw9~91(%2)_PMl+p4cD^~emMwrG)C6#J%qEc2Qi6DssV zV<~UyL!%pOt#ce9QlVrLK{#TB(pYS3Ef`PZAPR((s123-g9mkhS|S2xKtPTm_p;Mh z(b*T#>^vGxL>Lh;6@b7-{Z7hv7EplNTtcv_*x4+&Ow|Vtg)Q?5=xZm%JVqce)={542um^^~eIJ-FFQ|el#7&k~sp{9rC`)GuemG2|RL>s2wPws- zOorSM0y2gS(enZ+1Ovt#Xl;O;V2W``gv|F1vu#^CW1Vx(IU*zn$LjOvD4KvFJK6^s z=Z=7*jHAptI2OV=xVju_NdM85aT(+-w-l$H}&+ zd@qco;!JL;@^)A3Is?EzeY}%laQWr)x~YrBs^4y@Z9M7qeb*UHl8Y?seZOK{Gs*p6 z-NX0mdhqPc#l;Chw_2}1eY#sOw!-j}Z1UCf7vDU)dU-K>elmJ>~tVQW{nYo z12U~00@}_rheKBu)^)-YK^TR;zk6IRHtTFO48t(XMwZm|Vsp28GR`Q;{J>X2arE*I z-){Hnke(~)% zjGXD~-d=BtT-(OFeWxuGlQbR$K0`#H**HUB??2uOUq!y}NzNs|zFls1J5TX2^f&_J zsB8EB|NFk%?@rFokP8ARyEgHIS0~dfkQ{)>8EYa>U5Dcd&^Ok#b%$udIR+r4B+mW8IGJCm!IVkA$q(zN$Gf8WSlcyt zJQ?zT```cDNi_fKFJ7OHxCFi2Y!_u+8nn`n zlBRiH-s}(i&PeW!CbQAS8ToX#yT94)OXTq=IX#<`icvNb=LsU*|MaGAMUlZy?RWXR~2>dw28W`+Q&eo;W!j z4YF)g)E^!mcX>5BJ)OR|@CQEU48Rc?0!N4hNB}YL(UR783^ZeUvBE%LvvW0t~OoU?ABZx1Ma@DKOW!-!uj*( z&z@Zbk^{M3_eEcoZCRF;)>?Ur3lS&T_04_PcPF!{LI7)#Il&=PY?ef$$e#pi7KfLk z?B#S62+%-lX)vn_FQ(4?=y$!-AFI+Hh32IGh*|Y1?T<^QV>G{>wd0poBw-1|DaWk ze(~(h#blNRz|HM?(RA%>G=QpVZJ#5f8$=>x{9VPacdRb3{7yc))qr)JD6p zpS(OhV~iKtzI$92or(P5DjPf>4SWv3V7b}etv4M20-L7s>&Ylnav1rOAkd2^*dDlX zz(9o3QfG}eO$T72NeJ@uhlfI@(=#+GC1xWG4!OTq&!kb zk4j1hPP@*yuJ3BAJ9e~6a;7BboHJBKQ=d;pCutlg6wCqvih)CuU4z|N_P!{4Lp~|B96SlFqurU*>p4K=&RFN7Q_iES$A!%?Rb!k zgP`mBs_#8djzT{ayf?Hh>fY%rjuca2Jc_3C`?C7^X}Q;ZG>A^-qxmE|oeoZC*=&?% zv7bhM76+4Innuybk9V0T|MsuG;?6pE99!_-uw7?!Z7mbSIKIe+J{Ojt(_LruFdNo| zUOw&|8R=2%vnUMrMSs0m0PgM7DL6-A_yvn-j%$|nuL zh{57%v)gu;m#4q^)i0C3{P2&z|3j5cMkgnJ7LLMToSc`P&Z}nK^~-$gh?o#k2w#QL z^YY#1Yv;W=OH}9y!PdoLd8m3B_C@(5gY)@CeRsXBy9KL;SF@@<{Nta$U*v9bb~%|O zl92%DZCln|+i9aUIhXJ2v*F1g4!CW>R=1zR{r(p+epnUncYjPzhvSpk`E01!aJMaf_u*aadBZdw#ZjPm6nIi7#XZS6 z5-^~e!88_t`p%GX0znED z2*1hq%Y1otbvhZ2?MwHkcW-@Py*Zzot^;D6qsRF?@uqQL2?&UD?g($5)@7qP`lB$t z8fQZVg6#cvyUh2w0S;^wMADIi-dTr808T1o5_H`uFIXS;y8~In87RQC>>I{AkMYmK zSf}&FO}$-d3&J1z=@G+0L}f&0{T9G>WSrsM`|yBXQl? z&n~0Sb3!5@XOS_^McZ{;1)AB`bdje-&lrFuI?@&dXVw7#!I7i{_?e~*?sx+cz=1Uu z86p8NLU5coJJda2?|m<7>drcgNRg*rPp4HLjQa1ceF z6w>#EFC|B=4OLA$vUZR~hcbWn_TxMm{_Su7YCeot+s*Cc{Wwbmmmi;Yi$j}w*mV8q z**W+9K!uOx;ZOIAlPF?GUZw%Y1Y-b<3Bpk_2$Q(Y4}IAiYYmY^*7a2&#W&~E*z+Pu z5{V&J+THKVnlM)WFo-UO8AIqy-)U2K_8^#%A~4qIzN?ziV5nr&=WVgB`l<_+N6tFu zKro_~GbM%M!gq)YBr<6oIbRdlH+^=uE0#aJHCK9aGWUJ;>iKCoN%Q>B*6pV5Y*Tqb zbTS-}=}cE~V2pWWkp4y23UrDq2*T5 zf$5*_9+&%SFdBaQ;yh5i@7u2L+OE%wzG*sbjUy0T1b)!9T2lAhUw)Twi^apk>*uFY z$fazlgQS(qwk1FnAk`pbu>yN7oVQ2rY7*4NlGpgmJEH+oEgprqjq1&wn`| zWqv@099bYUiM>v|g>A`(yyav~S#IjLR%=UmeQ58&%g$a7 zveffb-Zbl{m3Ve`xn8Zivc9~Sf~zMI!!(Sz#p!7D;(W?% zLu3hD-E_i_0--$RF<@DgTxDTZM8>#4af!Ct+!fm`RoYhdVY6m==acuFufHyt{r>IG z506_uP6n5!)5*w;BCT!Fo9%i>#tMc4Ay9Ga=#mE{2md470$KoPf-}Y3}z21AH3#XGuDVqT^<$ z5X?CHcqk8TPl3lfY+G%55=?oXu;c&|Yqhbvkar#WopedL2{t+zgNnIDl z#3!%M&O%QXb^f?mH&rh{PJ`iPHVHVd^Zep;?n(Y1e)qf0-Q(qpD{m;_<@5J%KU7uw zt1q8V!T^l};z;QJxhDnWineLHo=cT_feGVkzq5?B$0y@4LncS;pNF_aKvs!But0J} z3_4v$L3~sN0~zZGk)x1k1b{iZg+C*dfe;yy!(-TE$uh?UKQ^WvG9WaLx~>a@7&sch z-dJmTrMxT%ILD^1e_A~Kc)eH`T{NFfXVWwem6DP%<}5Hk1^~nXlw_VC5VAv2zI*rX z_4(CrzWhR>)uu*<+sfQm8$VEW*E$9$6d`g3^NX2tB*$S1R5n`MzSlhi@i``ENEYM3 z%Y=)S+z~kEfDi~`p}sgd5kfK|Lg%bSV8--=(3=j^f#+vQjEo+3o4m7}Nx@`%a+>d( zzFjKLUDq9+7C=tdh1Is*w_YfTIU<9tJ}hpy@(GcUa}~)rQ(+9q+k9v8m1J%*9ySI2 z^!B>6@an}gBo}&04P!QntkH%X0w>cpreP9&FYSA2>B#m11VF|(6{Itt>G*m|f5d&8}@Ov$IR+TYzr$#6a!^_~5PA3px;Uw%38LfcyeaLx*jvn<`# zt=7f?Si~rhk*^5D#+ZM4`|f&`$K%=SFJA_MSC_@(zX3( zd;NAPd7ekkAYdrq#W)QM1soG4HizoN;m{!}=f{f2o;n}D`uG3m z;^Pk=(n*lbv(aoedU2MQ{nKv$)7|DLyJn2iP=!h=E;KpQ>-jML_Qea`=*`EqxU`eg zi^{m$ZT?smZQqRJ=+$&ySM_SUZ^Aa>sH6l3;G6(Eih#!6&pGzJ*dCg^Xr&)T*6G_HF;+{fDmZPG_fL7zKx>6w*WB077s~J)a4b+}=Dst?ITT zJ_z_ARHyUt323l=xm@l)-VR7SzkF^2_5SYt)Ajx1<7PXKSSWdkOG zilX3Qv%OodU!I)UzR8k!B$X6C=ys78TI*QAi_xv=Wud9o{gNT1S)II{lm(& z>?}S%eKtIqM2azvNNA0=WE~(ngiTenc{LkNlQ0TGe^=*z68IdXg8Hype7Gq;-MOj* z4Z7(Zf)@>f*&KcEJoQC=zIj;Io4SYPYO~_LVoC_#6I_Cn(vP&mL)U$HcN0aEmnYNH zZ@xkX4sloRZ?@Zq{k}Kmi_}=?d)97)hSBEwV6=NpwSr{o> z9&8UF&Hw#R|8)E5)7ja{$!yM$egEMmuez^aJewpT84bh`?C$2)wf*?wx$pZg=VK`( zpd;5ZVuY-2yJ4KXjMCKOf;%FEOfZB>_m8{0*EUI#i&<0;+q?U1QCiNxx}(@mI6g!< zG_HYe6JZf@hTtT#Xp6^BH@Yod(>m_oHDZlvI6Hkg8AhRMyXNWfp(a8YLbh z5CB;c-9Ikw?jGce3*T2?eewF|_wWDxAO7&Kzy4|*`_4J%7$RAxopYQk&Nu<}h5{MQ z2IDk}2Z2&ZL}pu*k9ozFe;S4-Ni^^{ku?Z{GvjEr&ui`CaZ>EsI`5fK%Jcf(89>b= zZFx}(MKV-vEP4bBWI40lVXpaz1bdCMLiu&P6y+VF^N8 z6bEE25DG5PaicqOwreYa(hE2`EtOJ|b*(*8Hr$a7%8uR8Bfjhi5k*JjtmWb}$D5;I zOc8-%_;NNaoA!Rc*;n=XFiVtrc{0CW@9#E+$q)Sx@8YJnwijM7IytqRt!`GUx1S94 zNhZT#C{y9M0gERWuSA%YyB)RVDD*z;>*DEd{_NHBtJ(GS>hJ&X)33jNIZ0B`?zojc z41?1o(xwy0scVb+5XZ@;)qi;V@zB}x7q2GMao@JL*H7i4NR;<-GRvYU_N3q(0enwL z!GXXy>b2pVfi<&9f)HEXS>r(W#7S}*czjj1%Y9KA9eVx%S?qfgUn!s^!Y|Q?(r;?`^LwStmOb>rdOkXmmaty!^Yr@dK|#xhW5i zWz_)#F3DLAdKicA7MqWor$H!Qj0UOlB^P%;f7sn#zxnH5XKAqAm#(rsS?k=^YCy1- zImQ4y)OwwF!E`nnjq`o+c)v));J3f{YC6pLzx#Lpa}vlw5;7phg+nO2y4J>mAjdo} z8ij+4ED5-7x6AU>DoOPK03ZNKL_t*UX8Xh2^1~ezR;Yv}(QuM_&<4dJb8ZrQA=9F5 zLPsgWOi8Zwq1EwZ20+N%&0^vE-Y7~qk+FsVV-?g*69#`nK5pu|2a8;ACVFe1%6i*&p688|xU8x}RVgJ* zv48ldKX%tE)&d6~2suYbWWc7AK|G2!j}P5??K3wB)U(s!I2NJpcvZ5p5=~uh*HzQZ zW+$UGYPzdks?NwPGpwQTZv*z?}sd``rP6A>Ae zSyfq+x*HIPzd&CgaZ4j1afLwqHtrBAs;H{W&d7}M%-^)<(PwuvTU_i&@gLlM`7(Ro z=P}k1YStT3F{%U*9p`0WxIGxzS;*1xpU+{V4EV zPR0P8gGbP4^KQNb;oMB7sg#1W??4iJf}H`~WR+2zT!{=B>9*Lf zp{O{>g1PStb@T_*yO+~ZYN=Yx7pH9z%HXm$`tsu9)z#SZL4)qf4m*1_?azk2?P|5$ zY=b0nl#1ebvDrO7tsKvf!cd~@%o**^PRpk@&;2M7Tn-1laTFvD=k{Dghy5uF-0-eH znufk72*?02hFCPs<95fT-;2^w5=5@jtu-3JGDH%R6EQCc2ji*1pzN40QKDuXZBupm z5eQIu?+X2(z1i){UOz6&{P}4u$+??d-p+;>!+3Yxe*g4v>e|bG?`qIf0!eqCo+pzeY&6|JE?1j9336O6rF{PW!}7-uqsy6>M2s52I^gDCxa zKuClPErK3WK$QRl zXGkj|BAs~4%)e?cIynxbM0`pwYG~+omeZ z{o$})@7D9}a=BS=4#!=#U1wQV&*#gY=l}a(|B7|ZPyhI@?QTE0yJ1|qjto7wDeI=K zUrdMNIC@wv-*0!zqTS|A;Q0=+Q`7D`Q?;4_Q$h(L8AArv+NLaz>;1OwEHJ^iQ+K9l zN+uau_V)eb{#2w%%o$0t62OwxNb9W3J4oU*;+O``x!vk`PS{Vh#j0*O03t&|>3D9E zRE^eUE2SfpL@)&4q{DD>RX62n^{F{*PN)3M!F<$#KfS)WyBQ36qh62%?m1I#!FIZ> zn}#e@`Kjv`AP;%D(=9b6cG@x&=k1pZaV~sw&N&xS$aCcTjDcp1agLU>p;qhMw1osx zQfgq8ZV`|(UU!YLZJI>T>ctQ5y-X_&mVhfZxE&8(%<85tb_YL@=|wC9BsAwy&wS+# zMk*Q^64qLd_%vUVtKu|?<8*hb9v3Uul~Ld*E)h5oI9!BM1&+J>@bK|>-x?-*XeKyl-x9zP`Ph^`qF6O5%32e|TCUXRhMfbR0!hSDS3_dP)EX;4MMb zHbM|*jDTClwt1QBcG~aF{9qhwxD;-*a3~_6KplKRTX@<8gO&F$}_hG1(YXRE^{;@!YO4SyMU=?}xq= zB5&G#ZL~FsFF8lsp_HEA>#fS{;jrGdWets%2wsS8!h=-BsR&~0B&6KosMj^^!>9R0 zfAF{8d^HHYx~};D@xT2i1Z&9@bwPqDA+_!fWj#p;)5!06s_#o_^UZgE*#6p5IGoWHxD*Fo5ujZN1&f*%iu_2TrayVqY_jnI^mgBLg)En|Q}?DFQ} zkge)AZ@SR+lECYXIn-69yK$0+j@%d7=5$!TecwE;olYa;(fB&JxUx!UT|rxA^Tlz# z&}A+Jc>T~HhQbHQjl)gq$i5>6u8bV9-tIc?cuAxjx!mrop-GyWt}45lBc!ee)@ooD zojB?bd;Ov+c169D%i*;EZI&-Q?3GcesoA{of4$)fE74=Co))Hr|-wQ|MC=6s>HO5lla}K7{U0K$OT937gS>(usK;@o@|CAXT zTwGjVNlx?ia{0U&y8V|Imtn+aqbN`?-!I;*HXVss+UrFQV-}Gn!{KtiSnYOEl7zl9 z9Q0ca@9r1t!`}6k>qt*Ythyim@t^8#F}c1&r37b|thJr}B~JvdQo}g(1qa&^86Ybd zE46;VS}QNS91c8Y$Y{rvy`Jw%#Aw|IO<c*qEe>og} zc6o6#nO+RWlQ>Bn_w$>}z>|!~4dY}sbCSps0clquBRHN;aU9fjeZSmihKRAgAKnd9 zXq#i(9(7lDnlUaU=Ui~c8K~`KG9*{oZvi?HXM)ZEHFU#2Bf-jb;NG#o91k*C^oP>z9Ks?yAmat7CJ>l`DiN z3=l(BXZvcqgwAft=BJab)2pk`?k1zekx15*WwqTOR=eYTwS9ix9CmqeDo@9}>2x%7 zc8ABZB%_0(wym`Ye}+FJLqg64G9kHCQgJ5O`F!Hc{{|oe&O2@^-DCnqFCDd(%BE|K ztvi#|?fO`(^XjlYh)ot5VgO7is=st<_o^V}a#GYb+o1drAoaVu+14kNe}X>x5*El$zA))Eue`z&L_SrZibi zW)g)S7eE%sa^(4H^Z2`O4?n%{R(r>hqtEYnKLle$RwvrXwpOS)wOvt^`(t@Jm?F>i zyP`aKzU%tYc6$J@!!#jl0WfrU&r_jt>!#V)l|bzKexQ^u1T)4GMS<%`=|<53?Em}r z-TiheJUJeXE@zYJXfPi1`)L?QUL3e_=*FRw#y(hjynp=sYWjCyf8j7_wYH4&|Mh?W z9}xi&SBKrIEV*zZFKFw!Zff6k97b5@%RhcsynBMe2oea043OC-Ka|^LciLOss6cqB z$6S8qmkY;ZDrnnIAb3J7w|f@Ft{-_)dcL&hRDP@ob# zFY^87^w(d0bJ6p4QzC)uN+}V*3MM2IfulOzRt8S3wm@94vTd@qZ7k$XlNB}Ns?1LL zr%&#wWLA*$Fz~{Qel$)FyQMBmL}V@xCVo6k{4})O5NZU{ofTd$8eeJ@f{cS^zTJqZ z=f|<&@bTdu5YpI}NU?JJVHEkEB`{nu#>TNf3|tpkUDaf5n#6eXiY8`{a!p6^sM0X{o(D$=Vejtjoy@p zqG|HFEZeH;x~gpffHSmh^Zfn$VwLqTE`;NB)-LkXDl5i=5!%k`PAMT7p1;SYDK_ta zj0GoDhobHbb6vNrDlna|$TB(@+-SLMokuM`l-3zuOlCtc&0?{{7Jqf~;`NIeqw4)) zzA3AH)h@EK12K-`i!}BmZ~$Z=6`u}=`}OvDz6`^_6__MJ5Qod->CMOaKFbX!?nvcE zgR9$M7@uYG4DrlwLL|mWk~!Re?DA6(M22xdBC_-2F*6kVe(WgFnvlp62aIAlNWCNt z@*=Oxj=)BNUsZL}wT|pMqUWOdP}+s|me$*XKf8VDD886K+r0VhmtS3vdq{25wClXt zw{2teWzv5+=nGpL+i@=Pym|Y6e#qO=q<1%)o|emxKmODfjo|3Je2_*-+G~-&e|Uaa zty`DXrZr%ha=GJYU3b5DXu8Ib?Fqh`U2*`kOWC%cHfiVWafRHmp<_gzWL8r-B zt*to+d%CXHU5!9wHIX4YbFm1|FEE^WhXg>J^Izb@oN+{COlvCh=8zS;JiA}6|K+4T6_6!3I^uin=94j*2k` zfE+pg!r%}>N-5NtR)&axXAdyrj2P6OqfOI*#$IpKnXc>_BziF#U#DpzWhiB}+`{hU z7|W!XesMSb`ipQn%??F%IK@5R@3{!ZfJVlo8*nd08Ia+1Sv5@!RtqIU&n>q5<$5Ip zKa7JY^gTB?oa%?=?s>aC=BKPW<#n~Mifz+8m8Iy%lgXg1>!+uABE7%<@~d$YQP)_q zcm|j;&KSm#H|j@@Kp=Z=)Dfes*6X4( zz>iPM=YRW7FSgKhZQU4Z!-4Ck;c1&S$Aimk67j29JdM@F5mVpm3pNyxAX{&CE$2xZ zyHb68S}|rvy#$E>43K4D0ce-igfxl*#lTfE3B7*cyHaFj{rjKaef$1{2)q|BZZ4+7 zB=pF3byd|(T~+mVzuz5p*{NunigUJK?*^g&>(5`U<{NFT?>hoG|BwIEe?%r+-wQ`!v_I|hwhffrzI~s+dz6|3cf83=#EI5qO+!uHW~B_AV3PWMk9&v$xZsG= z@so6V?GL7wbIHiI^{0mgbAvF7B!@JLxR8gUc-|Zyx4Zkz=3%{i`@97=9`s`dhJfZz zt1m8ZZw7H!HG*?Oz0Xhc(_vfHh1M-tV9WxQUE2XwZFj0#v%S9ba9&BH=C`lYLz(2%y%P!+`t(sgxnefRs&kc^P|CpxglfJhN0UL)O9C%<9kGk`anEO}BVl|Mu%&M-F>@TuA9hzDrgsM|HZ>+P;{L zs5`!2Jl-D;&xccMC=F5u%y*q6R&Bm1K0Nt*y?b2G*PFU&5MYqRmlu;DiW<%HN}uZP zRO|VE|Fk_l@3Z^W@?p77<6hu}$#jxlU-Q7Lw7%c%?z6lyFbacF7%X>($K&Zxmj)p4 zgKBsD^t^ZKR z*XGk=`*FVN9I1VNYRbmw)^xS$T4OXB!++aK^-sqwoUS4SidDSeA*`d`}XReVT8!tHa4iw?!lfFU9SvV@GmFL@x| z7%FPJK9tY<%#EV!iz(*@9lkppmY-IyF0TLmU;Jt|@CEOfHP&b_)a3Q^k00w(lg_5h z_cqz-(`t*Kq}^}Zn+M*F&G zb;prQuDFmwaK>%hW=&HV-JoS?S>Sp}6a=oD73F-fyqu05!GQn-YqjQ_#X;yurMs?Z zTi0=8M><@z2KQC9FUw9-b!uJ5iPNyFn{u(Kv*Og~b(!zmHk0Zo+Rltsvnlj^W5pIYIRXI zZASo-kiq$qo}G__1!r7vA%tR#A%pXQ2j@(1jvQS_27({g8$*zHCTnYLP3)*}IuYTarwoHKrYih)TX8RDU8N{joZmYk=4&~{W9cB(rf(+k{Cx=jbG zQ&t!#_u2Cwe&ELww;F`#UCwxv?B?6U$H(q;6w3M|Hyn6ep)su!hrP>NDSW28fDyBH zc{uvLG)WR<>civQ0QGw*BP44P(Up!h1ZW3ItRux{Hj7|i@+;KajMQ^bddcMosc`Z%17gpyI@B++Hvnx^Z(GUB4AloHC?R!N?n zGGEHsV5nQoICj)6^K71FB|!&FH8!bC;KHFmlw6!^16p@g-4s<*H?6BY1Y|zC=>*{&2DZ17m3h6kp7ki%Xc}g9U_Rt6c};s-F&g1zKlSrL9%UDJpY3wL<7Y5`KL%$=<%%Jg+`1PtkZVoQ?)*H0~#L zt2euRm)GG4^L00PtScOW;Yj$ zx_$Vxynk4^<0PIAyk6MvyMshFZIqW)mAA`Xc{H{^>5HncO@m~O!85~|kQfl2Db5H4 z#++rpi~%u@OzYN=;XtRd_%#25fNDc zv|zZV#`U6?cUM5HwU!|mtqtJ({y}Hezx#{7zMAxHlXtZ-mKXzMLR(@<_{D$wUvP#( zIb^M?ykoYVXY-p;|00ZqP(rwi^=4k^LEzpEdWj2h;LUoy#d6C@C(3{GZm~VpV43ep zvShU-0zzU8#4npW0w5t-LLv}=^Z9br8@dimW|N0c^MCv9&EI_UMIfcsCiT47b1hL; zR%M=@3~lpr6a<3NWf}%bu1+Uc;Ph@BC~0h0N`9|cMo`ryca<9UNN@s_N+MaK4OD1= zlG*U)?y9Nt`SVIx_P3wE8ucPDwPc2ITX)5W)n;24pD`4n9Dnu7jR&k3JhsQKgBF

QLF&Mo_pFA!cyo3z0jFOfzMf9mU&s{ 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 z�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

R_A)AZ=}B{GrjcwU${s2aJG9JKncd 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%0D~!~FLK^FFIhsz3`E0y6nw*|3YFjU# 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

)%&&3LM?G@9vd}p>10pv20e9%*F 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 yNH7ZBm0W~{#iZWfcn`KpFs2 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�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 rBm*Zx@%Safn9xXTtp|&hHlo^YyTcIx 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

#TLiS%N8}td(*AXr)Sge-=lB?7Lx*T1%~sRn{3} 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

dK?p=0O(7;-!*c!UY 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[d=69 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

9^L(-1KCM}68U>Kr&2IBFA0JPO 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 Date: Mon, 11 Mar 2013 17:21:31 +0800 Subject: [PATCH 0013/1333] remove the OpenCL define --- modules/ocl/src/stereobm.cpp | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/modules/ocl/src/stereobm.cpp b/modules/ocl/src/stereobm.cpp index 2f24881ddd..39a22eebb4 100644 --- a/modules/ocl/src/stereobm.cpp +++ b/modules/ocl/src/stereobm.cpp @@ -12,10 +12,12 @@ // // Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. // Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. // Third party copyrights are property of their respective owners. // // @Authors // Jia Haipeng, jiahaipeng95@gmail.com +// Xiaopeng Fu, xiaopeng@multicorewareinc.com // // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: @@ -50,37 +52,6 @@ using namespace cv; using namespace cv::ocl; using namespace std; -//////////////////////////////////////////////////////////////////////// -///////////////// stereoBM ///////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////// - -#if !defined (HAVE_OPENCL) - -namespace cv -{ -namespace ocl -{ -cv::ocl::StereoBM_OCL::StereoBM_OCL() -{ - throw_nogpu(); -} -cv::ocl::StereoBM_OCL::StereoBM_OCL(int, int, int) -{ - throw_nogpu(); -} -bool cv::ocl::StereoBM_OCL::checkIfGpuCallReasonable() -{ - throw_nogpu(); - return false; -} -void cv::ocl::StereoBM_OCL::operator() ( const oclMat &, const oclMat &, oclMat &) -{ - throw_nogpu(); -} -} -} - -#else /* !defined (HAVE_OPENCL) */ namespace cv { @@ -290,4 +261,3 @@ void cv::ocl::StereoBM_OCL::operator() ( const oclMat &left, const oclMat &right cv::ocl::stereoBM::operator_(minSSD, leBuf, riBuf, preset, ndisp, winSize, avergeTexThreshold, left, right, disparity); } -#endif /* !defined (HAVE_OPENCL) */ From 34998b60343e2c024818dbc094211d5bba01111d Mon Sep 17 00:00:00 2001 From: peng xiao Date: Mon, 11 Mar 2013 18:35:30 +0800 Subject: [PATCH 0014/1333] Add ocl::SURF accurate test. The test cases are ported from gpu module (masked version is still missing). Key point direction definition is synchronized with cv::SURF. nonfree module dependency is added into ocl module's cmake file. --- modules/ocl/CMakeLists.txt | 2 +- modules/ocl/src/kernels/nonfree_surf.cl | 22 ++- modules/ocl/src/surf.cpp | 54 +++++- modules/ocl/test/precomp.hpp | 2 +- modules/ocl/test/test_surf.cpp | 227 ++++++++++++++++++++++++ 5 files changed, 298 insertions(+), 9 deletions(-) create mode 100644 modules/ocl/test/test_surf.cpp diff --git a/modules/ocl/CMakeLists.txt b/modules/ocl/CMakeLists.txt index d0e254d3a2..a9ec2f4a0a 100644 --- a/modules/ocl/CMakeLists.txt +++ b/modules/ocl/CMakeLists.txt @@ -4,7 +4,7 @@ if(NOT HAVE_OPENCL) endif() set(the_description "OpenCL-accelerated Computer Vision") -ocv_add_module(ocl opencv_core opencv_imgproc opencv_features2d opencv_objdetect opencv_video) +ocv_add_module(ocl opencv_core opencv_imgproc opencv_features2d opencv_objdetect opencv_video opencv_nonfree) ocv_module_include_directories() diff --git a/modules/ocl/src/kernels/nonfree_surf.cl b/modules/ocl/src/kernels/nonfree_surf.cl index 69f64795e9..8cffe3d93a 100644 --- a/modules/ocl/src/kernels/nonfree_surf.cl +++ b/modules/ocl/src/kernels/nonfree_surf.cl @@ -78,7 +78,12 @@ uchar read_imgTex(IMAGE_INT8 img, sampler_t sam, float2 coord, int rows, int col // dynamically change the precision used for floating type -#if defined DOUBLE_SUPPORT +#if defined (DOUBLE_SUPPORT) +#ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64:enable +#elif defined (cl_amd_fp64) +#pragma OPENCL EXTENSION cl_amd_fp64:enable +#endif #define F double #else #define F float @@ -892,9 +897,9 @@ __kernel kp_dir += 2.0f * CV_PI_F; kp_dir *= 180.0f / CV_PI_F; - //kp_dir = 360.0f - kp_dir; - //if (fabs(kp_dir - 360.f) < FLT_EPSILON) - // kp_dir = 0.f; + kp_dir = 360.0f - kp_dir; + if (fabs(kp_dir - 360.f) < FLT_EPSILON) + kp_dir = 0.f; featureDir[get_group_id(0)] = kp_dir; } @@ -913,7 +918,7 @@ __kernel if(get_global_id(0) <= nFeatures) { - featureDir[get_global_id(0)] = 90.0f; + featureDir[get_global_id(0)] = 270.0f; } } @@ -1011,7 +1016,12 @@ void calc_dx_dy( const float centerX = featureX[get_group_id(0)]; const float centerY = featureY[get_group_id(0)]; const float size = featureSize[get_group_id(0)]; - float descriptor_dir = featureDir[get_group_id(0)] * (float)(CV_PI_F / 180.0f); + float descriptor_dir = 360.0f - featureDir[get_group_id(0)]; + if(fabs(descriptor_dir - 360.0f) < FLT_EPSILON) + { + descriptor_dir = 0.0f; + } + descriptor_dir *= (float)(CV_PI_F / 180.0f); /* The sampling intervals and wavelet sized for selecting an orientation and building the keypoint descriptor are defined relative to 's' */ diff --git a/modules/ocl/src/surf.cpp b/modules/ocl/src/surf.cpp index e2ac21b972..3a9c00dd94 100644 --- a/modules/ocl/src/surf.cpp +++ b/modules/ocl/src/surf.cpp @@ -51,6 +51,57 @@ using namespace cv; using namespace cv::ocl; using namespace std; +#if !defined (HAVE_OPENCL) +cv::ocl::SURF_OCL::SURF_OCL() +{ + throw_nogpu(); +} +cv::ocl::SURF_OCL::SURF_OCL(double, int, int, bool, float, bool) +{ + throw_nogpu(); +} +int cv::ocl::SURF_OCL::descriptorSize() const +{ + throw_nogpu(); + return 0; +} +void cv::ocl::SURF_OCL::uploadKeypoints(const vector &, oclMat &) +{ + throw_nogpu(); +} +void cv::ocl::SURF_OCL::downloadKeypoints(const oclMat &, vector &) +{ + throw_nogpu(); +} +void cv::ocl::SURF_OCL::downloadDescriptors(const oclMat &, vector &) +{ + throw_nogpu(); +} +void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, oclMat &) +{ + throw_nogpu(); +} +void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, oclMat &, oclMat &, bool) +{ + throw_nogpu(); +} +void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, vector &) +{ + throw_nogpu(); +} +void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, vector &, oclMat &, bool) +{ + throw_nogpu(); +} +void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, vector &, vector &, bool) +{ + throw_nogpu(); +} +void cv::ocl::SURF_OCL::releaseMemory() +{ + throw_nogpu(); +} +#else /* !defined (HAVE_OPENCL) */ namespace cv { namespace ocl @@ -623,7 +674,7 @@ void SURF_OCL_Invoker::icvSetUpright_gpu(const oclMat &keypoints, int nFeatures) args.push_back( make_pair( sizeof(cl_int), (void *)&nFeatures)); size_t localThreads[3] = {256, 1, 1}; - size_t globalThreads[3] = {nFeatures, 1, 1}; + size_t globalThreads[3] = {saturate_cast(nFeatures), 1, 1}; openCLExecuteKernelSURF(clCxt, &nonfree_surf, kernelName, globalThreads, localThreads, args, -1, -1); } @@ -726,3 +777,4 @@ void SURF_OCL_Invoker::compute_descriptors_gpu(const oclMat &descriptors, const } } +#endif // /* !defined (HAVE_OPENCL) */ diff --git a/modules/ocl/test/precomp.hpp b/modules/ocl/test/precomp.hpp index c630871014..e8c1aaa1b9 100644 --- a/modules/ocl/test/precomp.hpp +++ b/modules/ocl/test/precomp.hpp @@ -70,7 +70,7 @@ #include "opencv2/ts/ts.hpp" #include "opencv2/ts/ts_perf.hpp" #include "opencv2/ocl/ocl.hpp" -//#include "opencv2/nonfree/nonfree.hpp" +#include "opencv2/nonfree/nonfree.hpp" #include "utility.hpp" #include "interpolation.hpp" diff --git a/modules/ocl/test/test_surf.cpp b/modules/ocl/test/test_surf.cpp new file mode 100644 index 0000000000..c4cf60fcbc --- /dev/null +++ b/modules/ocl/test/test_surf.cpp @@ -0,0 +1,227 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Peng Xiao, pengxiao@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + + +#include "precomp.hpp" +#ifdef HAVE_OPENCL + +extern std::string workdir; + +using namespace std; + +static bool keyPointsEquals(const cv::KeyPoint& p1, const cv::KeyPoint& p2) +{ + const double maxPtDif = 1.0; + const double maxSizeDif = 1.0; + const double maxAngleDif = 2.0; + const double maxResponseDif = 0.1; + + double dist = cv::norm(p1.pt - p2.pt); + + if (dist < maxPtDif && + fabs(p1.size - p2.size) < maxSizeDif && + abs(p1.angle - p2.angle) < maxAngleDif && + abs(p1.response - p2.response) < maxResponseDif && + p1.octave == p2.octave && + p1.class_id == p2.class_id) + { + return true; + } + + return false; +} + + +struct KeyPointLess : std::binary_function +{ + bool operator()(const cv::KeyPoint& kp1, const cv::KeyPoint& kp2) const + { + return kp1.pt.y < kp2.pt.y || (kp1.pt.y == kp2.pt.y && kp1.pt.x < kp2.pt.x); + } +}; + + +#define ASSERT_KEYPOINTS_EQ(gold, actual) EXPECT_PRED_FORMAT2(assertKeyPointsEquals, gold, actual); + +static int getMatchedPointsCount(std::vector& gold, std::vector& actual) +{ + std::sort(actual.begin(), actual.end(), KeyPointLess()); + std::sort(gold.begin(), gold.end(), KeyPointLess()); + + int validCount = 0; + + for (size_t i = 0; i < gold.size(); ++i) + { + const cv::KeyPoint& p1 = gold[i]; + const cv::KeyPoint& p2 = actual[i]; + + if (keyPointsEquals(p1, p2)) + ++validCount; + } + + return validCount; +} + +static int getMatchedPointsCount(const std::vector& keypoints1, const std::vector& keypoints2, const std::vector& matches) +{ + int validCount = 0; + + for (size_t i = 0; i < matches.size(); ++i) + { + const cv::DMatch& m = matches[i]; + + const cv::KeyPoint& p1 = keypoints1[m.queryIdx]; + const cv::KeyPoint& p2 = keypoints2[m.trainIdx]; + + if (keyPointsEquals(p1, p2)) + ++validCount; + } + + return validCount; +} + +IMPLEMENT_PARAM_CLASS(SURF_HessianThreshold, double) +IMPLEMENT_PARAM_CLASS(SURF_Octaves, int) +IMPLEMENT_PARAM_CLASS(SURF_OctaveLayers, int) +IMPLEMENT_PARAM_CLASS(SURF_Extended, bool) +IMPLEMENT_PARAM_CLASS(SURF_Upright, bool) + +PARAM_TEST_CASE(SURF, SURF_HessianThreshold, SURF_Octaves, SURF_OctaveLayers, SURF_Extended, SURF_Upright) +{ + double hessianThreshold; + int nOctaves; + int nOctaveLayers; + bool extended; + bool upright; + + virtual void SetUp() + { + hessianThreshold = GET_PARAM(0); + nOctaves = GET_PARAM(1); + nOctaveLayers = GET_PARAM(2); + extended = GET_PARAM(3); + upright = GET_PARAM(4); + } +}; +TEST_P(SURF, Detector) +{ + cv::Mat image = readImage(workdir + "fruits.jpg", cv::IMREAD_GRAYSCALE); + ASSERT_FALSE(image.empty()); + + cv::ocl::SURF_OCL surf; + surf.hessianThreshold = static_cast(hessianThreshold); + surf.nOctaves = nOctaves; + surf.nOctaveLayers = nOctaveLayers; + surf.extended = extended; + surf.upright = upright; + surf.keypointsRatio = 0.05f; + + std::vector keypoints; + surf(cv::ocl::oclMat(image), cv::ocl::oclMat(), keypoints); + + cv::SURF surf_gold; + surf_gold.hessianThreshold = hessianThreshold; + surf_gold.nOctaves = nOctaves; + surf_gold.nOctaveLayers = nOctaveLayers; + surf_gold.extended = extended; + surf_gold.upright = upright; + + std::vector keypoints_gold; + surf_gold(image, cv::noArray(), keypoints_gold); + + ASSERT_EQ(keypoints_gold.size(), keypoints.size()); + int matchedCount = getMatchedPointsCount(keypoints_gold, keypoints); + double matchedRatio = static_cast(matchedCount) / keypoints_gold.size(); + + EXPECT_GT(matchedRatio, 0.95); +} + +TEST_P(SURF, Descriptor) +{ + cv::Mat image = readImage(workdir + "fruits.jpg", cv::IMREAD_GRAYSCALE); + ASSERT_FALSE(image.empty()); + + cv::ocl::SURF_OCL surf; + surf.hessianThreshold = static_cast(hessianThreshold); + surf.nOctaves = nOctaves; + surf.nOctaveLayers = nOctaveLayers; + surf.extended = extended; + surf.upright = upright; + surf.keypointsRatio = 0.05f; + + cv::SURF surf_gold; + surf_gold.hessianThreshold = hessianThreshold; + surf_gold.nOctaves = nOctaves; + surf_gold.nOctaveLayers = nOctaveLayers; + surf_gold.extended = extended; + surf_gold.upright = upright; + + std::vector keypoints; + surf_gold(image, cv::noArray(), keypoints); + + cv::ocl::oclMat descriptors; + surf(cv::ocl::oclMat(image), cv::ocl::oclMat(), keypoints, descriptors, true); + + cv::Mat descriptors_gold; + surf_gold(image, cv::noArray(), keypoints, descriptors_gold, true); + + cv::BFMatcher matcher(cv::NORM_L2); + std::vector matches; + matcher.match(descriptors_gold, cv::Mat(descriptors), matches); + + int matchedCount = getMatchedPointsCount(keypoints, keypoints, matches); + double matchedRatio = static_cast(matchedCount) / keypoints.size(); + + EXPECT_GT(matchedRatio, 0.35); +} + +INSTANTIATE_TEST_CASE_P(OCL_Features2D, SURF, testing::Combine( + testing::Values(/*SURF_HessianThreshold(100.0), */SURF_HessianThreshold(500.0), SURF_HessianThreshold(1000.0)), + testing::Values(SURF_Octaves(3), SURF_Octaves(4)), + testing::Values(SURF_OctaveLayers(2), SURF_OctaveLayers(3)), + testing::Values(SURF_Extended(false), SURF_Extended(true)), + testing::Values(SURF_Upright(false), SURF_Upright(true)))); + +#endif From 4ddf634c3049125ae323027e4b8b10351603c7ea Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Mon, 11 Mar 2013 15:41:50 +0400 Subject: [PATCH 0015/1333] gpu : implement Bayer* -> Gray color conversion --- modules/gpu/perf/perf_imgproc.cpp | 7 +- modules/gpu/src/color.cpp | 45 +++++- modules/gpu/src/cuda/debayer.cu | 247 ++++++++++++++++++------------ modules/gpu/test/test_color.cpp | 64 ++++++++ 4 files changed, 261 insertions(+), 102 deletions(-) diff --git a/modules/gpu/perf/perf_imgproc.cpp b/modules/gpu/perf/perf_imgproc.cpp index be6eb4877c..ab445dc87c 100644 --- a/modules/gpu/perf/perf_imgproc.cpp +++ b/modules/gpu/perf/perf_imgproc.cpp @@ -1341,7 +1341,12 @@ PERF_TEST_P(Sz_Depth_Code, ImgProc_CvtColorBayer, Values(CvtColorInfo(1, 3, cv::COLOR_BayerBG2BGR), CvtColorInfo(1, 3, cv::COLOR_BayerGB2BGR), CvtColorInfo(1, 3, cv::COLOR_BayerRG2BGR), - CvtColorInfo(1, 3, cv::COLOR_BayerGR2BGR)))) + CvtColorInfo(1, 3, cv::COLOR_BayerGR2BGR), + + CvtColorInfo(1, 1, cv::COLOR_BayerBG2GRAY), + CvtColorInfo(1, 1, cv::COLOR_BayerGB2GRAY), + CvtColorInfo(1, 1, cv::COLOR_BayerRG2GRAY), + CvtColorInfo(1, 1, cv::COLOR_BayerGR2GRAY)))) { const cv::Size size = GET_PARAM(0); const int depth = GET_PARAM(1); diff --git a/modules/gpu/src/color.cpp b/modules/gpu/src/color.cpp index 05d4609001..09986e8c33 100644 --- a/modules/gpu/src/color.cpp +++ b/modules/gpu/src/color.cpp @@ -1640,6 +1640,43 @@ namespace { bayer_to_bgr(src, dst, dcn, true, true, stream); } + void bayer_to_gray(const GpuMat& src, GpuMat& dst, bool blue_last, bool start_with_green, Stream& stream) + { + typedef void (*func_t)(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); + static const func_t funcs[3] = + { + Bayer2BGR_8u_gpu<1>, + 0, + Bayer2BGR_16u_gpu<1>, + }; + + CV_Assert(src.type() == CV_8UC1 || src.type() == CV_16UC1); + CV_Assert(src.rows > 2 && src.cols > 2); + + dst.create(src.size(), CV_MAKETYPE(src.depth(), 1)); + + funcs[src.depth()](src, dst, blue_last, start_with_green, StreamAccessor::getStream(stream)); + } + + void bayerBG_to_gray(const GpuMat& src, GpuMat& dst, int /*dcn*/, Stream& stream) + { + bayer_to_gray(src, dst, false, false, stream); + } + + void bayerGB_to_gray(const GpuMat& src, GpuMat& dst, int /*dcn*/, Stream& stream) + { + bayer_to_gray(src, dst, false, true, stream); + } + + void bayerRG_to_gray(const GpuMat& src, GpuMat& dst, int /*dcn*/, Stream& stream) + { + bayer_to_gray(src, dst, true, false, stream); + } + + void bayerGR_to_gray(const GpuMat& src, GpuMat& dst, int /*dcn*/, Stream& stream) + { + bayer_to_gray(src, dst, true, true, stream); + } } void cv::gpu::cvtColor(const GpuMat& src, GpuMat& dst, int code, int dcn, Stream& stream) @@ -1756,10 +1793,10 @@ void cv::gpu::cvtColor(const GpuMat& src, GpuMat& dst, int code, int dcn, Stream yuv_to_bgr, // CV_YUV2BGR = 84 yuv_to_rgb, // CV_YUV2RGB = 85 - 0, // CV_BayerBG2GRAY = 86 - 0, // CV_BayerGB2GRAY = 87 - 0, // CV_BayerRG2GRAY = 88 - 0, // CV_BayerGR2GRAY = 89 + bayerBG_to_gray, // CV_BayerBG2GRAY = 86 + bayerGB_to_gray, // CV_BayerGB2GRAY = 87 + bayerRG_to_gray, // CV_BayerRG2GRAY = 88 + bayerGR_to_gray, // CV_BayerGR2GRAY = 89 //YUV 4:2:0 formats family 0, // CV_YUV2RGB_NV12 = 90, diff --git a/modules/gpu/src/cuda/debayer.cu b/modules/gpu/src/cuda/debayer.cu index 57322ed81f..fc43726291 100644 --- a/modules/gpu/src/cuda/debayer.cu +++ b/modules/gpu/src/cuda/debayer.cu @@ -42,42 +42,37 @@ #if !defined CUDA_DISABLER -#include -#include -#include -#include +#include "opencv2/gpu/device/common.hpp" +#include "opencv2/gpu/device/vec_traits.hpp" +#include "opencv2/gpu/device/vec_math.hpp" +#include "opencv2/gpu/device/limits.hpp" +#include "opencv2/gpu/device/color.hpp" -namespace cv { namespace gpu { - namespace device +namespace cv { namespace gpu { namespace device +{ + template struct Bayer2BGR; + + template <> struct Bayer2BGR { - template - __global__ void Bayer2BGR_8u(const PtrStepb src, PtrStepSz dst, const bool blue_last, const bool start_with_green) + uchar3 res0; + uchar3 res1; + uchar3 res2; + uchar3 res3; + + __device__ void apply(const PtrStepSzb& src, int s_x, int s_y, bool blue_last, bool start_with_green) { - const int s_x = blockIdx.x * blockDim.x + threadIdx.x; - int s_y = blockIdx.y * blockDim.y + threadIdx.y; - - if (s_y >= dst.rows || (s_x << 2) >= dst.cols) - return; - - s_y = ::min(::max(s_y, 1), dst.rows - 2); - uchar4 patch[3][3]; patch[0][1] = ((const uchar4*) src.ptr(s_y - 1))[s_x]; patch[0][0] = ((const uchar4*) src.ptr(s_y - 1))[::max(s_x - 1, 0)]; - patch[0][2] = ((const uchar4*) src.ptr(s_y - 1))[::min(s_x + 1, ((dst.cols + 3) >> 2) - 1)]; + patch[0][2] = ((const uchar4*) src.ptr(s_y - 1))[::min(s_x + 1, ((src.cols + 3) >> 2) - 1)]; patch[1][1] = ((const uchar4*) src.ptr(s_y))[s_x]; patch[1][0] = ((const uchar4*) src.ptr(s_y))[::max(s_x - 1, 0)]; - patch[1][2] = ((const uchar4*) src.ptr(s_y))[::min(s_x + 1, ((dst.cols + 3) >> 2) - 1)]; + patch[1][2] = ((const uchar4*) src.ptr(s_y))[::min(s_x + 1, ((src.cols + 3) >> 2) - 1)]; patch[2][1] = ((const uchar4*) src.ptr(s_y + 1))[s_x]; patch[2][0] = ((const uchar4*) src.ptr(s_y + 1))[::max(s_x - 1, 0)]; - patch[2][2] = ((const uchar4*) src.ptr(s_y + 1))[::min(s_x + 1, ((dst.cols + 3) >> 2) - 1)]; - - D res0 = VecTraits::all(numeric_limits::max()); - D res1 = VecTraits::all(numeric_limits::max()); - D res2 = VecTraits::all(numeric_limits::max()); - D res3 = VecTraits::all(numeric_limits::max()); + patch[2][2] = ((const uchar4*) src.ptr(s_y + 1))[::min(s_x + 1, ((src.cols + 3) >> 2) - 1)]; if ((s_y & 1) ^ start_with_green) { @@ -181,45 +176,69 @@ namespace cv { namespace gpu { res3.z = t7; } } - - const int d_x = (blockIdx.x * blockDim.x + threadIdx.x) << 2; - const int d_y = blockIdx.y * blockDim.y + threadIdx.y; - - dst(d_y, d_x) = res0; - if (d_x + 1 < dst.cols) - dst(d_y, d_x + 1) = res1; - if (d_x + 2 < dst.cols) - dst(d_y, d_x + 2) = res2; - if (d_x + 3 < dst.cols) - dst(d_y, d_x + 3) = res3; } + }; - template - __global__ void Bayer2BGR_16u(const PtrStepb src, PtrStepSz dst, const bool blue_last, const bool start_with_green) + template __device__ __forceinline__ D toDst(const uchar3& pix); + template <> __device__ __forceinline__ uchar toDst(const uchar3& pix) + { + typename bgr_to_gray_traits::functor_type f = bgr_to_gray_traits::create_functor(); + return f(pix); + } + template <> __device__ __forceinline__ uchar3 toDst(const uchar3& pix) + { + return pix; + } + template <> __device__ __forceinline__ uchar4 toDst(const uchar3& pix) + { + return make_uchar4(pix.x, pix.y, pix.z, 255); + } + + template + __global__ void Bayer2BGR_8u(const PtrStepSzb src, PtrStep dst, const bool blue_last, const bool start_with_green) + { + const int s_x = blockIdx.x * blockDim.x + threadIdx.x; + int s_y = blockIdx.y * blockDim.y + threadIdx.y; + + if (s_y >= src.rows || (s_x << 2) >= src.cols) + return; + + s_y = ::min(::max(s_y, 1), src.rows - 2); + + Bayer2BGR bayer; + bayer.apply(src, s_x, s_y, blue_last, start_with_green); + + const int d_x = (blockIdx.x * blockDim.x + threadIdx.x) << 2; + const int d_y = blockIdx.y * blockDim.y + threadIdx.y; + + dst(d_y, d_x) = toDst(bayer.res0); + if (d_x + 1 < src.cols) + dst(d_y, d_x + 1) = toDst(bayer.res1); + if (d_x + 2 < src.cols) + dst(d_y, d_x + 2) = toDst(bayer.res2); + if (d_x + 3 < src.cols) + dst(d_y, d_x + 3) = toDst(bayer.res3); + } + + template <> struct Bayer2BGR + { + ushort3 res0; + ushort3 res1; + + __device__ void apply(const PtrStepSzb& src, int s_x, int s_y, bool blue_last, bool start_with_green) { - const int s_x = blockIdx.x * blockDim.x + threadIdx.x; - int s_y = blockIdx.y * blockDim.y + threadIdx.y; - - if (s_y >= dst.rows || (s_x << 1) >= dst.cols) - return; - - s_y = ::min(::max(s_y, 1), dst.rows - 2); - ushort2 patch[3][3]; patch[0][1] = ((const ushort2*) src.ptr(s_y - 1))[s_x]; patch[0][0] = ((const ushort2*) src.ptr(s_y - 1))[::max(s_x - 1, 0)]; - patch[0][2] = ((const ushort2*) src.ptr(s_y - 1))[::min(s_x + 1, ((dst.cols + 1) >> 1) - 1)]; + patch[0][2] = ((const ushort2*) src.ptr(s_y - 1))[::min(s_x + 1, ((src.cols + 1) >> 1) - 1)]; patch[1][1] = ((const ushort2*) src.ptr(s_y))[s_x]; patch[1][0] = ((const ushort2*) src.ptr(s_y))[::max(s_x - 1, 0)]; - patch[1][2] = ((const ushort2*) src.ptr(s_y))[::min(s_x + 1, ((dst.cols + 1) >> 1) - 1)]; + patch[1][2] = ((const ushort2*) src.ptr(s_y))[::min(s_x + 1, ((src.cols + 1) >> 1) - 1)]; patch[2][1] = ((const ushort2*) src.ptr(s_y + 1))[s_x]; patch[2][0] = ((const ushort2*) src.ptr(s_y + 1))[::max(s_x - 1, 0)]; - patch[2][2] = ((const ushort2*) src.ptr(s_y + 1))[::min(s_x + 1, ((dst.cols + 1) >> 1) - 1)]; - - D res0 = VecTraits::all(numeric_limits::max()); - D res1 = VecTraits::all(numeric_limits::max()); + patch[2][2] = ((const ushort2*) src.ptr(s_y + 1))[::min(s_x + 1, ((src.cols + 1) >> 1) - 1)]; if ((s_y & 1) ^ start_with_green) { @@ -279,53 +298,87 @@ namespace cv { namespace gpu { res1.z = t3; } } - - const int d_x = (blockIdx.x * blockDim.x + threadIdx.x) << 1; - const int d_y = blockIdx.y * blockDim.y + threadIdx.y; - - dst(d_y, d_x) = res0; - if (d_x + 1 < dst.cols) - dst(d_y, d_x + 1) = res1; } + }; - template - void Bayer2BGR_8u_gpu(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream) - { - typedef typename TypeVec::vec_type dst_t; - - const dim3 block(32, 8); - const dim3 grid(divUp(dst.cols, 4 * block.x), divUp(dst.rows, block.y)); - - cudaSafeCall( cudaFuncSetCacheConfig(Bayer2BGR_8u, cudaFuncCachePreferL1) ); - - Bayer2BGR_8u<<>>(src, (PtrStepSz)dst, blue_last, start_with_green); - cudaSafeCall( cudaGetLastError() ); - - if (stream == 0) - cudaSafeCall( cudaDeviceSynchronize() ); - } - template - void Bayer2BGR_16u_gpu(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream) - { - typedef typename TypeVec::vec_type dst_t; - - const dim3 block(32, 8); - const dim3 grid(divUp(dst.cols, 2 * block.x), divUp(dst.rows, block.y)); - - cudaSafeCall( cudaFuncSetCacheConfig(Bayer2BGR_16u, cudaFuncCachePreferL1) ); - - Bayer2BGR_16u<<>>(src, (PtrStepSz)dst, blue_last, start_with_green); - cudaSafeCall( cudaGetLastError() ); - - if (stream == 0) - cudaSafeCall( cudaDeviceSynchronize() ); - } - - template void Bayer2BGR_8u_gpu<3>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); - template void Bayer2BGR_8u_gpu<4>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); - template void Bayer2BGR_16u_gpu<3>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); - template void Bayer2BGR_16u_gpu<4>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); + template __device__ __forceinline__ D toDst(const ushort3& pix); + template <> __device__ __forceinline__ ushort toDst(const ushort3& pix) + { + typename bgr_to_gray_traits::functor_type f = bgr_to_gray_traits::create_functor(); + return f(pix); + } + template <> __device__ __forceinline__ ushort3 toDst(const ushort3& pix) + { + return pix; + } + template <> __device__ __forceinline__ ushort4 toDst(const ushort3& pix) + { + return make_ushort4(pix.x, pix.y, pix.z, numeric_limits::max()); } -}} -#endif /* CUDA_DISABLER */ \ No newline at end of file + template + __global__ void Bayer2BGR_16u(const PtrStepSzb src, PtrStep dst, const bool blue_last, const bool start_with_green) + { + const int s_x = blockIdx.x * blockDim.x + threadIdx.x; + int s_y = blockIdx.y * blockDim.y + threadIdx.y; + + if (s_y >= src.rows || (s_x << 1) >= src.cols) + return; + + s_y = ::min(::max(s_y, 1), src.rows - 2); + + Bayer2BGR bayer; + bayer.apply(src, s_x, s_y, blue_last, start_with_green); + + const int d_x = (blockIdx.x * blockDim.x + threadIdx.x) << 1; + const int d_y = blockIdx.y * blockDim.y + threadIdx.y; + + dst(d_y, d_x) = toDst(bayer.res0); + if (d_x + 1 < src.cols) + dst(d_y, d_x + 1) = toDst(bayer.res1); + } + + template + void Bayer2BGR_8u_gpu(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream) + { + typedef typename TypeVec::vec_type dst_t; + + const dim3 block(32, 8); + const dim3 grid(divUp(src.cols, 4 * block.x), divUp(src.rows, block.y)); + + cudaSafeCall( cudaFuncSetCacheConfig(Bayer2BGR_8u, cudaFuncCachePreferL1) ); + + Bayer2BGR_8u<<>>(src, (PtrStepSz)dst, blue_last, start_with_green); + cudaSafeCall( cudaGetLastError() ); + + if (stream == 0) + cudaSafeCall( cudaDeviceSynchronize() ); + } + + template + void Bayer2BGR_16u_gpu(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream) + { + typedef typename TypeVec::vec_type dst_t; + + const dim3 block(32, 8); + const dim3 grid(divUp(src.cols, 2 * block.x), divUp(src.rows, block.y)); + + cudaSafeCall( cudaFuncSetCacheConfig(Bayer2BGR_16u, cudaFuncCachePreferL1) ); + + Bayer2BGR_16u<<>>(src, (PtrStepSz)dst, blue_last, start_with_green); + cudaSafeCall( cudaGetLastError() ); + + if (stream == 0) + cudaSafeCall( cudaDeviceSynchronize() ); + } + + template void Bayer2BGR_8u_gpu<1>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); + template void Bayer2BGR_8u_gpu<3>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); + template void Bayer2BGR_8u_gpu<4>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); + + template void Bayer2BGR_16u_gpu<1>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); + template void Bayer2BGR_16u_gpu<3>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); + template void Bayer2BGR_16u_gpu<4>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); +}}} + +#endif /* CUDA_DISABLER */ diff --git a/modules/gpu/test/test_color.cpp b/modules/gpu/test/test_color.cpp index 5aee14d495..81831af8c5 100644 --- a/modules/gpu/test/test_color.cpp +++ b/modules/gpu/test/test_color.cpp @@ -2218,6 +2218,70 @@ GPU_TEST_P(CvtColor, BayerGR2BGR4) EXPECT_MAT_NEAR(dst_gold(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), dst3(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), 0); } +GPU_TEST_P(CvtColor, BayerBG2Gray) +{ + if ((depth != CV_8U && depth != CV_16U) || useRoi) + return; + + cv::Mat src = randomMat(size, depth); + + cv::gpu::GpuMat dst; + cv::gpu::cvtColor(loadMat(src, useRoi), dst, cv::COLOR_BayerBG2GRAY); + + cv::Mat dst_gold; + cv::cvtColor(src, dst_gold, cv::COLOR_BayerBG2GRAY); + + EXPECT_MAT_NEAR(dst_gold(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), dst(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), 2); +} + +GPU_TEST_P(CvtColor, BayerGB2Gray) +{ + if ((depth != CV_8U && depth != CV_16U) || useRoi) + return; + + cv::Mat src = randomMat(size, depth); + + cv::gpu::GpuMat dst; + cv::gpu::cvtColor(loadMat(src, useRoi), dst, cv::COLOR_BayerGB2GRAY); + + cv::Mat dst_gold; + cv::cvtColor(src, dst_gold, cv::COLOR_BayerGB2GRAY); + + EXPECT_MAT_NEAR(dst_gold(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), dst(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), 2); +} + +GPU_TEST_P(CvtColor, BayerRG2Gray) +{ + if ((depth != CV_8U && depth != CV_16U) || useRoi) + return; + + cv::Mat src = randomMat(size, depth); + + cv::gpu::GpuMat dst; + cv::gpu::cvtColor(loadMat(src, useRoi), dst, cv::COLOR_BayerRG2GRAY); + + cv::Mat dst_gold; + cv::cvtColor(src, dst_gold, cv::COLOR_BayerRG2GRAY); + + EXPECT_MAT_NEAR(dst_gold(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), dst(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), 2); +} + +GPU_TEST_P(CvtColor, BayerGR2Gray) +{ + if ((depth != CV_8U && depth != CV_16U) || useRoi) + return; + + cv::Mat src = randomMat(size, depth); + + cv::gpu::GpuMat dst; + cv::gpu::cvtColor(loadMat(src, useRoi), dst, cv::COLOR_BayerGR2GRAY); + + cv::Mat dst_gold; + cv::cvtColor(src, dst_gold, cv::COLOR_BayerGR2GRAY); + + EXPECT_MAT_NEAR(dst_gold(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), dst(cv::Rect(1, 1, dst.cols - 2, dst.rows - 2)), 2); +} + INSTANTIATE_TEST_CASE_P(GPU_ImgProc, CvtColor, testing::Combine( ALL_DEVICES, DIFFERENT_SIZES, From f8985bb7fc84bd682ff8900c04120d7c4285b120 Mon Sep 17 00:00:00 2001 From: yao Date: Tue, 12 Mar 2013 08:55:50 +0800 Subject: [PATCH 0016/1333] fix warnings on Linux --- modules/ocl/src/stereobm.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/ocl/src/stereobm.cpp b/modules/ocl/src/stereobm.cpp index 39a22eebb4..57e14f93d1 100644 --- a/modules/ocl/src/stereobm.cpp +++ b/modules/ocl/src/stereobm.cpp @@ -72,7 +72,7 @@ namespace stereoBM ///////////////////////////////////////////////////////////////////////// //////////////////////////prefilter_xsbel//////////////////////////////// //////////////////////////////////////////////////////////////////////// -void prefilter_xsobel(const oclMat &input, oclMat &output, int prefilterCap) +static void prefilter_xsobel(const oclMat &input, oclMat &output, int prefilterCap) { Context *clCxt = input.clCxt; @@ -110,7 +110,7 @@ static inline int divUp(int total, int grain) //////////////////////////////////////////////////////////////////////////// ///////////////////////////////stereoBM_GPU//////////////////////////////// //////////////////////////////////////////////////////////////////////////// -void stereo_bm(const oclMat &left, const oclMat &right, oclMat &disp, +static void stereo_bm(const oclMat &left, const oclMat &right, oclMat &disp, int maxdisp, int winSize, oclMat &minSSD_buf) { int winsz2 = winSize >> 1; @@ -160,7 +160,7 @@ void stereo_bm(const oclMat &left, const oclMat &right, oclMat &disp, //////////////////////////////////////////////////////////////////////////// ///////////////////////////////postfilter_textureness/////////////////////// //////////////////////////////////////////////////////////////////////////// -void postfilter_textureness(oclMat &left, int winSize, +static void postfilter_textureness(oclMat &left, int winSize, float avergeTexThreshold, oclMat &disparity) { Context *clCxt = left.clCxt; @@ -197,7 +197,7 @@ void postfilter_textureness(oclMat &left, int winSize, ////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////operator///////////////////////////////// ///////////////////////////////////////////////////////////////////////////// -void operator_(oclMat &minSSD, oclMat &leBuf, oclMat &riBuf, int preset, int ndisp, +static void operator_(oclMat &minSSD, oclMat &leBuf, oclMat &riBuf, int preset, int ndisp, int winSize, float avergeTexThreshold, const oclMat &left, const oclMat &right, oclMat &disparity) From 3a565e001e71755fada5e52565fc2003fac53bb9 Mon Sep 17 00:00:00 2001 From: peng xiao Date: Tue, 12 Mar 2013 09:10:15 +0800 Subject: [PATCH 0017/1333] Remove unnecessary HAVE_OPENCL macro block. --- modules/ocl/src/surf.cpp | 55 +--------------------------------------- 1 file changed, 1 insertion(+), 54 deletions(-) diff --git a/modules/ocl/src/surf.cpp b/modules/ocl/src/surf.cpp index 3a9c00dd94..9d1372bbe0 100644 --- a/modules/ocl/src/surf.cpp +++ b/modules/ocl/src/surf.cpp @@ -51,57 +51,6 @@ using namespace cv; using namespace cv::ocl; using namespace std; -#if !defined (HAVE_OPENCL) -cv::ocl::SURF_OCL::SURF_OCL() -{ - throw_nogpu(); -} -cv::ocl::SURF_OCL::SURF_OCL(double, int, int, bool, float, bool) -{ - throw_nogpu(); -} -int cv::ocl::SURF_OCL::descriptorSize() const -{ - throw_nogpu(); - return 0; -} -void cv::ocl::SURF_OCL::uploadKeypoints(const vector &, oclMat &) -{ - throw_nogpu(); -} -void cv::ocl::SURF_OCL::downloadKeypoints(const oclMat &, vector &) -{ - throw_nogpu(); -} -void cv::ocl::SURF_OCL::downloadDescriptors(const oclMat &, vector &) -{ - throw_nogpu(); -} -void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, oclMat &) -{ - throw_nogpu(); -} -void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, oclMat &, oclMat &, bool) -{ - throw_nogpu(); -} -void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, vector &) -{ - throw_nogpu(); -} -void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, vector &, oclMat &, bool) -{ - throw_nogpu(); -} -void cv::ocl::SURF_OCL::operator()(const oclMat &, const oclMat &, vector &, vector &, bool) -{ - throw_nogpu(); -} -void cv::ocl::SURF_OCL::releaseMemory() -{ - throw_nogpu(); -} -#else /* !defined (HAVE_OPENCL) */ namespace cv { namespace ocl @@ -211,7 +160,7 @@ public: if (use_mask) { - throw std::exception(); + CV_Error(CV_StsBadFunc, "Masked SURF detector is not implemented yet"); //!FIXME // temp fix for missing min overload //oclMat temp(mask.size(), mask.type()); @@ -776,5 +725,3 @@ void SURF_OCL_Invoker::compute_descriptors_gpu(const oclMat &descriptors, const openCLExecuteKernelSURF(clCxt, &nonfree_surf, kernelName, globalThreads, localThreads, args, -1, -1); } } - -#endif // /* !defined (HAVE_OPENCL) */ From 084385cf38f84e2014ca7daa907274f365cd2925 Mon Sep 17 00:00:00 2001 From: yao Date: Tue, 12 Mar 2013 16:45:43 +0800 Subject: [PATCH 0018/1333] Fix a bug in ocl::Erode/Dilate, simplify the host logic --- modules/ocl/src/filtering.cpp | 18 ++++++++---------- modules/ocl/src/kernels/filtering_morph.cl | 6 +----- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/modules/ocl/src/filtering.cpp b/modules/ocl/src/filtering.cpp index 6697c953fd..e229fab053 100644 --- a/modules/ocl/src/filtering.cpp +++ b/modules/ocl/src/filtering.cpp @@ -195,7 +195,7 @@ public: namespace { -typedef void (*GPUMorfFilter_t)(const oclMat & , oclMat & , oclMat & , Size &, const Point, bool rectKernel, bool usrROI); +typedef void (*GPUMorfFilter_t)(const oclMat & , oclMat & , oclMat & , Size &, const Point, bool rectKernel); class MorphFilter_GPU : public BaseFilter_GPU { @@ -205,7 +205,7 @@ public: virtual void operator()(const oclMat &src, oclMat &dst) { - func(src, dst, kernel, ksize, anchor, rectKernel, false) ; + func(src, dst, kernel, ksize, anchor, rectKernel) ; } oclMat kernel; @@ -220,7 +220,7 @@ public: **Note that the kernel need to be further refined. */ static void GPUErode(const oclMat &src, oclMat &dst, oclMat &mat_kernel, - Size &ksize, const Point anchor, bool rectKernel, bool useROI) + Size &ksize, const Point anchor, bool rectKernel) { //Normalize the result by default //float alpha = ksize.height * ksize.width; @@ -276,11 +276,10 @@ static void GPUErode(const oclMat &src, oclMat &dst, oclMat &mat_kernel, } char compile_option[128]; - sprintf(compile_option, "-D RADIUSX=%d -D RADIUSY=%d -D LSIZE0=%d -D LSIZE1=%d -D ERODE %s %s %s", + sprintf(compile_option, "-D RADIUSX=%d -D RADIUSY=%d -D LSIZE0=%d -D LSIZE1=%d -D ERODE %s %s", anchor.x, anchor.y, (int)localThreads[0], (int)localThreads[1], - rectKernel?"-D RECTKERNEL":"", - useROI?"-D USEROI":"", - s); + rectKernel?"-D RECTKERNEL":"", + s); vector< pair > args; args.push_back(make_pair(sizeof(cl_mem), (void *)&src.data)); args.push_back(make_pair(sizeof(cl_mem), (void *)&dst.data)); @@ -300,7 +299,7 @@ static void GPUErode(const oclMat &src, oclMat &dst, oclMat &mat_kernel, //! data type supported: CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4 static void GPUDilate(const oclMat &src, oclMat &dst, oclMat &mat_kernel, - Size &ksize, const Point anchor, bool rectKernel, bool useROI) + Size &ksize, const Point anchor, bool rectKernel) { //Normalize the result by default //float alpha = ksize.height * ksize.width; @@ -357,10 +356,9 @@ static void GPUDilate(const oclMat &src, oclMat &dst, oclMat &mat_kernel, } char compile_option[128]; - sprintf(compile_option, "-D RADIUSX=%d -D RADIUSY=%d -D LSIZE0=%d -D LSIZE1=%d -D DILATE %s %s %s", + sprintf(compile_option, "-D RADIUSX=%d -D RADIUSY=%d -D LSIZE0=%d -D LSIZE1=%d -D DILATE %s %s", anchor.x, anchor.y, (int)localThreads[0], (int)localThreads[1], rectKernel?"-D RECTKERNEL":"", - useROI?"-D USEROI":"", s); vector< pair > args; args.push_back(make_pair(sizeof(cl_mem), (void *)&src.data)); diff --git a/modules/ocl/src/kernels/filtering_morph.cl b/modules/ocl/src/kernels/filtering_morph.cl index f60d76a8b7..49640008f4 100644 --- a/modules/ocl/src/kernels/filtering_morph.cl +++ b/modules/ocl/src/kernels/filtering_morph.cl @@ -120,8 +120,7 @@ __kernel void morph_C1_D0(__global const uchar * restrict src, int gidy = get_global_id(1); int out_addr = mad24(gidy,dst_step_in_pixel,gidx+dst_offset_in_pixel); -#ifdef USEROI - if(gidx+3 Date: Wed, 13 Mar 2013 09:02:15 -0700 Subject: [PATCH 0019/1333] Initial Windows RT support commit. GPU module turned off; TIFF support turned off; Windows Managment and Video IO (VFW) turned off. --- CMakeLists.txt | 4 +++- modules/highgui/CMakeLists.txt | 8 ++++---- modules/highgui/src/cap.cpp | 7 ++++--- modules/highgui/src/cap_ffmpeg.cpp | 16 ++++++++-------- modules/highgui/src/precomp.hpp | 6 +++--- modules/highgui/src/window.cpp | 16 ++++++++-------- platforms/winrt/scripts/cmake_winrt.cmd | 8 ++++++++ 7 files changed, 38 insertions(+), 27 deletions(-) create mode 100644 platforms/winrt/scripts/cmake_winrt.cmd diff --git a/CMakeLists.txt b/CMakeLists.txt index 579312d40a..e5868cf430 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,8 @@ endif() project(OpenCV CXX C) +add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE) + include(cmake/OpenCVUtils.cmake) # ---------------------------------------------------------------------------- @@ -608,7 +610,7 @@ else() status(" QT 4.x:" NO) endif() if(WIN32) - status(" Win32 UI:" YES) + status(" Win32 UI:" NO) else() if(APPLE) if(WITH_CARBON) diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index 7e5fae39bd..12cf2cbcd1 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -90,7 +90,7 @@ if(HAVE_QT) set_source_files_properties(${_RCC_OUTFILES} PROPERTIES COMPILE_FLAGS -Wno-missing-declarations) endif() elseif(WIN32) - list(APPEND highgui_srcs src/window_w32.cpp) + #list(APPEND highgui_srcs src/window_w32.cpp) elseif(HAVE_GTK) list(APPEND highgui_srcs src/window_gtk.cpp) elseif(APPLE) @@ -105,9 +105,9 @@ elseif(APPLE) endif() endif() -if(WIN32) - list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp src/cap_dshow.cpp) -endif(WIN32) +#if(WIN32) +# list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp src/cap_dshow.cpp) +#endif(WIN32) if(HAVE_XINE) list(APPEND highgui_srcs src/cap_xine.cpp) diff --git a/modules/highgui/src/cap.cpp b/modules/highgui/src/cap.cpp index 13475f2633..237e3156ea 100644 --- a/modules/highgui/src/cap.cpp +++ b/modules/highgui/src/cap.cpp @@ -197,9 +197,10 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index) { #ifdef HAVE_VIDEOINPUT case CV_CAP_DSHOW: - capture = cvCreateCameraCapture_DShow (index); - if (capture) - return capture; + // capture = cvCreateCameraCapture_DShow (index); + // if (capture) + // return capture; + return NULL; break; #endif diff --git a/modules/highgui/src/cap_ffmpeg.cpp b/modules/highgui/src/cap_ffmpeg.cpp index 657502acf4..640fc2da63 100644 --- a/modules/highgui/src/cap_ffmpeg.cpp +++ b/modules/highgui/src/cap_ffmpeg.cpp @@ -209,11 +209,11 @@ CvCapture* cvCreateFileCapture_FFMPEG_proxy(const char * filename) if( result->open( filename )) return result; delete result; -#if defined WIN32 || defined _WIN32 - return cvCreateFileCapture_VFW(filename); -#else +//#if defined WIN32 || defined _WIN32 +// return cvCreateFileCapture_VFW(filename); +//#else return 0; -#endif +//#endif } class CvVideoWriter_FFMPEG_proxy : @@ -263,9 +263,9 @@ CvVideoWriter* cvCreateVideoWriter_FFMPEG_proxy( const char* filename, int fourc if( result->open( filename, fourcc, fps, frameSize, isColor != 0 )) return result; delete result; -#if defined WIN32 || defined _WIN32 - return cvCreateVideoWriter_VFW(filename, fourcc, fps, frameSize, isColor); -#else +// #if defined WIN32 || defined _WIN32 +// return cvCreateVideoWriter_VFW(filename, fourcc, fps, frameSize, isColor); +// #else return 0; -#endif +//#endif } diff --git a/modules/highgui/src/precomp.hpp b/modules/highgui/src/precomp.hpp index 9572e30100..5790bf67ad 100644 --- a/modules/highgui/src/precomp.hpp +++ b/modules/highgui/src/precomp.hpp @@ -103,12 +103,12 @@ struct CvVideoWriter virtual bool writeFrame(const IplImage*) { return false; } }; -#if defined WIN32 || defined _WIN32 -#define HAVE_VFW 1 +//#if defined WIN32 || defined _WIN32 +//#define HAVE_VFW 1 /* uncomment to enable CMUCamera1394 fireware camera module */ //#define HAVE_CMU1394 1 -#endif +//#endif CvCapture * cvCreateCameraCapture_V4L( int index ); diff --git a/modules/highgui/src/window.cpp b/modules/highgui/src/window.cpp index b6086076c3..a26bc447a2 100644 --- a/modules/highgui/src/window.cpp +++ b/modules/highgui/src/window.cpp @@ -57,7 +57,7 @@ CV_IMPL void cvSetWindowProperty(const char* name, int prop_id, double prop_valu #if defined (HAVE_QT) cvSetModeWindow_QT(name,prop_value); - #elif defined WIN32 || defined _WIN32 + #elif defined (HAVE_WIN32_UI) cvSetModeWindow_W32(name,prop_value); #elif defined (HAVE_GTK) cvSetModeWindow_GTK(name,prop_value); @@ -96,7 +96,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id) #if defined (HAVE_QT) return cvGetModeWindow_QT(name); - #elif defined WIN32 || defined _WIN32 + #elif defined (HAVE_WIN32_UI) return cvGetModeWindow_W32(name); #elif defined (HAVE_GTK) return cvGetModeWindow_GTK(name); @@ -113,7 +113,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id) #if defined (HAVE_QT) return cvGetPropWindow_QT(name); - #elif defined WIN32 || defined _WIN32 + #elif defined (HAVE_WIN32_UI) return cvGetPropWindowAutoSize_W32(name); #elif defined (HAVE_GTK) return cvGetPropWindowAutoSize_GTK(name); @@ -126,7 +126,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id) #if defined (HAVE_QT) return cvGetRatioWindow_QT(name); - #elif defined WIN32 || defined _WIN32 + #elif defined (HAVE_WIN32_UI) return cvGetRatioWindow_W32(name); #elif defined (HAVE_GTK) return cvGetRatioWindow_GTK(name); @@ -139,7 +139,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id) #if defined (HAVE_QT) return cvGetOpenGlProp_QT(name); - #elif defined WIN32 || defined _WIN32 + #elif defined (HAVE_WIN32_UI) return cvGetOpenGlProp_W32(name); #elif defined (HAVE_GTK) return cvGetOpenGlProp_GTK(name); @@ -450,11 +450,11 @@ int cv::createButton(const string&, ButtonCallback, void*, int , bool ) #endif -#if defined WIN32 || defined _WIN32 // see window_w32.cpp +#if defined (HAVE_WIN32_UI) // see window_w32.cpp #elif defined (HAVE_GTK) // see window_gtk.cpp -#elif defined (HAVE_COCOA) // see window_carbon.cpp +#elif defined (HAVE_COCOA) // see window_carbon.cpp #elif defined (HAVE_CARBON) -#elif defined (HAVE_QT) //YV see window_QT.cpp +#elif defined (HAVE_QT) //YV see window_QT.cpp #else diff --git a/platforms/winrt/scripts/cmake_winrt.cmd b/platforms/winrt/scripts/cmake_winrt.cmd new file mode 100644 index 0000000000..18aafef026 --- /dev/null +++ b/platforms/winrt/scripts/cmake_winrt.cmd @@ -0,0 +1,8 @@ +mkdir build +cd build + +rem call "C:\Program Files\Microsoft Visual Studio 11.0\VC\bin\x86_arm\vcvarsx86_arm.bat" + +SET PATH=C:\Program Files\Ninja;%PATH% + +"C:\Program Files\CMake 2.8\bin\cmake.exe" -GNinja -DCMAKE_BUILD_TYPE=Release -DWITH_TIFF=OFF -DWITH_FFMPEG=OFF -DBUILD_opencv_gpu=OFF -DENABLE_SSE=OFF -DENABLE_SSE2=OFF ..\..\.. \ No newline at end of file From 4a237af814dd424c7409e654119951e4f38f68ce Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Wed, 13 Mar 2013 14:54:06 +0400 Subject: [PATCH 0020/1333] implemented Malvar, He, and Cutler Bayer Demosaicing on gpu --- modules/gpu/include/opencv2/gpu/gpu.hpp | 20 +++ modules/gpu/perf/perf_imgproc.cpp | 44 ++++++ modules/gpu/src/color.cpp | 81 ++++++++++-- modules/gpu/src/cuda/debayer.cu | 160 ++++++++++++++++++++++ modules/gpu/test/test_color.cpp | 169 ++++++++++++++++++++++++ 5 files changed, 466 insertions(+), 8 deletions(-) diff --git a/modules/gpu/include/opencv2/gpu/gpu.hpp b/modules/gpu/include/opencv2/gpu/gpu.hpp index a9481b2812..802954c71f 100644 --- a/modules/gpu/include/opencv2/gpu/gpu.hpp +++ b/modules/gpu/include/opencv2/gpu/gpu.hpp @@ -627,6 +627,26 @@ CV_EXPORTS void reprojectImageTo3D(const GpuMat& disp, GpuMat& xyzw, const Mat& //! converts image from one color space to another CV_EXPORTS void cvtColor(const GpuMat& src, GpuMat& dst, int code, int dcn = 0, Stream& stream = Stream::Null()); +enum +{ + // Bayer Demosaicing (Malvar, He, and Cutler) + COLOR_BayerBG2BGR_MHT = 256, + COLOR_BayerGB2BGR_MHT = 257, + COLOR_BayerRG2BGR_MHT = 258, + COLOR_BayerGR2BGR_MHT = 259, + + COLOR_BayerBG2RGB_MHT = COLOR_BayerRG2BGR_MHT, + COLOR_BayerGB2RGB_MHT = COLOR_BayerGR2BGR_MHT, + COLOR_BayerRG2RGB_MHT = COLOR_BayerBG2BGR_MHT, + COLOR_BayerGR2RGB_MHT = COLOR_BayerGB2BGR_MHT, + + COLOR_BayerBG2GRAY_MHT = 260, + COLOR_BayerGB2GRAY_MHT = 261, + COLOR_BayerRG2GRAY_MHT = 262, + COLOR_BayerGR2GRAY_MHT = 263 +}; +CV_EXPORTS void demosaicing(const GpuMat& src, GpuMat& dst, int code, int dcn = -1, Stream& stream = Stream::Null()); + //! swap channels //! dstOrder - Integer array describing how channel values are permutated. The n-th entry //! of the array contains the number of the channel that is stored in the n-th channel of diff --git a/modules/gpu/perf/perf_imgproc.cpp b/modules/gpu/perf/perf_imgproc.cpp index ab445dc87c..d1a87968d0 100644 --- a/modules/gpu/perf/perf_imgproc.cpp +++ b/modules/gpu/perf/perf_imgproc.cpp @@ -1374,6 +1374,50 @@ PERF_TEST_P(Sz_Depth_Code, ImgProc_CvtColorBayer, } } +CV_ENUM(DemosaicingCode, + cv::COLOR_BayerBG2BGR, cv::COLOR_BayerGB2BGR, cv::COLOR_BayerRG2BGR, cv::COLOR_BayerGR2BGR, + cv::COLOR_BayerBG2GRAY, cv::COLOR_BayerGB2GRAY, cv::COLOR_BayerRG2GRAY, cv::COLOR_BayerGR2GRAY, + cv::gpu::COLOR_BayerBG2BGR_MHT, cv::gpu::COLOR_BayerGB2BGR_MHT, cv::gpu::COLOR_BayerRG2BGR_MHT, cv::gpu::COLOR_BayerGR2BGR_MHT, + cv::gpu::COLOR_BayerBG2GRAY_MHT, cv::gpu::COLOR_BayerGB2GRAY_MHT, cv::gpu::COLOR_BayerRG2GRAY_MHT, cv::gpu::COLOR_BayerGR2GRAY_MHT) + +DEF_PARAM_TEST(Sz_Code, cv::Size, DemosaicingCode); + +PERF_TEST_P(Sz_Code, ImgProc_Demosaicing, + Combine(GPU_TYPICAL_MAT_SIZES, + ValuesIn(DemosaicingCode::all()))) +{ + const cv::Size size = GET_PARAM(0); + const int code = GET_PARAM(1); + + cv::Mat src(size, CV_8UC1); + declare.in(src, WARMUP_RNG); + + if (PERF_RUN_GPU()) + { + const cv::gpu::GpuMat d_src(src); + cv::gpu::GpuMat dst; + + TEST_CYCLE() cv::gpu::demosaicing(d_src, dst, code); + + GPU_SANITY_CHECK(dst); + } + else + { + if (code >= cv::COLOR_COLORCVT_MAX) + { + FAIL_NO_CPU(); + } + else + { + cv::Mat dst; + + TEST_CYCLE() cv::cvtColor(src, dst, code); + + CPU_SANITY_CHECK(dst); + } + } +} + ////////////////////////////////////////////////////////////////////// // SwapChannels diff --git a/modules/gpu/src/color.cpp b/modules/gpu/src/color.cpp index 09986e8c33..76793d5200 100644 --- a/modules/gpu/src/color.cpp +++ b/modules/gpu/src/color.cpp @@ -48,6 +48,7 @@ using namespace cv::gpu; #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) void cv::gpu::cvtColor(const GpuMat&, GpuMat&, int, int, Stream&) { throw_nogpu(); } +void cv::gpu::demosaicing(const GpuMat&, GpuMat&, int, int, Stream&) { throw_nogpu(); } void cv::gpu::swapChannels(GpuMat&, const int[], Stream&) { throw_nogpu(); } void cv::gpu::gammaCorrection(const GpuMat&, GpuMat&, bool, Stream&) { throw_nogpu(); } @@ -62,6 +63,9 @@ namespace cv { namespace gpu { void Bayer2BGR_8u_gpu(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); template void Bayer2BGR_16u_gpu(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); + + template + void MHCdemosaic(PtrStepSzb src, int2 sourceOffset, PtrStepSzb dst, int2 firstRed, cudaStream_t stream); } }} @@ -1620,26 +1624,23 @@ namespace funcs[src.depth()][dcn - 1](src, dst, blue_last, start_with_green, StreamAccessor::getStream(stream)); } - void bayerBG_to_bgr(const GpuMat& src, GpuMat& dst, int dcn, Stream& stream) { bayer_to_bgr(src, dst, dcn, false, false, stream); } - void bayerGB_to_bgr(const GpuMat& src, GpuMat& dst, int dcn, Stream& stream) { bayer_to_bgr(src, dst, dcn, false, true, stream); } - void bayerRG_to_bgr(const GpuMat& src, GpuMat& dst, int dcn, Stream& stream) { bayer_to_bgr(src, dst, dcn, true, false, stream); } - void bayerGR_to_bgr(const GpuMat& src, GpuMat& dst, int dcn, Stream& stream) { bayer_to_bgr(src, dst, dcn, true, true, stream); } + void bayer_to_gray(const GpuMat& src, GpuMat& dst, bool blue_last, bool start_with_green, Stream& stream) { typedef void (*func_t)(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); @@ -1657,22 +1658,18 @@ namespace funcs[src.depth()](src, dst, blue_last, start_with_green, StreamAccessor::getStream(stream)); } - void bayerBG_to_gray(const GpuMat& src, GpuMat& dst, int /*dcn*/, Stream& stream) { bayer_to_gray(src, dst, false, false, stream); } - void bayerGB_to_gray(const GpuMat& src, GpuMat& dst, int /*dcn*/, Stream& stream) { bayer_to_gray(src, dst, false, true, stream); } - void bayerRG_to_gray(const GpuMat& src, GpuMat& dst, int /*dcn*/, Stream& stream) { bayer_to_gray(src, dst, true, false, stream); } - void bayerGR_to_gray(const GpuMat& src, GpuMat& dst, int /*dcn*/, Stream& stream) { bayer_to_gray(src, dst, true, true, stream); @@ -1862,6 +1859,74 @@ void cv::gpu::cvtColor(const GpuMat& src, GpuMat& dst, int code, int dcn, Stream func(src, dst, dcn, stream); } +void cv::gpu::demosaicing(const GpuMat& src, GpuMat& dst, int code, int dcn, Stream& stream) +{ + const int depth = src.depth(); + + CV_Assert( src.channels() == 1 ); + + switch (code) + { + case CV_BayerBG2GRAY: case CV_BayerGB2GRAY: case CV_BayerRG2GRAY: case CV_BayerGR2GRAY: + bayer_to_gray(src, dst, code == CV_BayerBG2GRAY || code == CV_BayerGB2GRAY, code == CV_BayerGB2GRAY || code == CV_BayerGR2GRAY, stream); + break; + + case CV_BayerBG2BGR: case CV_BayerGB2BGR: case CV_BayerRG2BGR: case CV_BayerGR2BGR: + bayer_to_bgr(src, dst, dcn, code == CV_BayerBG2BGR || code == CV_BayerGB2BGR, code == CV_BayerGB2BGR || code == CV_BayerGR2BGR, stream); + break; + + case COLOR_BayerBG2BGR_MHT: case COLOR_BayerGB2BGR_MHT: case COLOR_BayerRG2BGR_MHT: case COLOR_BayerGR2BGR_MHT: + { + if (dcn <= 0) + dcn = 3; + + CV_Assert( depth == CV_8U ); + CV_Assert( dcn == 3 || dcn == 4 ); + + dst.create(src.size(), CV_MAKETYPE(depth, dcn)); + dst.setTo(Scalar::all(0)); + + Size wholeSize; + Point ofs; + src.locateROI(wholeSize, ofs); + PtrStepSzb srcWhole(wholeSize.height, wholeSize.width, src.datastart, src.step); + + const int2 firstRed = make_int2(code == COLOR_BayerRG2BGR_MHT || code == COLOR_BayerGB2BGR_MHT ? 0 : 1, + code == COLOR_BayerRG2BGR_MHT || code == COLOR_BayerGR2BGR_MHT ? 0 : 1); + + if (dcn == 3) + device::MHCdemosaic<3>(srcWhole, make_int2(ofs.x, ofs.y), dst, firstRed, StreamAccessor::getStream(stream)); + else + device::MHCdemosaic<4>(srcWhole, make_int2(ofs.x, ofs.y), dst, firstRed, StreamAccessor::getStream(stream)); + + break; + } + + case COLOR_BayerBG2GRAY_MHT: case COLOR_BayerGB2GRAY_MHT: case COLOR_BayerRG2GRAY_MHT: case COLOR_BayerGR2GRAY_MHT: + { + CV_Assert( depth == CV_8U ); + + dst.create(src.size(), CV_MAKETYPE(depth, 1)); + dst.setTo(Scalar::all(0)); + + Size wholeSize; + Point ofs; + src.locateROI(wholeSize, ofs); + PtrStepSzb srcWhole(wholeSize.height, wholeSize.width, src.datastart, src.step); + + const int2 firstRed = make_int2(code == COLOR_BayerRG2BGR_MHT || code == COLOR_BayerGB2BGR_MHT ? 0 : 1, + code == COLOR_BayerRG2BGR_MHT || code == COLOR_BayerGR2BGR_MHT ? 0 : 1); + + device::MHCdemosaic<1>(srcWhole, make_int2(ofs.x, ofs.y), dst, firstRed, StreamAccessor::getStream(stream)); + + break; + } + + default: + CV_Error( CV_StsBadFlag, "Unknown / unsupported color conversion code" ); + } +} + void cv::gpu::swapChannels(GpuMat& image, const int dstOrder[4], Stream& s) { CV_Assert(image.type() == CV_8UC4); diff --git a/modules/gpu/src/cuda/debayer.cu b/modules/gpu/src/cuda/debayer.cu index fc43726291..1d2f18e7a8 100644 --- a/modules/gpu/src/cuda/debayer.cu +++ b/modules/gpu/src/cuda/debayer.cu @@ -47,6 +47,7 @@ #include "opencv2/gpu/device/vec_math.hpp" #include "opencv2/gpu/device/limits.hpp" #include "opencv2/gpu/device/color.hpp" +#include "opencv2/gpu/device/saturate_cast.hpp" namespace cv { namespace gpu { namespace device { @@ -379,6 +380,165 @@ namespace cv { namespace gpu { namespace device template void Bayer2BGR_16u_gpu<1>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); template void Bayer2BGR_16u_gpu<3>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); template void Bayer2BGR_16u_gpu<4>(PtrStepSzb src, PtrStepSzb dst, bool blue_last, bool start_with_green, cudaStream_t stream); + + ////////////////////////////////////////////////////////////// + // Bayer Demosaicing (Malvar, He, and Cutler) + // + // by Morgan McGuire, Williams College + // http://graphics.cs.williams.edu/papers/BayerJGT09/#shaders + // + // ported to CUDA + + texture sourceTex(false, cudaFilterModePoint, cudaAddressModeClamp); + + template + __global__ void MHCdemosaic(PtrStepSz dst, const int2 sourceOffset, const int2 firstRed) + { + const float kAx = -1.0f / 8.0f, kAy = -1.5f / 8.0f, kAz = 0.5f / 8.0f /*kAw = -1.0f / 8.0f*/; + const float kBx = 2.0f / 8.0f, /*kBy = 0.0f / 8.0f,*/ /*kBz = 0.0f / 8.0f,*/ kBw = 4.0f / 8.0f ; + const float kCx = 4.0f / 8.0f, kCy = 6.0f / 8.0f, kCz = 5.0f / 8.0f /*kCw = 5.0f / 8.0f*/; + const float /*kDx = 0.0f / 8.0f,*/ kDy = 2.0f / 8.0f, kDz = -1.0f / 8.0f /*kDw = -1.0f / 8.0f*/; + const float kEx = -1.0f / 8.0f, kEy = -1.5f / 8.0f, /*kEz = -1.0f / 8.0f,*/ kEw = 0.5f / 8.0f ; + const float kFx = 2.0f / 8.0f, /*kFy = 0.0f / 8.0f,*/ kFz = 4.0f / 8.0f /*kFw = 0.0f / 8.0f*/; + + const int x = blockIdx.x * blockDim.x + threadIdx.x; + const int y = blockIdx.y * blockDim.y + threadIdx.y; + + if (x == 0 || x >= dst.cols - 1 || y == 0 || y >= dst.rows - 1) + return; + + int2 center; + center.x = x + sourceOffset.x; + center.y = y + sourceOffset.y; + + int4 xCoord; + xCoord.x = center.x - 2; + xCoord.y = center.x - 1; + xCoord.z = center.x + 1; + xCoord.w = center.x + 2; + + int4 yCoord; + yCoord.x = center.y - 2; + yCoord.y = center.y - 1; + yCoord.z = center.y + 1; + yCoord.w = center.y + 2; + + float C = tex2D(sourceTex, center.x, center.y); // ( 0, 0) + + float4 Dvec; + Dvec.x = tex2D(sourceTex, xCoord.y, yCoord.y); // (-1,-1) + Dvec.y = tex2D(sourceTex, xCoord.y, yCoord.z); // (-1, 1) + Dvec.z = tex2D(sourceTex, xCoord.z, yCoord.y); // ( 1,-1) + Dvec.w = tex2D(sourceTex, xCoord.z, yCoord.z); // ( 1, 1) + + float4 value; + value.x = tex2D(sourceTex, center.x, yCoord.x); // ( 0,-2) A0 + value.y = tex2D(sourceTex, center.x, yCoord.y); // ( 0,-1) B0 + value.z = tex2D(sourceTex, xCoord.x, center.y); // (-2, 0) E0 + value.w = tex2D(sourceTex, xCoord.y, center.y); // (-1, 0) F0 + + // (A0 + A1), (B0 + B1), (E0 + E1), (F0 + F1) + value.x += tex2D(sourceTex, center.x, yCoord.w); // ( 0, 2) A1 + value.y += tex2D(sourceTex, center.x, yCoord.z); // ( 0, 1) B1 + value.z += tex2D(sourceTex, xCoord.w, center.y); // ( 2, 0) E1 + value.w += tex2D(sourceTex, xCoord.z, center.y); // ( 1, 0) F1 + + float4 PATTERN; + PATTERN.x = kCx * C; + PATTERN.y = kCy * C; + PATTERN.z = kCz * C; + PATTERN.w = PATTERN.z; + + float D = Dvec.x + Dvec.y + Dvec.z + Dvec.w; + + // There are five filter patterns (identity, cross, checker, + // theta, phi). Precompute the terms from all of them and then + // use swizzles to assign to color channels. + // + // Channel Matches + // x cross (e.g., EE G) + // y checker (e.g., EE B) + // z theta (e.g., EO R) + // w phi (e.g., EO B) + + #define A value.x // A0 + A1 + #define B value.y // B0 + B1 + #define E value.z // E0 + E1 + #define F value.w // F0 + F1 + + float3 temp; + + // PATTERN.yzw += (kD.yz * D).xyy; + temp.x = kDy * D; + temp.y = kDz * D; + PATTERN.y += temp.x; + PATTERN.z += temp.y; + PATTERN.w += temp.y; + + // PATTERN += (kA.xyz * A).xyzx; + temp.x = kAx * A; + temp.y = kAy * A; + temp.z = kAz * A; + PATTERN.x += temp.x; + PATTERN.y += temp.y; + PATTERN.z += temp.z; + PATTERN.w += temp.x; + + // PATTERN += (kE.xyw * E).xyxz; + temp.x = kEx * E; + temp.y = kEy * E; + temp.z = kEw * E; + PATTERN.x += temp.x; + PATTERN.y += temp.y; + PATTERN.z += temp.x; + PATTERN.w += temp.z; + + // PATTERN.xw += kB.xw * B; + PATTERN.x += kBx * B; + PATTERN.w += kBw * B; + + // PATTERN.xz += kF.xz * F; + PATTERN.x += kFx * F; + PATTERN.z += kFz * F; + + // Determine which of four types of pixels we are on. + int2 alternate; + alternate.x = (x + firstRed.x) % 2; + alternate.y = (y + firstRed.y) % 2; + + // in BGR sequence; + uchar3 pixelColor = + (alternate.y == 0) ? + ((alternate.x == 0) ? + make_uchar3(saturate_cast(PATTERN.y), saturate_cast(PATTERN.x), saturate_cast(C)) : + make_uchar3(saturate_cast(PATTERN.w), saturate_cast(C), saturate_cast(PATTERN.z))) : + ((alternate.x == 0) ? + make_uchar3(saturate_cast(PATTERN.z), saturate_cast(C), saturate_cast(PATTERN.w)) : + make_uchar3(saturate_cast(C), saturate_cast(PATTERN.x), saturate_cast(PATTERN.y))); + + dst(y, x) = toDst(pixelColor); + } + + template + void MHCdemosaic(PtrStepSzb src, int2 sourceOffset, PtrStepSzb dst, int2 firstRed, cudaStream_t stream) + { + typedef typename TypeVec::vec_type dst_t; + + const dim3 block(32, 8); + const dim3 grid(divUp(src.cols, block.x), divUp(src.rows, block.y)); + + bindTexture(&sourceTex, src); + + MHCdemosaic<<>>((PtrStepSz)dst, sourceOffset, firstRed); + cudaSafeCall( cudaGetLastError() ); + + if (stream == 0) + cudaSafeCall( cudaDeviceSynchronize() ); + } + + template void MHCdemosaic<1>(PtrStepSzb src, int2 sourceOffset, PtrStepSzb dst, int2 firstRed, cudaStream_t stream); + template void MHCdemosaic<3>(PtrStepSzb src, int2 sourceOffset, PtrStepSzb dst, int2 firstRed, cudaStream_t stream); + template void MHCdemosaic<4>(PtrStepSzb src, int2 sourceOffset, PtrStepSzb dst, int2 firstRed, cudaStream_t stream); }}} #endif /* CUDA_DISABLER */ diff --git a/modules/gpu/test/test_color.cpp b/modules/gpu/test/test_color.cpp index 81831af8c5..3657107d93 100644 --- a/modules/gpu/test/test_color.cpp +++ b/modules/gpu/test/test_color.cpp @@ -2288,6 +2288,175 @@ INSTANTIATE_TEST_CASE_P(GPU_ImgProc, CvtColor, testing::Combine( testing::Values(MatDepth(CV_8U), MatDepth(CV_16U), MatDepth(CV_32F)), WHOLE_SUBMAT)); +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Demosaicing + +struct Demosaicing : testing::TestWithParam +{ + cv::gpu::DeviceInfo devInfo; + + virtual void SetUp() + { + devInfo = GetParam(); + + cv::gpu::setDevice(devInfo.deviceID()); + } + + static void mosaic(const cv::Mat_& src, cv::Mat_& dst, cv::Point firstRed) + { + dst.create(src.size()); + + for (int y = 0; y < src.rows; ++y) + { + for (int x = 0; x < src.cols; ++x) + { + cv::Vec3b pix = src(y, x); + + cv::Point alternate; + alternate.x = (x + firstRed.x) % 2; + alternate.y = (y + firstRed.y) % 2; + + if (alternate.y == 0) + { + if (alternate.x == 0) + { + // RG + // GB + dst(y, x) = pix[2]; + } + else + { + // GR + // BG + dst(y, x) = pix[1]; + } + } + else + { + if (alternate.x == 0) + { + // GB + // RG + dst(y, x) = pix[1]; + } + else + { + // BG + // GR + dst(y, x) = pix[0]; + } + } + } + } + } +}; + +GPU_TEST_P(Demosaicing, BayerBG2BGR) +{ + cv::Mat img = readImage("stereobm/aloe-L.png"); + + cv::Mat_ src; + mosaic(img, src, cv::Point(1, 1)); + + cv::gpu::GpuMat dst; + cv::gpu::demosaicing(loadMat(src), dst, cv::COLOR_BayerBG2BGR); + + EXPECT_MAT_SIMILAR(img, dst, 2e-2); +} + +GPU_TEST_P(Demosaicing, BayerGB2BGR) +{ + cv::Mat img = readImage("stereobm/aloe-L.png"); + + cv::Mat_ src; + mosaic(img, src, cv::Point(0, 1)); + + cv::gpu::GpuMat dst; + cv::gpu::demosaicing(loadMat(src), dst, cv::COLOR_BayerGB2BGR); + + EXPECT_MAT_SIMILAR(img, dst, 2e-2); +} + +GPU_TEST_P(Demosaicing, BayerRG2BGR) +{ + cv::Mat img = readImage("stereobm/aloe-L.png"); + + cv::Mat_ src; + mosaic(img, src, cv::Point(0, 0)); + + cv::gpu::GpuMat dst; + cv::gpu::demosaicing(loadMat(src), dst, cv::COLOR_BayerRG2BGR); + + EXPECT_MAT_SIMILAR(img, dst, 2e-2); +} + +GPU_TEST_P(Demosaicing, BayerGR2BGR) +{ + cv::Mat img = readImage("stereobm/aloe-L.png"); + + cv::Mat_ src; + mosaic(img, src, cv::Point(1, 0)); + + cv::gpu::GpuMat dst; + cv::gpu::demosaicing(loadMat(src), dst, cv::COLOR_BayerGR2BGR); + + EXPECT_MAT_SIMILAR(img, dst, 2e-2); +} + +GPU_TEST_P(Demosaicing, BayerBG2BGR_MHT) +{ + cv::Mat img = readImage("stereobm/aloe-L.png"); + + cv::Mat_ src; + mosaic(img, src, cv::Point(1, 1)); + + cv::gpu::GpuMat dst; + cv::gpu::demosaicing(loadMat(src), dst, cv::gpu::COLOR_BayerBG2BGR_MHT); + + EXPECT_MAT_SIMILAR(img, dst, 5e-3); +} + +GPU_TEST_P(Demosaicing, BayerGB2BGR_MHT) +{ + cv::Mat img = readImage("stereobm/aloe-L.png"); + + cv::Mat_ src; + mosaic(img, src, cv::Point(0, 1)); + + cv::gpu::GpuMat dst; + cv::gpu::demosaicing(loadMat(src), dst, cv::gpu::COLOR_BayerGB2BGR_MHT); + + EXPECT_MAT_SIMILAR(img, dst, 5e-3); +} + +GPU_TEST_P(Demosaicing, BayerRG2BGR_MHT) +{ + cv::Mat img = readImage("stereobm/aloe-L.png"); + + cv::Mat_ src; + mosaic(img, src, cv::Point(0, 0)); + + cv::gpu::GpuMat dst; + cv::gpu::demosaicing(loadMat(src), dst, cv::gpu::COLOR_BayerRG2BGR_MHT); + + EXPECT_MAT_SIMILAR(img, dst, 5e-3); +} + +GPU_TEST_P(Demosaicing, BayerGR2BGR_MHT) +{ + cv::Mat img = readImage("stereobm/aloe-L.png"); + + cv::Mat_ src; + mosaic(img, src, cv::Point(1, 0)); + + cv::gpu::GpuMat dst; + cv::gpu::demosaicing(loadMat(src), dst, cv::gpu::COLOR_BayerGR2BGR_MHT); + + EXPECT_MAT_SIMILAR(img, dst, 5e-3); +} + +INSTANTIATE_TEST_CASE_P(GPU_ImgProc, Demosaicing, ALL_DEVICES); + /////////////////////////////////////////////////////////////////////////////////////////////////////// // swapChannels From 2435e59890a9dbe57a15641cb4c120726cdb1a68 Mon Sep 17 00:00:00 2001 From: Bo Li Date: Fri, 15 Mar 2013 20:44:41 +0100 Subject: [PATCH 0021/1333] rewrite five-point coeff matrix. --- modules/calib3d/src/five-point.cpp | 561 ++++++++++++----------------- 1 file changed, 224 insertions(+), 337 deletions(-) diff --git a/modules/calib3d/src/five-point.cpp b/modules/calib3d/src/five-point.cpp index 57f941e381..bdea34c08e 100644 --- a/modules/calib3d/src/five-point.cpp +++ b/modules/calib3d/src/five-point.cpp @@ -71,16 +71,10 @@ public: SVD::compute(Q, W, U, Vt, SVD::MODIFY_A | SVD::FULL_UV); Mat EE = Mat(Vt.t()).colRange(5, 9) * 1.0; - Mat AA(20, 10, CV_64F); - EE = EE.t(); - calibrated_fivepoint_helper((double*)EE.data, (double*)AA.data); - AA = AA.t(); - EE = EE.t(); - Mat A(10, 20, CV_64F); - int perm[20] = {0, 3, 1, 2, 4, 10, 6, 12, 5, 11, 7, 13, 16, 8, 14, 17, 9, 15, 18, 19}; - for (int i = 0; i < 20; i++) - A.col(i) = AA.col(perm[i]) * 1.0; + EE = EE.t(); + getCoeffMat((double*)EE.data, (double*)A.data); + EE = EE.t(); A = A.colRange(0, 10).inv() * A.colRange(10, 20); @@ -164,337 +158,230 @@ public: } protected: - void calibrated_fivepoint_helper( double *EE, double* A ) const + void getCoeffMat(double *e, double *A) const { - double e00,e01,e02,e03,e04,e05,e06,e07,e08; - double e10,e11,e12,e13,e14,e15,e16,e17,e18; - double e20,e21,e22,e23,e24,e25,e26,e27,e28; - double e30,e31,e32,e33,e34,e35,e36,e37,e38; - - double e002,e012,e022,e032,e042,e052,e062,e072,e082; - double e102,e112,e122,e132,e142,e152,e162,e172,e182; - double e202,e212,e222,e232,e242,e252,e262,e272,e282; - double e302,e312,e322,e332,e342,e352,e362,e372,e382; - - double e003,e013,e023,e033,e043,e053,e063,e073,e083; - double e103,e113,e123,e133,e143,e153,e163,e173,e183; - double e203,e213,e223,e233,e243,e253,e263,e273,e283; - double e303,e313,e323,e333,e343,e353,e363,e373,e383; - e00 = EE[0*9 + 0 ]; - e10 = EE[1*9 + 0 ]; - e20 = EE[2*9 + 0 ]; - e30 = EE[3*9 + 0 ]; - e01 = EE[0*9 + 1 ]; - e11 = EE[1*9 + 1 ]; - e21 = EE[2*9 + 1 ]; - e31 = EE[3*9 + 1 ]; - e02 = EE[0*9 + 2 ]; - e12 = EE[1*9 + 2 ]; - e22 = EE[2*9 + 2 ]; - e32 = EE[3*9 + 2 ]; - e03 = EE[0*9 + 3 ]; - e13 = EE[1*9 + 3 ]; - e23 = EE[2*9 + 3 ]; - e33 = EE[3*9 + 3 ]; - e04 = EE[0*9 + 4 ]; - e14 = EE[1*9 + 4 ]; - e24 = EE[2*9 + 4 ]; - e34 = EE[3*9 + 4 ]; - e05 = EE[0*9 + 5 ]; - e15 = EE[1*9 + 5 ]; - e25 = EE[2*9 + 5 ]; - e35 = EE[3*9 + 5 ]; - e06 = EE[0*9 + 6 ]; - e16 = EE[1*9 + 6 ]; - e26 = EE[2*9 + 6 ]; - e36 = EE[3*9 + 6 ]; - e07 = EE[0*9 + 7 ]; - e17 = EE[1*9 + 7 ]; - e27 = EE[2*9 + 7 ]; - e37 = EE[3*9 + 7 ]; - e08 = EE[0*9 + 8 ]; - e18 = EE[1*9 + 8 ]; - e28 = EE[2*9 + 8 ]; - e38 = EE[3*9 + 8 ]; - - - e002 =e00*e00; - e102 =e10*e10; - e202 =e20*e20; - e302 =e30*e30; - e012 =e01*e01; - e112 =e11*e11; - e212 =e21*e21; - e312 =e31*e31; - e022 =e02*e02; - e122 =e12*e12; - e222 =e22*e22; - e322 =e32*e32; - e032 =e03*e03; - e132 =e13*e13; - e232 =e23*e23; - e332 =e33*e33; - e042 =e04*e04; - e142 =e14*e14; - e242 =e24*e24; - e342 =e34*e34; - e052 =e05*e05; - e152 =e15*e15; - e252 =e25*e25; - e352 =e35*e35; - e062 =e06*e06; - e162 =e16*e16; - e262 =e26*e26; - e362 =e36*e36; - e072 =e07*e07; - e172 =e17*e17; - e272 =e27*e27; - e372 =e37*e37; - e082 =e08*e08; - e182 =e18*e18; - e282 =e28*e28; - e382 =e38*e38; - - e003 =e00*e00*e00; - e103 =e10*e10*e10; - e203 =e20*e20*e20; - e303 =e30*e30*e30; - e013 =e01*e01*e01; - e113 =e11*e11*e11; - e213 =e21*e21*e21; - e313 =e31*e31*e31; - e023 =e02*e02*e02; - e123 =e12*e12*e12; - e223 =e22*e22*e22; - e323 =e32*e32*e32; - e033 =e03*e03*e03; - e133 =e13*e13*e13; - e233 =e23*e23*e23; - e333 =e33*e33*e33; - e043 =e04*e04*e04; - e143 =e14*e14*e14; - e243 =e24*e24*e24; - e343 =e34*e34*e34; - e053 =e05*e05*e05; - e153 =e15*e15*e15; - e253 =e25*e25*e25; - e353 =e35*e35*e35; - e063 =e06*e06*e06; - e163 =e16*e16*e16; - e263 =e26*e26*e26; - e363 =e36*e36*e36; - e073 =e07*e07*e07; - e173 =e17*e17*e17; - e273 =e27*e27*e27; - e373 =e37*e37*e37; - e083 =e08*e08*e08; - e183 =e18*e18*e18; - e283 =e28*e28*e28; - e383 =e38*e38*e38; - - - A[0 + 10*0]=0.5*e003+0.5*e00*e012+0.5*e00*e022+0.5*e00*e032+e03*e01*e04+e03*e02*e05+0.5*e00*e062+e06*e01*e07+e06*e02*e08-0.5*e00*e042-0.5*e00*e052-0.5*e00*e072-0.5*e00*e082; - A[0 + 10*1]=e00*e11*e01+e00*e12*e02+e03*e00*e13+e03*e11*e04+e03*e01*e14+e03*e12*e05+e03*e02*e15+e13*e01*e04+e13*e02*e05+e06*e00*e16+1.5*e10*e002+0.5*e10*e012+0.5*e10*e022+0.5*e10*e062-0.5*e10*e042-0.5*e10*e052-0.5*e10*e072+0.5*e10*e032+e06*e11*e07+e06*e01*e17+e06*e12*e08+e06*e02*e18+e16*e01*e07+e16*e02*e08-e00*e14*e04-e00*e17*e07-e00*e15*e05-e00*e18*e08-0.5*e10*e082; - A[0 + 10*2]=e16*e02*e18+e03*e12*e15+e10*e11*e01+e10*e12*e02+e03*e10*e13+e03*e11*e14+e13*e11*e04+e13*e01*e14+e13*e12*e05+e13*e02*e15+e06*e10*e16+e06*e12*e18+e06*e11*e17+e16*e11*e07+e16*e01*e17+e16*e12*e08-e10*e14*e04-e10*e17*e07-e10*e15*e05-e10*e18*e08+1.5*e00*e102+0.5*e00*e122+0.5*e00*e112+0.5*e00*e132+0.5*e00*e162-0.5*e00*e152-0.5*e00*e172-0.5*e00*e182-0.5*e00*e142; - A[0 + 10*3]=0.5*e103+0.5*e10*e122+0.5*e10*e112+0.5*e10*e132+e13*e12*e15+e13*e11*e14+0.5*e10*e162+e16*e12*e18+e16*e11*e17-0.5*e10*e152-0.5*e10*e172-0.5*e10*e182-0.5*e10*e142; - A[0 + 10*4]=-e00*e28*e08-e00*e25*e05-e00*e27*e07-e00*e24*e04+e26*e02*e08+e26*e01*e07+e06*e02*e28+e06*e22*e08+e06*e01*e27+e06*e21*e07+e23*e02*e05+e23*e01*e04+e03*e02*e25+e03*e22*e05+e03*e01*e24+e03*e21*e04+e00*e22*e02+e00*e21*e01-0.5*e20*e082-0.5*e20*e052-0.5*e20*e072-0.5*e20*e042+e06*e00*e26+0.5*e20*e062+e03*e00*e23+0.5*e20*e022+1.5*e20*e002+0.5*e20*e032+0.5*e20*e012; - A[0 + 10*5]=-e10*e24*e04-e10*e27*e07-e10*e25*e05-e10*e28*e08-e20*e14*e04-e20*e17*e07-e20*e15*e05-e20*e18*e08-e00*e24*e14-e00*e25*e15-e00*e27*e17-e00*e28*e18+e06*e21*e17+e06*e22*e18+e06*e12*e28+e16*e00*e26+e16*e21*e07+e16*e01*e27+e16*e22*e08+e16*e02*e28+e26*e11*e07+e26*e01*e17+e26*e12*e08+e26*e02*e18+e06*e11*e27+e23*e11*e04+e23*e01*e14+e23*e12*e05+e23*e02*e15+e06*e20*e16+e06*e10*e26+e03*e21*e14+e03*e22*e15+e03*e12*e25+e13*e00*e23+e13*e21*e04+e13*e01*e24+e13*e22*e05+e13*e02*e25+e03*e11*e24+e03*e20*e13+e03*e10*e23+e00*e21*e11+3*e00*e20*e10+e00*e22*e12+e20*e12*e02+e20*e11*e01+e10*e22*e02+e10*e21*e01; - A[0 + 10*6]=-0.5*e20*e152+e26*e11*e17-e10*e24*e14-e10*e25*e15-e10*e27*e17-e10*e28*e18+0.5*e20*e162+e13*e10*e23+e13*e22*e15+e23*e12*e15+e23*e11*e14+e16*e10*e26+e16*e21*e17+e16*e11*e27+e16*e22*e18+e16*e12*e28+e26*e12*e18+e13*e12*e25+0.5*e20*e132+1.5*e20*e102+0.5*e20*e122+0.5*e20*e112+e10*e21*e11+e10*e22*e12+e13*e11*e24-0.5*e20*e172-0.5*e20*e182-0.5*e20*e142+e13*e21*e14; - A[0 + 10*7]=-e20*e25*e05-e20*e28*e08-0.5*e00*e272-0.5*e00*e282-0.5*e00*e242+0.5*e00*e262-0.5*e00*e252+e06*e20*e26+0.5*e00*e232+e06*e22*e28+e06*e21*e27+e26*e21*e07+e26*e01*e27+e26*e22*e08+e26*e02*e28-e20*e24*e04-e20*e27*e07+e03*e20*e23+e03*e22*e25+e03*e21*e24+e23*e21*e04+e23*e01*e24+e23*e22*e05+e23*e02*e25+e20*e21*e01+e20*e22*e02+1.5*e00*e202+0.5*e00*e222+0.5*e00*e212; - A[0 + 10*8]=e23*e21*e14+e23*e11*e24+e23*e22*e15+e23*e12*e25+e16*e20*e26+e16*e22*e28+e16*e21*e27+e26*e21*e17+e26*e11*e27+e26*e22*e18+e26*e12*e28+1.5*e10*e202+0.5*e10*e222+0.5*e10*e212+0.5*e10*e232+e20*e21*e11+e20*e22*e12+e13*e20*e23+e13*e22*e25+e13*e21*e24-e20*e24*e14-e20*e25*e15-e20*e27*e17-e20*e28*e18-0.5*e10*e272-0.5*e10*e282-0.5*e10*e242-0.5*e10*e252+0.5*e10*e262; - A[0 + 10*9]=0.5*e203+0.5*e20*e222+0.5*e20*e212+0.5*e20*e232+e23*e22*e25+e23*e21*e24+0.5*e20*e262+e26*e22*e28+e26*e21*e27-0.5*e20*e252-0.5*e20*e272-0.5*e20*e282-0.5*e20*e242; - A[0 + 10*10]=e06*e32*e08-0.5*e30*e082-0.5*e30*e042-0.5*e30*e052-0.5*e30*e072+0.5*e30*e012+0.5*e30*e022+0.5*e30*e032+0.5*e30*e062+1.5*e30*e002+e00*e31*e01+e00*e32*e02+e03*e31*e04+e03*e01*e34+e03*e32*e05+e03*e02*e35+e33*e01*e04+e33*e02*e05+e06*e00*e36+e06*e31*e07+e06*e01*e37+e06*e02*e38+e36*e01*e07+e36*e02*e08-e00*e34*e04-e00*e37*e07-e00*e35*e05-e00*e38*e08+e03*e00*e33; - A[0 + 10*11]=e06*e30*e16+e03*e30*e13+e16*e31*e07+e06*e10*e36-e10*e37*e07+3*e00*e30*e10+e00*e32*e12-e00*e38*e18-e10*e34*e04-e10*e35*e05-e10*e38*e08-e30*e14*e04-e30*e17*e07-e30*e15*e05-e30*e18*e08+e00*e31*e11+e10*e31*e01+e10*e32*e02+e30*e11*e01+e30*e12*e02+e03*e10*e33-e00*e34*e14-e00*e35*e15-e00*e37*e17+e03*e31*e14+e03*e11*e34+e03*e32*e15+e03*e12*e35+e13*e00*e33+e13*e31*e04+e13*e01*e34+e13*e32*e05+e13*e02*e35+e33*e11*e04+e33*e01*e14+e33*e12*e05+e33*e02*e15+e06*e31*e17+e06*e11*e37+e06*e32*e18+e06*e12*e38+e16*e00*e36+e16*e01*e37+e16*e32*e08+e16*e02*e38+e36*e11*e07+e36*e01*e17+e36*e12*e08+e36*e02*e18; - A[0 + 10*12]=e13*e10*e33+e33*e11*e14+e16*e10*e36+e16*e31*e17+e16*e11*e37+e16*e32*e18+e16*e12*e38+e36*e12*e18+e36*e11*e17-e10*e34*e14-e10*e35*e15-e10*e37*e17-e10*e38*e18+e10*e31*e11+e10*e32*e12+e13*e31*e14+e13*e11*e34+e13*e32*e15+e13*e12*e35+e33*e12*e15+1.5*e30*e102+0.5*e30*e122+0.5*e30*e112+0.5*e30*e132+0.5*e30*e162-0.5*e30*e152-0.5*e30*e172-0.5*e30*e182-0.5*e30*e142; - A[0 + 10*13]=e00*e32*e22+3*e00*e30*e20+e00*e31*e21+e20*e31*e01+e20*e32*e02+e30*e21*e01+e30*e22*e02+e03*e20*e33+e03*e32*e25+e03*e22*e35+e03*e31*e24+e03*e21*e34+e23*e00*e33+e23*e31*e04+e23*e01*e34+e23*e32*e05+e23*e02*e35+e33*e21*e04+e33*e01*e24+e33*e22*e05+e33*e02*e25+e06*e30*e26+e06*e20*e36+e06*e32*e28+e06*e22*e38+e06*e31*e27+e06*e21*e37+e26*e00*e36+e26*e31*e07+e03*e30*e23+e26*e01*e37+e26*e32*e08+e26*e02*e38+e36*e21*e07+e36*e01*e27+e36*e22*e08+e36*e02*e28-e00*e35*e25-e00*e37*e27-e00*e38*e28-e00*e34*e24-e20*e34*e04-e20*e37*e07-e20*e35*e05-e20*e38*e08-e30*e24*e04-e30*e27*e07-e30*e25*e05-e30*e28*e08; - A[0 + 10*14]=e16*e30*e26+e13*e21*e34+3*e10*e30*e20+e10*e32*e22+e10*e31*e21+e20*e31*e11+e20*e32*e12+e30*e21*e11+e30*e22*e12+e13*e30*e23+e13*e20*e33+e13*e32*e25+e13*e22*e35+e13*e31*e24+e23*e10*e33+e23*e31*e14+e23*e11*e34+e23*e32*e15+e23*e12*e35+e33*e21*e14+e33*e11*e24+e33*e22*e15+e33*e12*e25+e16*e20*e36+e16*e32*e28+e16*e22*e38+e16*e31*e27+e16*e21*e37+e26*e10*e36+e26*e31*e17+e26*e11*e37+e26*e32*e18+e26*e12*e38+e36*e21*e17+e36*e11*e27+e36*e22*e18+e36*e12*e28-e10*e35*e25-e10*e37*e27-e10*e38*e28-e10*e34*e24-e20*e34*e14-e20*e35*e15-e20*e37*e17-e20*e38*e18-e30*e24*e14-e30*e25*e15-e30*e27*e17-e30*e28*e18; - A[0 + 10*15]=-e20*e34*e24+0.5*e30*e262-0.5*e30*e252-0.5*e30*e272-0.5*e30*e282-0.5*e30*e242+1.5*e30*e202+0.5*e30*e222+0.5*e30*e212+0.5*e30*e232+e20*e32*e22+e20*e31*e21+e23*e20*e33+e23*e32*e25+e23*e22*e35+e23*e31*e24+e23*e21*e34+e33*e22*e25+e33*e21*e24+e26*e20*e36+e26*e32*e28+e26*e22*e38+e26*e31*e27+e26*e21*e37+e36*e22*e28+e36*e21*e27-e20*e35*e25-e20*e37*e27-e20*e38*e28; - A[0 + 10*16]=0.5*e00*e322+e30*e32*e02+e30*e31*e01+1.5*e00*e302+0.5*e00*e312+e03*e32*e35+e33*e31*e04+e33*e01*e34+e33*e32*e05+e33*e02*e35+e06*e30*e36+e06*e31*e37+e06*e32*e38+e36*e31*e07+e36*e01*e37+e36*e32*e08+e36*e02*e38-e30*e34*e04-e30*e37*e07-e30*e35*e05-e30*e38*e08+0.5*e00*e332+0.5*e00*e362-0.5*e00*e382-0.5*e00*e352-0.5*e00*e342-0.5*e00*e372+e03*e30*e33+e03*e31*e34; - A[0 + 10*17]=0.5*e10*e362-0.5*e10*e382-0.5*e10*e352-0.5*e10*e342-0.5*e10*e372+e36*e31*e17+e36*e11*e37+e36*e32*e18+e36*e12*e38-e30*e34*e14-e30*e35*e15-e30*e37*e17-e30*e38*e18+1.5*e10*e302+0.5*e10*e312+0.5*e10*e322+0.5*e10*e332+e30*e31*e11+e30*e32*e12+e13*e30*e33+e13*e31*e34+e13*e32*e35+e33*e31*e14+e33*e11*e34+e33*e32*e15+e33*e12*e35+e16*e30*e36+e16*e31*e37+e16*e32*e38; - A[0 + 10*18]=e33*e31*e24+e33*e21*e34+e26*e30*e36+e26*e31*e37+e26*e32*e38+e36*e32*e28+e36*e22*e38+e36*e31*e27+e36*e21*e37-e30*e35*e25-e30*e37*e27-e30*e38*e28-e30*e34*e24+e33*e22*e35+1.5*e20*e302+0.5*e20*e312+0.5*e20*e322+0.5*e20*e332+0.5*e20*e362-0.5*e20*e382-0.5*e20*e352-0.5*e20*e342-0.5*e20*e372+e30*e32*e22+e30*e31*e21+e23*e30*e33+e23*e31*e34+e23*e32*e35+e33*e32*e25; - A[0 + 10*19]=0.5*e303+0.5*e30*e312+0.5*e30*e322+0.5*e30*e332+e33*e31*e34+e33*e32*e35+0.5*e30*e362+e36*e31*e37+e36*e32*e38-0.5*e30*e382-0.5*e30*e352-0.5*e30*e342-0.5*e30*e372; - A[1 + 10*0]=e00*e01*e04+0.5*e002*e03+e00*e02*e05+0.5*e033+0.5*e03*e042+0.5*e03*e052+0.5*e03*e062+e06*e04*e07+e06*e05*e08-0.5*e03*e012-0.5*e03*e072-0.5*e03*e022-0.5*e03*e082; - A[1 + 10*1]=e03*e14*e04+e10*e01*e04+e16*e05*e08+e00*e10*e03+e00*e11*e04+e00*e01*e14+e00*e12*e05+e00*e02*e15+e10*e02*e05+e03*e15*e05+e06*e03*e16+e06*e14*e07+e06*e04*e17+e06*e15*e08+e06*e05*e18+0.5*e002*e13+1.5*e13*e032+0.5*e13*e042+0.5*e13*e052+0.5*e13*e062-0.5*e13*e012-0.5*e13*e072-0.5*e13*e022-0.5*e13*e082+e16*e04*e07-e03*e12*e02-e03*e11*e01-e03*e17*e07-e03*e18*e08; - A[1 + 10*2]=-e13*e11*e01+e00*e10*e13+e00*e12*e15+e00*e11*e14+e10*e11*e04+e10*e01*e14+e10*e12*e05+e10*e02*e15+e13*e14*e04+e13*e15*e05+e06*e13*e16+e06*e15*e18+e06*e14*e17+e16*e14*e07+e16*e04*e17+e16*e15*e08+e16*e05*e18-e13*e12*e02-e13*e17*e07-e13*e18*e08+0.5*e102*e03+1.5*e03*e132+0.5*e03*e152+0.5*e03*e142+0.5*e03*e162-0.5*e03*e112-0.5*e03*e172-0.5*e03*e122-0.5*e03*e182; - A[1 + 10*3]=0.5*e102*e13+e10*e11*e14+e10*e12*e15+0.5*e133+0.5*e13*e152+0.5*e13*e142+0.5*e13*e162+e16*e15*e18+e16*e14*e17-0.5*e13*e112-0.5*e13*e122-0.5*e13*e172-0.5*e13*e182; - A[1 + 10*4]=-e03*e28*e08-e03*e27*e07-e03*e21*e01-e03*e22*e02+e26*e05*e08+e26*e04*e07+e06*e05*e28+e06*e25*e08+e06*e04*e27+e06*e24*e07+e03*e25*e05+e03*e24*e04+e20*e02*e05+e20*e01*e04+e00*e02*e25+e00*e22*e05+e00*e01*e24+e00*e21*e04+e00*e20*e03-0.5*e23*e072-0.5*e23*e082-0.5*e23*e022-0.5*e23*e012+e06*e03*e26+0.5*e23*e052+0.5*e23*e062+1.5*e23*e032+0.5*e23*e042+0.5*e002*e23; - A[1 + 10*5]=e00*e21*e14+e00*e11*e24+e00*e10*e23+e00*e22*e15+e00*e12*e25+e20*e12*e05+e20*e01*e14+e20*e11*e04+e00*e20*e13+e10*e02*e25+e10*e22*e05+e10*e01*e24+e10*e21*e04+e10*e20*e03+e23*e15*e05+e23*e14*e04+e13*e25*e05+e13*e24*e04+e03*e24*e14+e03*e25*e15+3*e03*e23*e13+e20*e02*e15+e16*e03*e26+e06*e14*e27-e23*e18*e08+e06*e24*e17+e06*e15*e28+e06*e25*e18+e06*e13*e26+e06*e23*e16+e26*e04*e17+e26*e14*e07+e16*e05*e28+e16*e25*e08+e16*e04*e27+e16*e24*e07-e03*e22*e12-e03*e21*e11+e26*e05*e18+e26*e15*e08-e03*e27*e17-e03*e28*e18-e13*e22*e02-e13*e28*e08-e13*e27*e07-e13*e21*e01-e23*e17*e07-e23*e11*e01-e23*e12*e02; - A[1 + 10*6]=-0.5*e23*e182-0.5*e23*e172-0.5*e23*e112-0.5*e23*e122-e13*e22*e12-e13*e27*e17-e13*e28*e18+e26*e15*e18+e26*e14*e17-e13*e21*e11+e20*e12*e15+e13*e25*e15+e13*e24*e14+e16*e13*e26+e16*e25*e18+e16*e15*e28+e16*e24*e17+e16*e14*e27+1.5*e23*e132+0.5*e23*e152+0.5*e23*e142+0.5*e23*e162+e10*e20*e13+e10*e21*e14+e10*e11*e24+e10*e22*e15+e10*e12*e25+e20*e11*e14+0.5*e102*e23; - A[1 + 10*7]=e26*e04*e27+e00*e22*e25-e23*e28*e08+0.5*e03*e262-0.5*e03*e212-0.5*e03*e272-0.5*e03*e222-0.5*e03*e282+e23*e24*e04+e23*e25*e05+0.5*e202*e03+e06*e23*e26+e06*e24*e27+e06*e25*e28+e26*e24*e07+e26*e25*e08+e26*e05*e28-e23*e22*e02-e23*e21*e01-e23*e27*e07+e00*e20*e23+e00*e21*e24+e20*e21*e04+e20*e01*e24+e20*e22*e05+e20*e02*e25+1.5*e03*e232+0.5*e03*e242+0.5*e03*e252; - A[1 + 10*8]=e20*e11*e24-0.5*e13*e212-0.5*e13*e272-0.5*e13*e222-0.5*e13*e282-e23*e27*e17-e23*e28*e18+e26*e25*e18+e26*e24*e17+e26*e14*e27-e23*e21*e11-e23*e22*e12+e26*e15*e28+e23*e25*e15+e23*e24*e14+e16*e23*e26+e16*e24*e27+e16*e25*e28+0.5*e13*e262+e20*e21*e14+e20*e22*e15+e20*e12*e25+0.5*e13*e242+0.5*e13*e252+0.5*e202*e13+1.5*e13*e232+e10*e20*e23+e10*e22*e25+e10*e21*e24; - A[1 + 10*9]=0.5*e202*e23+e20*e22*e25+e20*e21*e24+0.5*e233+0.5*e23*e242+0.5*e23*e252+0.5*e23*e262+e26*e24*e27+e26*e25*e28-0.5*e23*e212-0.5*e23*e272-0.5*e23*e222-0.5*e23*e282; - A[1 + 10*10]=e00*e30*e03+0.5*e33*e062-0.5*e33*e012-0.5*e33*e022-0.5*e33*e072+e03*e35*e05+e06*e03*e36+e06*e34*e07+e06*e04*e37+e06*e35*e08+e06*e05*e38+e36*e04*e07+e36*e05*e08-e03*e32*e02-e03*e31*e01-e03*e37*e07+e00*e31*e04+e00*e01*e34+e00*e32*e05+e00*e02*e35+e30*e01*e04+e30*e02*e05+e03*e34*e04-e03*e38*e08+0.5*e002*e33+1.5*e33*e032+0.5*e33*e042+0.5*e33*e052-0.5*e33*e082; - A[1 + 10*11]=e06*e35*e18+e06*e33*e16+e00*e30*e13+e00*e10*e33+e00*e31*e14+e00*e11*e34+e00*e32*e15+e00*e12*e35+e10*e30*e03-e33*e17*e07-e33*e18*e08+e10*e31*e04+e10*e01*e34+e10*e32*e05+e10*e02*e35+e30*e11*e04+e30*e01*e14+e30*e12*e05+e30*e02*e15+3*e03*e33*e13+e03*e35*e15+e03*e34*e14+e13*e34*e04+e13*e35*e05+e33*e14*e04+e33*e15*e05+e06*e13*e36+e06*e15*e38+e06*e34*e17+e06*e14*e37+e16*e03*e36+e16*e34*e07+e16*e04*e37+e16*e35*e08+e16*e05*e38+e36*e14*e07+e36*e04*e17+e36*e15*e08+e36*e05*e18-e03*e31*e11-e03*e32*e12-e03*e37*e17-e03*e38*e18-e13*e32*e02-e13*e31*e01-e13*e37*e07-e13*e38*e08-e33*e12*e02-e33*e11*e01; - A[1 + 10*12]=e16*e13*e36+e10*e11*e34+0.5*e33*e152+0.5*e33*e142+0.5*e33*e162-0.5*e33*e112-0.5*e33*e122-0.5*e33*e172-0.5*e33*e182+0.5*e102*e33+1.5*e33*e132+e10*e30*e13+e10*e31*e14+e10*e32*e15+e10*e12*e35+e30*e11*e14+e30*e12*e15+e13*e35*e15+e13*e34*e14+e16*e35*e18+e16*e15*e38+e16*e34*e17+e16*e14*e37+e36*e15*e18+e36*e14*e17-e13*e31*e11-e13*e32*e12-e13*e37*e17-e13*e38*e18; - A[1 + 10*13]=e06*e35*e28+e36*e04*e27+e00*e20*e33+e00*e30*e23+3*e03*e33*e23+e03*e34*e24+e03*e35*e25+e23*e34*e04+e23*e35*e05+e33*e24*e04+e33*e25*e05+e06*e33*e26+e06*e23*e36+e06*e34*e27+e06*e24*e37+e06*e25*e38+e26*e03*e36+e26*e34*e07+e26*e04*e37+e26*e35*e08+e26*e05*e38+e36*e24*e07+e36*e25*e08+e36*e05*e28-e03*e31*e21-e03*e37*e27-e03*e32*e22-e03*e38*e28-e23*e32*e02-e23*e31*e01-e23*e37*e07-e23*e38*e08-e33*e22*e02-e33*e21*e01-e33*e27*e07-e33*e28*e08+e00*e32*e25+e00*e22*e35+e00*e31*e24+e00*e21*e34+e20*e30*e03+e20*e31*e04+e20*e01*e34+e20*e32*e05+e20*e02*e35+e30*e21*e04+e30*e01*e24+e30*e22*e05+e30*e02*e25; - A[1 + 10*14]=e10*e30*e23+e10*e20*e33+e10*e22*e35+e10*e32*e25+e10*e31*e24+e10*e21*e34+e20*e30*e13+e20*e31*e14+e20*e11*e34+e20*e32*e15+e20*e12*e35+e30*e21*e14+e30*e11*e24+e30*e22*e15+e30*e12*e25+3*e13*e33*e23+e13*e34*e24+e13*e35*e25+e23*e35*e15+e23*e34*e14+e33*e25*e15+e33*e24*e14+e16*e33*e26+e16*e23*e36+e16*e34*e27+e16*e24*e37+e16*e35*e28+e16*e25*e38+e26*e13*e36+e26*e35*e18+e26*e15*e38+e26*e34*e17+e26*e14*e37+e36*e25*e18+e36*e15*e28+e36*e24*e17+e36*e14*e27-e13*e31*e21-e13*e37*e27-e13*e32*e22-e13*e38*e28-e23*e31*e11-e23*e32*e12-e23*e37*e17-e23*e38*e18-e33*e21*e11-e33*e22*e12-e33*e27*e17-e33*e28*e18; - A[1 + 10*15]=-0.5*e33*e212-0.5*e33*e272-0.5*e33*e222-0.5*e33*e282+e26*e23*e36+e20*e30*e23+e20*e32*e25+e20*e22*e35+e20*e31*e24+e20*e21*e34+e30*e22*e25+e30*e21*e24+e23*e34*e24+e23*e35*e25+e26*e34*e27+e26*e24*e37+e26*e35*e28+e26*e25*e38+e36*e24*e27+e36*e25*e28-e23*e31*e21-e23*e37*e27-e23*e32*e22-e23*e38*e28+0.5*e202*e33+1.5*e33*e232+0.5*e33*e242+0.5*e33*e252+0.5*e33*e262; - A[1 + 10*16]=e33*e35*e05+e30*e32*e05+0.5*e03*e362+0.5*e302*e03+1.5*e03*e332+0.5*e03*e352+0.5*e03*e342+e00*e30*e33+e00*e31*e34+e00*e32*e35+e30*e31*e04+e30*e01*e34+e30*e02*e35+e33*e34*e04+e06*e33*e36+e06*e35*e38+e06*e34*e37+e36*e34*e07+e36*e04*e37+e36*e35*e08+e36*e05*e38-e33*e32*e02-e33*e31*e01-e33*e37*e07-e33*e38*e08-0.5*e03*e322-0.5*e03*e382-0.5*e03*e312-0.5*e03*e372; - A[1 + 10*17]=-e33*e31*e11-e33*e32*e12-e33*e38*e18+e30*e11*e34+e30*e32*e15+e30*e12*e35+e33*e35*e15+e33*e34*e14+e16*e33*e36+e16*e35*e38+e16*e34*e37+e36*e35*e18+e36*e15*e38+e36*e34*e17+e36*e14*e37-e33*e37*e17+0.5*e302*e13+1.5*e13*e332+0.5*e13*e352+0.5*e13*e342+0.5*e13*e362-0.5*e13*e322-0.5*e13*e382-0.5*e13*e312-0.5*e13*e372+e10*e30*e33+e10*e31*e34+e10*e32*e35+e30*e31*e14; - A[1 + 10*18]=e36*e25*e38+0.5*e302*e23+1.5*e23*e332+0.5*e23*e352+0.5*e23*e342+0.5*e23*e362-0.5*e23*e322-0.5*e23*e382-0.5*e23*e312-0.5*e23*e372+e20*e30*e33+e20*e31*e34+e20*e32*e35+e30*e32*e25+e30*e22*e35+e30*e31*e24+e30*e21*e34+e33*e34*e24+e33*e35*e25+e26*e33*e36+e26*e35*e38+e26*e34*e37+e36*e34*e27+e36*e24*e37+e36*e35*e28-e33*e31*e21-e33*e37*e27-e33*e32*e22-e33*e38*e28; - A[1 + 10*19]=0.5*e302*e33+e30*e31*e34+e30*e32*e35+0.5*e333+0.5*e33*e352+0.5*e33*e342+0.5*e33*e362+e36*e35*e38+e36*e34*e37-0.5*e33*e322-0.5*e33*e382-0.5*e33*e312-0.5*e33*e372; - A[2 + 10*0]=0.5*e002*e06+e00*e01*e07+e00*e02*e08+0.5*e032*e06+e03*e04*e07+e03*e05*e08+0.5*e063+0.5*e06*e072+0.5*e06*e082-0.5*e06*e012-0.5*e06*e022-0.5*e06*e042-0.5*e06*e052; - A[2 + 10*1]=e00*e10*e06+0.5*e002*e16+0.5*e032*e16+1.5*e16*e062+0.5*e16*e072+0.5*e16*e082-0.5*e16*e012-0.5*e16*e022-0.5*e16*e042-0.5*e16*e052+e00*e11*e07+e00*e01*e17+e00*e12*e08+e00*e02*e18+e10*e01*e07+e10*e02*e08+e03*e13*e06+e03*e14*e07+e03*e04*e17+e03*e15*e08+e03*e05*e18+e13*e04*e07+e13*e05*e08+e06*e17*e07+e06*e18*e08-e06*e12*e02-e06*e11*e01-e06*e14*e04-e06*e15*e05; - A[2 + 10*2]=e13*e14*e07+0.5*e102*e06+e00*e10*e16+e00*e12*e18+e00*e11*e17+e10*e11*e07+e10*e01*e17+e10*e12*e08+e10*e02*e18+e03*e13*e16+e03*e15*e18+e03*e14*e17+e13*e04*e17+e13*e15*e08+e13*e05*e18+e16*e17*e07+e16*e18*e08-e16*e12*e02-e16*e11*e01-e16*e14*e04-e16*e15*e05+0.5*e132*e06+1.5*e06*e162+0.5*e06*e182+0.5*e06*e172-0.5*e06*e112-0.5*e06*e122-0.5*e06*e142-0.5*e06*e152; - A[2 + 10*3]=0.5*e102*e16+e10*e12*e18+e10*e11*e17+0.5*e132*e16+e13*e15*e18+e13*e14*e17+0.5*e163+0.5*e16*e182+0.5*e16*e172-0.5*e16*e112-0.5*e16*e122-0.5*e16*e142-0.5*e16*e152; - A[2 + 10*4]=e06*e27*e07+e23*e05*e08+e23*e04*e07+e03*e05*e28+e03*e25*e08+e03*e04*e27+e03*e24*e07+e20*e02*e08+e20*e01*e07+e00*e02*e28+e00*e22*e08+e00*e01*e27+e00*e21*e07+e00*e20*e06-e06*e25*e05-e06*e24*e04-e06*e21*e01-e06*e22*e02+e06*e28*e08-0.5*e26*e042-0.5*e26*e052-0.5*e26*e012-0.5*e26*e022+0.5*e26*e082+0.5*e26*e072+1.5*e26*e062+0.5*e002*e26+e03*e23*e06+0.5*e032*e26; - A[2 + 10*5]=e13*e05*e28+e00*e12*e28+e13*e25*e08+e13*e04*e27+e13*e24*e07+e13*e23*e06+e03*e14*e27+e03*e24*e17+e03*e15*e28+e03*e25*e18+e03*e13*e26+e03*e23*e16+e20*e02*e18+e20*e12*e08+e20*e01*e17+e20*e11*e07+e00*e21*e17+e10*e02*e28+e10*e22*e08+e10*e01*e27+e10*e21*e07+e10*e20*e06+e00*e11*e27-e26*e15*e05-e26*e14*e04-e26*e11*e01-e26*e12*e02-e16*e25*e05-e16*e24*e04-e16*e21*e01-e16*e22*e02-e06*e24*e14-e06*e22*e12-e06*e21*e11-e06*e25*e15+e00*e20*e16+e00*e22*e18+e00*e10*e26+e26*e18*e08+e26*e17*e07+e16*e28*e08+e16*e27*e07+e06*e27*e17+e06*e28*e18+3*e06*e26*e16+e23*e05*e18+e23*e15*e08+e23*e04*e17+e23*e14*e07; - A[2 + 10*6]=e10*e22*e18+0.5*e26*e182+0.5*e26*e172+e16*e28*e18+e16*e27*e17-e16*e25*e15-e16*e21*e11-e16*e22*e12+1.5*e26*e162+e13*e15*e28+e13*e24*e17+e13*e14*e27+e23*e15*e18+e23*e14*e17+e10*e12*e28+e10*e21*e17+e10*e11*e27+e20*e12*e18+e20*e11*e17+e13*e23*e16+e13*e25*e18+e10*e20*e16+0.5*e102*e26-0.5*e26*e122-0.5*e26*e142-0.5*e26*e152-e16*e24*e14-0.5*e26*e112+0.5*e132*e26; - A[2 + 10*7]=-0.5*e06*e212-0.5*e06*e252-0.5*e06*e242+0.5*e06*e272+0.5*e06*e282-0.5*e06*e222+e20*e02*e28+e03*e23*e26+e03*e24*e27+e03*e25*e28+e23*e24*e07+e23*e04*e27+e23*e25*e08+e23*e05*e28+e26*e28*e08-e26*e22*e02-e26*e21*e01-e26*e24*e04-e26*e25*e05+e26*e27*e07+e00*e20*e26+e00*e21*e27+e00*e22*e28+e20*e21*e07+e20*e01*e27+e20*e22*e08+0.5*e202*e06+0.5*e232*e06+1.5*e06*e262; - A[2 + 10*8]=-e26*e24*e14-0.5*e16*e212-0.5*e16*e252-0.5*e16*e242-e26*e25*e15-0.5*e16*e222-e26*e21*e11+e26*e28*e18+e26*e27*e17-e26*e22*e12+e23*e15*e28+e23*e24*e17+e23*e14*e27+0.5*e232*e16+1.5*e16*e262+0.5*e16*e272+0.5*e16*e282+e10*e20*e26+e10*e21*e27+e10*e22*e28+e20*e22*e18+e20*e12*e28+e20*e21*e17+e20*e11*e27+e13*e23*e26+e13*e24*e27+e13*e25*e28+e23*e25*e18+0.5*e202*e16; - A[2 + 10*9]=0.5*e202*e26+e20*e21*e27+e20*e22*e28+0.5*e232*e26+e23*e24*e27+e23*e25*e28+0.5*e263+0.5*e26*e272+0.5*e26*e282-0.5*e26*e222-0.5*e26*e212-0.5*e26*e252-0.5*e26*e242; - A[2 + 10*10]=e03*e34*e07+0.5*e032*e36+1.5*e36*e062+e03*e33*e06+e00*e31*e07+e00*e01*e37+e00*e32*e08+e00*e02*e38+e30*e01*e07+e30*e02*e08+e03*e04*e37+e03*e35*e08+e03*e05*e38+0.5*e002*e36-0.5*e36*e022-0.5*e36*e042-0.5*e36*e052+0.5*e36*e072+0.5*e36*e082-0.5*e36*e012+e33*e04*e07+e33*e05*e08+e06*e37*e07+e06*e38*e08-e06*e32*e02-e06*e31*e01-e06*e34*e04-e06*e35*e05+e00*e30*e06; - A[2 + 10*11]=e13*e33*e06+e13*e34*e07+e13*e04*e37+e13*e35*e08+e13*e05*e38+e33*e14*e07+e33*e04*e17+e33*e15*e08+e33*e05*e18+3*e06*e36*e16+e06*e38*e18+e06*e37*e17+e16*e37*e07+e16*e38*e08+e36*e17*e07+e36*e18*e08-e06*e35*e15-e06*e31*e11-e06*e32*e12+e00*e31*e17+e00*e11*e37+e10*e30*e06+e10*e31*e07+e10*e01*e37+e10*e32*e08+e10*e02*e38+e30*e11*e07+e30*e01*e17+e30*e12*e08+e30*e02*e18+e03*e33*e16+e03*e13*e36+e03*e35*e18+e03*e15*e38+e03*e34*e17+e03*e14*e37+e00*e30*e16+e00*e12*e38-e06*e34*e14-e16*e32*e02-e16*e31*e01-e16*e34*e04-e16*e35*e05-e36*e12*e02-e36*e11*e01-e36*e14*e04-e36*e15*e05+e00*e10*e36+e00*e32*e18; - A[2 + 10*12]=0.5*e36*e182+0.5*e36*e172-0.5*e36*e112-0.5*e36*e122-0.5*e36*e142-0.5*e36*e152+0.5*e102*e36+0.5*e132*e36+1.5*e36*e162+e10*e30*e16+e10*e32*e18+e10*e12*e38+e10*e31*e17+e10*e11*e37+e30*e12*e18+e30*e11*e17+e13*e33*e16+e13*e35*e18+e13*e15*e38+e13*e34*e17+e13*e14*e37+e33*e15*e18+e33*e14*e17+e16*e38*e18+e16*e37*e17-e16*e35*e15-e16*e31*e11-e16*e32*e12-e16*e34*e14; - A[2 + 10*13]=e00*e20*e36+e00*e31*e27+e00*e21*e37+e00*e32*e28+e00*e22*e38+e20*e30*e06+e20*e31*e07+e20*e01*e37+e20*e32*e08+e20*e02*e38+e30*e21*e07+e30*e01*e27+e30*e22*e08+e30*e02*e28+e03*e33*e26+e03*e23*e36+e03*e34*e27+e03*e24*e37+e03*e35*e28-e26*e31*e01-e26*e35*e05-e36*e22*e02-e36*e21*e01-e36*e24*e04-e36*e25*e05-e26*e34*e04+e03*e25*e38+e23*e34*e07+e23*e04*e37+e23*e35*e08+e23*e05*e38+e33*e24*e07+e33*e04*e27+e33*e25*e08+e33*e05*e28+3*e06*e36*e26+e06*e37*e27+e06*e38*e28+e26*e37*e07+e26*e38*e08+e36*e27*e07+e36*e28*e08-e06*e32*e22-e06*e31*e21-e06*e35*e25-e06*e34*e24-e26*e32*e02+e00*e30*e26+e23*e33*e06; - A[2 + 10*14]=e10*e30*e26+e10*e20*e36+e10*e31*e27+e10*e21*e37+e10*e32*e28+e10*e22*e38+e20*e30*e16+e20*e32*e18+e20*e12*e38+e20*e31*e17+e20*e11*e37+e30*e22*e18+e30*e12*e28+e30*e21*e17+e30*e11*e27+e13*e33*e26+e13*e23*e36+e13*e34*e27+e13*e24*e37+e13*e35*e28+e13*e25*e38+e23*e33*e16+e23*e35*e18+e23*e15*e38+e23*e34*e17+e23*e14*e37+e33*e25*e18+e33*e15*e28+e33*e24*e17+e33*e14*e27+3*e16*e36*e26+e16*e37*e27+e16*e38*e28+e26*e38*e18+e26*e37*e17+e36*e28*e18+e36*e27*e17-e16*e32*e22-e16*e31*e21-e16*e35*e25-e16*e34*e24-e26*e35*e15-e26*e31*e11-e26*e32*e12-e26*e34*e14-e36*e25*e15-e36*e21*e11-e36*e22*e12-e36*e24*e14; - A[2 + 10*15]=e33*e25*e28+e20*e30*e26+e20*e32*e28+e20*e31*e27+e20*e21*e37+e20*e22*e38+e30*e21*e27+e30*e22*e28+e23*e33*e26+e23*e34*e27+e23*e24*e37+e23*e35*e28+e23*e25*e38+e33*e24*e27+e26*e37*e27+e26*e38*e28-e26*e32*e22-e26*e31*e21-e26*e35*e25-e26*e34*e24+0.5*e202*e36+0.5*e232*e36+1.5*e36*e262+0.5*e36*e272+0.5*e36*e282-0.5*e36*e222-0.5*e36*e212-0.5*e36*e252-0.5*e36*e242; - A[2 + 10*16]=e00*e30*e36+e00*e32*e38+e00*e31*e37+e30*e31*e07+e30*e01*e37+e30*e32*e08+e30*e02*e38+e03*e33*e36-0.5*e06*e342+e03*e35*e38+e33*e34*e07+e33*e04*e37+e33*e35*e08+e33*e05*e38+e36*e37*e07+e36*e38*e08-e36*e32*e02-e36*e31*e01-e36*e34*e04-e36*e35*e05+e03*e34*e37+0.5*e302*e06+0.5*e332*e06+1.5*e06*e362+0.5*e06*e382+0.5*e06*e372-0.5*e06*e352-0.5*e06*e312-0.5*e06*e322; - A[2 + 10*17]=-e36*e35*e15+e10*e30*e36+0.5*e302*e16+0.5*e332*e16+1.5*e16*e362+0.5*e16*e382+0.5*e16*e372-0.5*e16*e352-0.5*e16*e312-0.5*e16*e322-0.5*e16*e342+e10*e32*e38+e10*e31*e37+e30*e32*e18+e30*e12*e38+e30*e31*e17+e30*e11*e37+e13*e33*e36+e13*e35*e38+e13*e34*e37+e33*e35*e18+e33*e15*e38+e33*e34*e17+e33*e14*e37+e36*e38*e18+e36*e37*e17-e36*e31*e11-e36*e32*e12-e36*e34*e14; - A[2 + 10*18]=-e36*e35*e25+e30*e32*e28+0.5*e302*e26+0.5*e332*e26+1.5*e26*e362+0.5*e26*e382+0.5*e26*e372-0.5*e26*e352-0.5*e26*e312-0.5*e26*e322-0.5*e26*e342+e20*e30*e36+e20*e32*e38+e20*e31*e37+e30*e31*e27+e30*e21*e37+e30*e22*e38+e23*e33*e36+e23*e35*e38+e23*e34*e37+e33*e34*e27+e33*e24*e37+e33*e35*e28+e33*e25*e38+e36*e37*e27+e36*e38*e28-e36*e32*e22-e36*e31*e21-e36*e34*e24; - A[2 + 10*19]=0.5*e302*e36+e30*e32*e38+e30*e31*e37+0.5*e332*e36+e33*e35*e38+e33*e34*e37+0.5*e363+0.5*e36*e382+0.5*e36*e372-0.5*e36*e352-0.5*e36*e312-0.5*e36*e322-0.5*e36*e342; - A[3 + 10*0]=0.5*e01*e002+0.5*e013+0.5*e01*e022+e04*e00*e03+0.5*e01*e042+e04*e02*e05+e07*e00*e06+0.5*e01*e072+e07*e02*e08-0.5*e01*e032-0.5*e01*e052-0.5*e01*e062-0.5*e01*e082; - A[3 + 10*1]=1.5*e11*e012+0.5*e11*e002+0.5*e11*e022+0.5*e11*e042+0.5*e11*e072-0.5*e11*e032-0.5*e11*e052-0.5*e11*e062-0.5*e11*e082+e01*e10*e00+e01*e12*e02+e04*e10*e03+e04*e00*e13+e04*e01*e14+e04*e12*e05+e04*e02*e15+e14*e00*e03+e14*e02*e05+e07*e10*e06+e07*e00*e16+e07*e01*e17+e07*e12*e08+e07*e02*e18+e17*e00*e06+e17*e02*e08-e01*e13*e03-e01*e16*e06-e01*e15*e05-e01*e18*e08; - A[3 + 10*2]=e17*e02*e18+e14*e10*e03+e11*e12*e02-e11*e18*e08+0.5*e01*e102+0.5*e01*e122+1.5*e01*e112+0.5*e01*e142+0.5*e01*e172-0.5*e01*e132-0.5*e01*e152-0.5*e01*e162-0.5*e01*e182+e11*e10*e00+e04*e10*e13+e04*e12*e15+e04*e11*e14+e14*e00*e13+e14*e12*e05+e14*e02*e15+e07*e10*e16+e07*e12*e18+e07*e11*e17+e17*e10*e06+e17*e00*e16+e17*e12*e08-e11*e13*e03-e11*e16*e06-e11*e15*e05; - A[3 + 10*3]=0.5*e11*e102+0.5*e11*e122+0.5*e113+e14*e10*e13+e14*e12*e15+0.5*e11*e142+e17*e10*e16+e17*e12*e18+0.5*e11*e172-0.5*e11*e132-0.5*e11*e152-0.5*e11*e162-0.5*e11*e182; - A[3 + 10*4]=-e01*e25*e05-e01*e26*e06-e01*e23*e03+e27*e02*e08+e27*e00*e06+e07*e02*e28+e07*e22*e08+e07*e01*e27+e07*e00*e26+e24*e02*e05+e24*e00*e03+e04*e02*e25+e04*e22*e05+e04*e01*e24+e04*e00*e23+e04*e20*e03+e01*e22*e02+e01*e20*e00-e01*e28*e08+e07*e20*e06+0.5*e21*e072+0.5*e21*e042+0.5*e21*e022+0.5*e21*e002+1.5*e21*e012-0.5*e21*e082-0.5*e21*e052-0.5*e21*e062-0.5*e21*e032; - A[3 + 10*5]=e11*e20*e00+e07*e20*e16+3*e01*e21*e11+e01*e22*e12-e21*e18*e08-e21*e15*e05-e21*e16*e06-e21*e13*e03-e11*e28*e08-e11*e25*e05-e11*e26*e06-e11*e23*e03-e01*e28*e18-e01*e23*e13-e01*e25*e15-e01*e26*e16+e27*e02*e18+e27*e12*e08+e27*e00*e16+e27*e10*e06+e17*e02*e28+e17*e22*e08+e17*e01*e27+e17*e00*e26+e17*e20*e06+e07*e11*e27+e07*e21*e17+e07*e12*e28+e07*e22*e18+e07*e10*e26+e24*e02*e15+e24*e12*e05+e24*e00*e13+e24*e10*e03+e14*e02*e25+e14*e22*e05+e14*e01*e24+e14*e00*e23+e14*e20*e03+e04*e11*e24+e04*e21*e14+e04*e12*e25+e04*e22*e15+e21*e12*e02+e04*e20*e13+e01*e20*e10+e11*e22*e02+e21*e10*e00+e04*e10*e23; - A[3 + 10*6]=1.5*e21*e112+0.5*e21*e102+0.5*e21*e122+e11*e20*e10+e11*e22*e12+e14*e10*e23+e14*e22*e15+e14*e12*e25-0.5*e21*e162-0.5*e21*e152-0.5*e21*e132-0.5*e21*e182+e27*e12*e18-e11*e26*e16-e11*e25*e15-e11*e23*e13-e11*e28*e18+e17*e20*e16+e17*e10*e26+e17*e22*e18+e17*e12*e28+e17*e11*e27+e27*e10*e16+0.5*e21*e172+e14*e11*e24+e24*e10*e13+e24*e12*e15+0.5*e21*e142+e14*e20*e13; - A[3 + 10*7]=-0.5*e01*e262-0.5*e01*e282-0.5*e01*e252-0.5*e01*e232+0.5*e01*e272+e27*e22*e08+e27*e02*e28-e21*e23*e03-e21*e26*e06-e21*e25*e05-e21*e28*e08+e04*e22*e25+e24*e20*e03+e24*e00*e23+e24*e22*e05+e24*e02*e25+e07*e20*e26+e07*e21*e27+e07*e22*e28+e27*e20*e06+e27*e00*e26+e21*e20*e00+e21*e22*e02+e04*e20*e23+e04*e21*e24+0.5*e01*e222+0.5*e01*e242+1.5*e01*e212+0.5*e01*e202; - A[3 + 10*8]=-0.5*e11*e282-0.5*e11*e252-e21*e26*e16+e27*e12*e28-e21*e25*e15-e21*e23*e13-e21*e28*e18+e17*e20*e26+e17*e21*e27+e17*e22*e28+e27*e20*e16+e27*e10*e26+e27*e22*e18+0.5*e11*e242+0.5*e11*e272-0.5*e11*e232-0.5*e11*e262+0.5*e11*e202+1.5*e11*e212+0.5*e11*e222+e21*e20*e10+e14*e20*e23+e14*e21*e24+e14*e22*e25+e24*e20*e13+e24*e10*e23+e24*e22*e15+e24*e12*e25+e21*e22*e12; - A[3 + 10*9]=0.5*e21*e202+0.5*e213+0.5*e21*e222+e24*e20*e23+0.5*e21*e242+e24*e22*e25+e27*e20*e26+0.5*e21*e272+e27*e22*e28-0.5*e21*e232-0.5*e21*e262-0.5*e21*e282-0.5*e21*e252; - A[3 + 10*10]=-0.5*e31*e032-0.5*e31*e052-0.5*e31*e062-0.5*e31*e082+e07*e30*e06+e07*e00*e36+e07*e01*e37+e07*e32*e08+e07*e02*e38+e37*e00*e06+e37*e02*e08-e01*e33*e03-e01*e36*e06-e01*e35*e05-e01*e38*e08+0.5*e31*e072+e04*e30*e03+e04*e00*e33+e04*e01*e34+e04*e32*e05+e04*e02*e35+e34*e00*e03+e34*e02*e05+0.5*e31*e002+0.5*e31*e022+0.5*e31*e042+e01*e30*e00+e01*e32*e02+1.5*e31*e012; - A[3 + 10*11]=e34*e12*e05+e34*e02*e15+e07*e10*e36+e07*e32*e18+e07*e12*e38+e07*e31*e17+e07*e11*e37+e17*e30*e06+e17*e00*e36+e17*e01*e37+e17*e32*e08+e17*e02*e38+e37*e10*e06+e37*e00*e16+e37*e12*e08+e37*e02*e18-e01*e36*e16-e01*e35*e15-e01*e33*e13-e01*e38*e18-e11*e33*e03-e11*e36*e06-e11*e35*e05+e01*e30*e10+e01*e32*e12+3*e01*e31*e11+e11*e30*e00+e11*e32*e02+e31*e10*e00+e31*e12*e02+e04*e30*e13+e04*e10*e33+e04*e32*e15+e04*e12*e35+e04*e31*e14+e04*e11*e34+e14*e30*e03+e14*e00*e33+e14*e01*e34+e14*e32*e05+e14*e02*e35+e34*e10*e03+e34*e00*e13+e07*e30*e16-e11*e38*e08-e31*e13*e03-e31*e16*e06-e31*e15*e05-e31*e18*e08; - A[3 + 10*12]=-e11*e33*e13-e11*e38*e18+0.5*e31*e142+0.5*e31*e172-0.5*e31*e162-0.5*e31*e152-0.5*e31*e132-0.5*e31*e182+0.5*e31*e122+0.5*e31*e102+e11*e30*e10+e11*e32*e12+e14*e30*e13+e14*e10*e33+e14*e32*e15+e14*e12*e35+e14*e11*e34+e34*e10*e13+e34*e12*e15+e17*e30*e16+e17*e10*e36+e17*e32*e18+e17*e12*e38+e17*e11*e37+e37*e10*e16+e37*e12*e18-e11*e36*e16-e11*e35*e15+1.5*e31*e112; - A[3 + 10*13]=-e21*e35*e05+e07*e32*e28+e01*e30*e20-e21*e33*e03-e21*e36*e06-e21*e38*e08-e31*e23*e03-e31*e26*e06-e31*e25*e05-e31*e28*e08+3*e01*e31*e21+e01*e32*e22+e21*e30*e00+e21*e32*e02+e31*e20*e00+e31*e22*e02+e04*e30*e23+e04*e20*e33+e04*e31*e24+e04*e21*e34+e04*e32*e25+e04*e22*e35+e24*e30*e03+e24*e00*e33+e24*e01*e34+e24*e32*e05+e24*e02*e35+e34*e20*e03+e34*e00*e23+e34*e22*e05+e34*e02*e25+e07*e30*e26+e07*e20*e36+e07*e31*e27+e07*e21*e37+e07*e22*e38+e27*e30*e06+e27*e00*e36+e27*e01*e37+e27*e32*e08+e27*e02*e38+e37*e00*e26+e37*e22*e08+e37*e02*e28-e01*e33*e23-e01*e36*e26-e01*e38*e28-e01*e35*e25+e37*e20*e06; - A[3 + 10*14]=e11*e32*e22+e34*e12*e25+e11*e30*e20+3*e11*e31*e21+e21*e30*e10+e21*e32*e12+e34*e10*e23+e34*e22*e15+e17*e30*e26+e17*e20*e36+e17*e31*e27+e17*e21*e37+e17*e32*e28+e17*e22*e38+e27*e30*e16+e27*e10*e36+e27*e32*e18+e27*e12*e38+e27*e11*e37+e37*e20*e16+e37*e10*e26+e37*e22*e18+e37*e12*e28-e11*e33*e23-e11*e36*e26-e11*e38*e28-e11*e35*e25-e21*e36*e16-e21*e35*e15-e21*e33*e13-e21*e38*e18-e31*e26*e16-e31*e25*e15-e31*e23*e13-e31*e28*e18+e31*e20*e10+e31*e22*e12+e14*e30*e23+e14*e20*e33+e14*e31*e24+e14*e21*e34+e14*e32*e25+e14*e22*e35+e24*e30*e13+e24*e10*e33+e24*e32*e15+e24*e12*e35+e24*e11*e34+e34*e20*e13; - A[3 + 10*15]=-e21*e36*e26+e37*e22*e28-e21*e33*e23-e21*e38*e28-e21*e35*e25+0.5*e31*e222+0.5*e31*e242+0.5*e31*e272-0.5*e31*e232-0.5*e31*e262-0.5*e31*e282-0.5*e31*e252+e21*e30*e20+e21*e32*e22+e24*e30*e23+e24*e20*e33+e24*e21*e34+e24*e32*e25+e24*e22*e35+e34*e20*e23+e34*e22*e25+e27*e30*e26+e27*e20*e36+e27*e21*e37+e27*e32*e28+e27*e22*e38+e37*e20*e26+1.5*e31*e212+0.5*e31*e202; - A[3 + 10*16]=e04*e32*e35+0.5*e01*e372-0.5*e01*e352-0.5*e01*e362-0.5*e01*e332-0.5*e01*e382+e04*e31*e34+e34*e30*e03+e34*e00*e33+e34*e32*e05+e34*e02*e35+e07*e30*e36+e07*e32*e38+e07*e31*e37+e37*e30*e06+e37*e00*e36+e37*e32*e08+e04*e30*e33+e37*e02*e38-e31*e33*e03-e31*e36*e06-e31*e35*e05-e31*e38*e08+0.5*e01*e302+0.5*e01*e322+1.5*e01*e312+0.5*e01*e342+e31*e30*e00+e31*e32*e02; - A[3 + 10*17]=e31*e32*e12+e14*e30*e33+e14*e32*e35+e14*e31*e34+e34*e30*e13+e34*e10*e33+e34*e32*e15+e34*e12*e35+e17*e30*e36+e17*e32*e38+e17*e31*e37+e37*e30*e16+e37*e10*e36+e37*e32*e18+e37*e12*e38-e31*e36*e16-e31*e35*e15+0.5*e11*e302+0.5*e11*e322+1.5*e11*e312-e31*e33*e13-e31*e38*e18+0.5*e11*e342+0.5*e11*e372+e31*e30*e10-0.5*e11*e352-0.5*e11*e362-0.5*e11*e332-0.5*e11*e382; - A[3 + 10*18]=e34*e32*e25+0.5*e21*e342+0.5*e21*e372-0.5*e21*e352-0.5*e21*e362-0.5*e21*e332-0.5*e21*e382+0.5*e21*e302+0.5*e21*e322+1.5*e21*e312+e31*e30*e20+e31*e32*e22+e24*e30*e33+e24*e32*e35+e24*e31*e34+e34*e30*e23+e34*e20*e33+e34*e22*e35+e27*e30*e36+e27*e32*e38+e27*e31*e37+e37*e30*e26+e37*e20*e36+e37*e32*e28+e37*e22*e38-e31*e33*e23-e31*e36*e26-e31*e38*e28-e31*e35*e25; - A[3 + 10*19]=0.5*e31*e302+0.5*e31*e322+0.5*e313+e34*e30*e33+e34*e32*e35+0.5*e31*e342+e37*e30*e36+e37*e32*e38+0.5*e31*e372-0.5*e31*e352-0.5*e31*e362-0.5*e31*e332-0.5*e31*e382; - A[4 + 10*0]=e01*e00*e03+0.5*e012*e04+e01*e02*e05+0.5*e04*e032+0.5*e043+0.5*e04*e052+e07*e03*e06+0.5*e04*e072+e07*e05*e08-0.5*e04*e002-0.5*e04*e022-0.5*e04*e062-0.5*e04*e082; - A[4 + 10*1]=e07*e13*e06+e01*e10*e03-0.5*e14*e002-0.5*e14*e022-0.5*e14*e062-0.5*e14*e082+e01*e00*e13+e01*e11*e04+e01*e12*e05+e01*e02*e15+e11*e00*e03+e11*e02*e05+e04*e13*e03+e04*e15*e05+e07*e03*e16+e07*e04*e17+e07*e15*e08+e07*e05*e18+e17*e03*e06+e17*e05*e08-e04*e10*e00-e04*e12*e02-e04*e16*e06-e04*e18*e08+0.5*e012*e14+1.5*e14*e042+0.5*e14*e032+0.5*e14*e052+0.5*e14*e072; - A[4 + 10*2]=e11*e10*e03+0.5*e112*e04+0.5*e04*e132+0.5*e04*e152+1.5*e04*e142+0.5*e04*e172-0.5*e04*e102-0.5*e04*e162-0.5*e04*e122-0.5*e04*e182+e01*e10*e13+e01*e12*e15+e01*e11*e14+e11*e00*e13+e11*e12*e05+e11*e02*e15+e14*e13*e03+e14*e15*e05+e07*e13*e16+e07*e15*e18+e07*e14*e17+e17*e13*e06+e17*e03*e16+e17*e15*e08+e17*e05*e18-e14*e10*e00-e14*e12*e02-e14*e16*e06-e14*e18*e08; - A[4 + 10*3]=e11*e10*e13+e11*e12*e15+0.5*e112*e14+0.5*e14*e132+0.5*e14*e152+0.5*e143+e17*e13*e16+e17*e15*e18+0.5*e14*e172-0.5*e14*e102-0.5*e14*e162-0.5*e14*e122-0.5*e14*e182; - A[4 + 10*4]=-e04*e28*e08-e04*e26*e06-e04*e22*e02-e04*e20*e00+e27*e05*e08+e27*e03*e06+e07*e05*e28+e07*e25*e08+e07*e04*e27+e07*e03*e26+e07*e23*e06+e04*e25*e05+e04*e23*e03+e21*e02*e05+e21*e00*e03+e01*e02*e25+e01*e22*e05+e01*e21*e04+e01*e00*e23+e01*e20*e03+0.5*e012*e24+0.5*e24*e072+0.5*e24*e052+0.5*e24*e032+1.5*e24*e042-0.5*e24*e022-0.5*e24*e002-0.5*e24*e082-0.5*e24*e062; - A[4 + 10*5]=e11*e02*e25+e11*e22*e05+e11*e21*e04-e24*e18*e08-e24*e16*e06-e24*e12*e02-e14*e28*e08-e14*e26*e06-e14*e22*e02-e14*e20*e00-e04*e28*e18-e04*e22*e12-e04*e26*e16-e04*e20*e10+e27*e05*e18+e27*e15*e08+e27*e03*e16+e27*e13*e06+e17*e05*e28+e17*e25*e08+e17*e04*e27+e17*e03*e26+e17*e23*e06+e07*e14*e27+e07*e24*e17+e07*e15*e28+e07*e25*e18+e07*e13*e26+e07*e23*e16+e24*e15*e05+e24*e13*e03+e14*e25*e05+e14*e23*e03+3*e04*e24*e14+e04*e25*e15+e04*e23*e13+e21*e02*e15+e21*e12*e05+e21*e00*e13+e21*e10*e03-e24*e10*e00+e01*e20*e13+e01*e10*e23+e01*e22*e15+e01*e12*e25+e01*e11*e24+e11*e20*e03+e11*e00*e23+e01*e21*e14; - A[4 + 10*6]=e11*e12*e25-0.5*e24*e182-0.5*e24*e102-0.5*e24*e162-0.5*e24*e122+e27*e13*e16+e27*e15*e18-e14*e20*e10-e14*e26*e16-e14*e22*e12-e14*e28*e18+e17*e15*e28+e17*e14*e27+1.5*e24*e142+0.5*e24*e132+0.5*e24*e152+0.5*e112*e24+0.5*e24*e172+e11*e21*e14+e11*e22*e15+e11*e10*e23+e11*e20*e13+e21*e10*e13+e21*e12*e15+e17*e13*e26+e17*e23*e16+e14*e25*e15+e14*e23*e13+e17*e25*e18; - A[4 + 10*7]=e27*e03*e26+e27*e25*e08+e27*e05*e28-e24*e20*e00-e24*e22*e02-e24*e26*e06-e24*e28*e08+0.5*e04*e232+1.5*e04*e242+0.5*e04*e252+0.5*e04*e272-0.5*e04*e202-0.5*e04*e222-0.5*e04*e262-0.5*e04*e282+e24*e23*e03+e24*e25*e05+e07*e23*e26+e07*e24*e27+e07*e25*e28+e27*e23*e06+e21*e20*e03+e21*e00*e23+e21*e22*e05+e21*e02*e25+0.5*e212*e04+e01*e20*e23+e01*e21*e24+e01*e22*e25; - A[4 + 10*8]=-e24*e22*e12-e24*e28*e18+0.5*e14*e272-0.5*e14*e202-0.5*e14*e222-0.5*e14*e262-0.5*e14*e282+e17*e23*e26+e17*e24*e27+e17*e25*e28+e27*e23*e16+e27*e13*e26+e27*e25*e18+e27*e15*e28-e24*e20*e10-e24*e26*e16+0.5*e14*e232+1.5*e14*e242+0.5*e14*e252+e21*e10*e23+e21*e22*e15+e21*e12*e25+e24*e23*e13+e24*e25*e15+e21*e20*e13+0.5*e212*e14+e11*e20*e23+e11*e22*e25+e11*e21*e24; - A[4 + 10*9]=e21*e20*e23+0.5*e212*e24+e21*e22*e25+0.5*e24*e232+0.5*e243+0.5*e24*e252+e27*e23*e26+0.5*e24*e272+e27*e25*e28-0.5*e24*e202-0.5*e24*e222-0.5*e24*e262-0.5*e24*e282; - A[4 + 10*10]=-e04*e38*e08-e04*e32*e02-e04*e36*e06-0.5*e34*e002-0.5*e34*e022-0.5*e34*e062-0.5*e34*e082+e37*e03*e06+e37*e05*e08-e04*e30*e00+0.5*e34*e032+0.5*e34*e052+0.5*e34*e072+1.5*e34*e042+e01*e30*e03+e01*e00*e33+e01*e31*e04+e01*e32*e05+e01*e02*e35+e31*e00*e03+e31*e02*e05+e04*e33*e03+e04*e35*e05+e07*e03*e36+e07*e04*e37+e07*e35*e08+e07*e05*e38+0.5*e012*e34+e07*e33*e06; - A[4 + 10*11]=e07*e13*e36+e01*e12*e35-e04*e30*e10+e17*e04*e37+e17*e35*e08+e17*e05*e38+e37*e13*e06+e37*e03*e16+e37*e15*e08+e37*e05*e18-e04*e36*e16+e17*e33*e06+e04*e33*e13+e04*e35*e15+3*e04*e34*e14+e14*e33*e03+e14*e35*e05+e34*e13*e03+e34*e15*e05+e07*e33*e16+e07*e35*e18+e07*e15*e38+e07*e34*e17+e07*e14*e37+e17*e03*e36+e31*e10*e03+e01*e30*e13+e01*e10*e33+e01*e32*e15+e01*e31*e14+e01*e11*e34+e11*e30*e03+e11*e00*e33+e11*e31*e04+e11*e32*e05+e11*e02*e35+e31*e00*e13+e31*e12*e05+e31*e02*e15-e34*e12*e02-e34*e16*e06-e34*e18*e08-e14*e32*e02-e14*e36*e06-e14*e38*e08-e34*e10*e00-e04*e32*e12-e04*e38*e18-e14*e30*e00; - A[4 + 10*12]=e11*e32*e15-0.5*e34*e102-0.5*e34*e162-0.5*e34*e122-0.5*e34*e182+e37*e13*e16+0.5*e112*e34+1.5*e34*e142+0.5*e34*e132+0.5*e34*e152+0.5*e34*e172+e11*e30*e13+e11*e10*e33+e11*e12*e35+e11*e31*e14+e31*e10*e13+e31*e12*e15+e14*e33*e13+e14*e35*e15+e17*e33*e16+e17*e13*e36+e17*e35*e18+e17*e15*e38+e17*e14*e37+e37*e15*e18-e14*e30*e10-e14*e36*e16-e14*e32*e12-e14*e38*e18; - A[4 + 10*13]=e01*e22*e35-e04*e30*e20-e04*e32*e22+e01*e31*e24+e01*e21*e34+e01*e32*e25+e21*e30*e03+e21*e00*e33+e21*e31*e04+e21*e32*e05+e21*e02*e35+e31*e20*e03+e31*e00*e23+e31*e22*e05+e31*e02*e25+e04*e33*e23+3*e04*e34*e24+e04*e35*e25+e24*e33*e03+e37*e05*e28-e04*e36*e26-e04*e38*e28-e24*e30*e00-e24*e32*e02-e24*e36*e06-e24*e38*e08+e24*e35*e05+e34*e23*e03+e34*e25*e05+e07*e33*e26+e07*e23*e36+e07*e34*e27+e07*e24*e37+e07*e35*e28+e07*e25*e38+e27*e33*e06+e27*e03*e36+e27*e04*e37+e27*e35*e08+e27*e05*e38+e37*e23*e06+e37*e03*e26+e37*e25*e08-e34*e20*e00-e34*e22*e02-e34*e26*e06-e34*e28*e08+e01*e30*e23+e01*e20*e33; - A[4 + 10*14]=e21*e10*e33+e11*e30*e23+e11*e20*e33+e11*e31*e24+e11*e21*e34+e11*e32*e25+e11*e22*e35+e21*e30*e13+e21*e32*e15+e21*e12*e35+e21*e31*e14+e31*e20*e13+e31*e10*e23+e31*e22*e15+e31*e12*e25+e14*e33*e23+3*e14*e34*e24+e14*e35*e25+e24*e33*e13+e24*e35*e15+e34*e23*e13+e34*e25*e15+e17*e33*e26+e17*e23*e36+e17*e34*e27+e17*e24*e37+e17*e35*e28+e17*e25*e38+e27*e33*e16+e27*e13*e36+e27*e35*e18+e27*e15*e38+e27*e14*e37+e37*e23*e16+e37*e13*e26+e37*e25*e18+e37*e15*e28-e34*e28*e18-e34*e22*e12-e14*e32*e22-e14*e36*e26-e14*e38*e28-e24*e30*e10-e24*e36*e16-e24*e32*e12-e24*e38*e18-e34*e20*e10-e34*e26*e16-e14*e30*e20; - A[4 + 10*15]=-0.5*e34*e202-0.5*e34*e222-0.5*e34*e262-0.5*e34*e282+e37*e25*e28-e24*e32*e22-e24*e36*e26-e24*e38*e28-e24*e30*e20+0.5*e212*e34+1.5*e34*e242+0.5*e34*e232+0.5*e34*e252+0.5*e34*e272+e21*e30*e23+e21*e20*e33+e21*e31*e24+e21*e32*e25+e21*e22*e35+e31*e20*e23+e31*e22*e25+e24*e33*e23+e24*e35*e25+e27*e33*e26+e27*e23*e36+e27*e24*e37+e27*e35*e28+e27*e25*e38+e37*e23*e26; - A[4 + 10*16]=e37*e33*e06+e01*e30*e33+e01*e31*e34+e31*e30*e03+e31*e02*e35+e34*e33*e03+e34*e35*e05+e07*e33*e36+e07*e35*e38+e07*e34*e37+e37*e03*e36+e37*e35*e08+e37*e05*e38-e34*e32*e02-e34*e36*e06-e34*e38*e08+e31*e32*e05+e31*e00*e33+0.5*e312*e04+0.5*e04*e332+0.5*e04*e352+1.5*e04*e342+0.5*e04*e372+e01*e32*e35-0.5*e04*e302-0.5*e04*e322-0.5*e04*e362-0.5*e04*e382-e34*e30*e00; - A[4 + 10*17]=0.5*e14*e372-0.5*e14*e302-0.5*e14*e322-0.5*e14*e362-0.5*e14*e382+0.5*e312*e14+0.5*e14*e332+0.5*e14*e352+1.5*e14*e342+e11*e30*e33+e11*e32*e35+e11*e31*e34+e31*e30*e13+e31*e10*e33+e31*e32*e15+e31*e12*e35+e34*e33*e13+e34*e35*e15+e17*e33*e36+e17*e35*e38+e17*e34*e37+e37*e33*e16+e37*e13*e36+e37*e35*e18+e37*e15*e38-e34*e30*e10-e34*e36*e16-e34*e32*e12-e34*e38*e18; - A[4 + 10*18]=-e34*e32*e22-e34*e36*e26-e34*e38*e28+0.5*e24*e332+0.5*e24*e352+1.5*e24*e342+0.5*e24*e372-0.5*e24*e302-0.5*e24*e322-0.5*e24*e362-0.5*e24*e382+e21*e30*e33+0.5*e312*e24+e21*e32*e35+e21*e31*e34+e31*e30*e23+e31*e20*e33+e31*e32*e25+e31*e22*e35+e34*e33*e23+e34*e35*e25+e27*e33*e36+e27*e35*e38+e27*e34*e37+e37*e33*e26+e37*e23*e36+e37*e35*e28+e37*e25*e38-e34*e30*e20; - A[4 + 10*19]=e31*e30*e33+e31*e32*e35+0.5*e312*e34+0.5*e34*e332+0.5*e34*e352+0.5*e343+e37*e33*e36+e37*e35*e38+0.5*e34*e372-0.5*e34*e302-0.5*e34*e322-0.5*e34*e362-0.5*e34*e382; - A[5 + 10*0]=e01*e00*e06+0.5*e012*e07+e01*e02*e08+e04*e03*e06+0.5*e042*e07+e04*e05*e08+0.5*e07*e062+0.5*e073+0.5*e07*e082-0.5*e07*e002-0.5*e07*e022-0.5*e07*e032-0.5*e07*e052; - A[5 + 10*1]=e04*e13*e06+0.5*e042*e17+1.5*e17*e072+0.5*e17*e062+0.5*e17*e082-0.5*e17*e002-0.5*e17*e022-0.5*e17*e032-0.5*e17*e052+e01*e10*e06+e07*e16*e06+e07*e18*e08-e07*e10*e00-e07*e12*e02-e07*e13*e03-e07*e15*e05+e01*e00*e16+e01*e11*e07+e01*e12*e08+e01*e02*e18+e11*e00*e06+e11*e02*e08+e04*e03*e16+e04*e14*e07+e04*e15*e08+e04*e05*e18+e14*e03*e06+e14*e05*e08+0.5*e012*e17; - A[5 + 10*2]=-e17*e10*e00+0.5*e112*e07+0.5*e142*e07+0.5*e07*e162+0.5*e07*e182+1.5*e07*e172-0.5*e07*e102-0.5*e07*e152-0.5*e07*e132-0.5*e07*e122+e01*e10*e16+e01*e12*e18+e01*e11*e17+e11*e10*e06+e11*e00*e16+e11*e12*e08+e11*e02*e18+e04*e13*e16+e04*e15*e18+e04*e14*e17+e14*e13*e06+e14*e03*e16+e14*e15*e08+e14*e05*e18+e17*e16*e06+e17*e18*e08-e17*e12*e02-e17*e13*e03-e17*e15*e05; - A[5 + 10*3]=e11*e10*e16+e11*e12*e18+0.5*e112*e17+e14*e13*e16+e14*e15*e18+0.5*e142*e17+0.5*e17*e162+0.5*e17*e182+0.5*e173-0.5*e17*e102-0.5*e17*e152-0.5*e17*e132-0.5*e17*e122; - A[5 + 10*4]=e01*e22*e08+e07*e28*e08-e07*e20*e00-e07*e23*e03-e07*e22*e02-e07*e25*e05+0.5*e012*e27+0.5*e042*e27+1.5*e27*e072+0.5*e27*e062+0.5*e27*e082-0.5*e27*e002-0.5*e27*e022-0.5*e27*e032-0.5*e27*e052+e07*e26*e06+e01*e20*e06+e01*e00*e26+e01*e21*e07+e01*e02*e28+e21*e00*e06+e21*e02*e08+e04*e23*e06+e04*e03*e26+e04*e24*e07+e04*e25*e08+e04*e05*e28+e24*e03*e06+e24*e05*e08; - A[5 + 10*5]=e14*e24*e07+e14*e03*e26+e14*e23*e06+e04*e14*e27+e04*e24*e17+e04*e15*e28+e04*e25*e18+e04*e13*e26+e04*e23*e16+e21*e02*e18+e21*e12*e08-e27*e15*e05-e27*e13*e03-e27*e12*e02-e27*e10*e00-e17*e25*e05-e17*e23*e03-e17*e22*e02-e17*e20*e00-e07*e22*e12-e07*e23*e13-e07*e25*e15-e07*e20*e10+e27*e18*e08+e27*e16*e06+e17*e28*e08+e17*e26*e06+3*e07*e27*e17+e07*e28*e18+e07*e26*e16+e24*e05*e18+e24*e15*e08+e24*e03*e16+e24*e13*e06+e14*e05*e28+e14*e25*e08+e01*e12*e28+e01*e20*e16+e01*e10*e26+e01*e22*e18+e01*e21*e17+e11*e20*e06+e01*e11*e27+e21*e00*e16+e21*e10*e06+e11*e21*e07+e11*e22*e08+e11*e02*e28+e11*e00*e26; - A[5 + 10*6]=-0.5*e27*e102-0.5*e27*e152-0.5*e27*e132-0.5*e27*e122+0.5*e142*e27+1.5*e27*e172+0.5*e27*e162+0.5*e27*e182+0.5*e112*e27+e11*e22*e18+e11*e10*e26+e11*e20*e16-e17*e22*e12-e17*e23*e13-e17*e25*e15-e17*e20*e10+e17*e28*e18+e17*e26*e16+e24*e15*e18+e24*e13*e16+e14*e24*e17+e14*e15*e28+e14*e25*e18+e14*e13*e26+e14*e23*e16+e21*e12*e18+e21*e10*e16+e11*e21*e17+e11*e12*e28; - A[5 + 10*7]=-0.5*e07*e252+e27*e26*e06+e27*e28*e08-e27*e20*e00-e27*e22*e02-e27*e23*e03-e27*e25*e05+1.5*e07*e272+0.5*e07*e282+e01*e22*e28+e21*e20*e06+e21*e00*e26+e21*e22*e08+e21*e02*e28+e04*e23*e26+e04*e24*e27+e04*e25*e28+e24*e23*e06+e24*e03*e26+e24*e25*e08+e24*e05*e28+0.5*e212*e07+0.5*e242*e07+0.5*e07*e262+e01*e20*e26+e01*e21*e27-0.5*e07*e202-0.5*e07*e232-0.5*e07*e222; - A[5 + 10*8]=-e27*e25*e15-e27*e23*e13-e27*e22*e12-0.5*e17*e252-0.5*e17*e202-0.5*e17*e222-0.5*e17*e232+0.5*e17*e262+1.5*e17*e272+0.5*e17*e282+e24*e23*e16+e24*e13*e26+e24*e25*e18+e24*e15*e28+e27*e26*e16+e27*e28*e18-e27*e20*e10+e14*e24*e27+e14*e25*e28+0.5*e212*e17+0.5*e242*e17+e11*e20*e26+e11*e21*e27+e11*e22*e28+e21*e20*e16+e21*e10*e26+e21*e22*e18+e21*e12*e28+e14*e23*e26; - A[5 + 10*9]=e21*e20*e26+0.5*e212*e27+e21*e22*e28+e24*e23*e26+0.5*e242*e27+e24*e25*e28+0.5*e27*e262+0.5*e273+0.5*e27*e282-0.5*e27*e202-0.5*e27*e222-0.5*e27*e232-0.5*e27*e252; - A[5 + 10*10]=e04*e05*e38+e01*e30*e06-0.5*e37*e002-0.5*e37*e022-0.5*e37*e032-0.5*e37*e052-e07*e32*e02-e07*e35*e05-e07*e33*e03+e07*e36*e06+e07*e38*e08-e07*e30*e00+1.5*e37*e072+0.5*e37*e062+0.5*e37*e082+e01*e02*e38+e31*e00*e06+e31*e02*e08+e04*e33*e06+e04*e03*e36+e04*e34*e07+e04*e35*e08+e34*e03*e06+e34*e05*e08+0.5*e012*e37+0.5*e042*e37+e01*e00*e36+e01*e31*e07+e01*e32*e08; - A[5 + 10*11]=e14*e33*e06+e11*e30*e06+e11*e00*e36+e11*e31*e07+e31*e10*e06+e11*e32*e08+e11*e02*e38+e31*e00*e16+e31*e12*e08+e31*e02*e18+e04*e33*e16+e04*e13*e36+e04*e35*e18+e04*e15*e38+e01*e10*e36+e01*e32*e18+e01*e12*e38+e01*e31*e17+e01*e11*e37+e01*e30*e16-e17*e35*e05-e37*e10*e00-e37*e12*e02-e37*e13*e03-e37*e15*e05+e37*e18*e08-e07*e30*e10-e07*e35*e15-e07*e33*e13-e07*e32*e12-e17*e30*e00-e17*e32*e02-e17*e33*e03+e07*e38*e18+3*e07*e37*e17+e17*e36*e06+e17*e38*e08+e37*e16*e06+e04*e34*e17+e04*e14*e37+e14*e03*e36+e14*e34*e07+e14*e35*e08+e14*e05*e38+e34*e13*e06+e34*e03*e16+e34*e15*e08+e34*e05*e18+e07*e36*e16; - A[5 + 10*12]=e11*e32*e18-0.5*e37*e102-0.5*e37*e152-0.5*e37*e132-0.5*e37*e122+0.5*e112*e37+0.5*e142*e37+1.5*e37*e172+0.5*e37*e162+0.5*e37*e182+e11*e10*e36+e11*e12*e38+e11*e31*e17+e31*e10*e16+e31*e12*e18+e14*e33*e16+e14*e13*e36+e14*e35*e18+e14*e15*e38+e14*e34*e17+e34*e13*e16+e34*e15*e18+e17*e36*e16+e17*e38*e18-e17*e30*e10-e17*e35*e15-e17*e33*e13-e17*e32*e12+e11*e30*e16; - A[5 + 10*13]=e01*e20*e36+e01*e31*e27+e01*e21*e37+e01*e32*e28+e01*e22*e38+e21*e30*e06+e21*e00*e36+e21*e31*e07+e21*e32*e08+e21*e02*e38+e01*e30*e26+e31*e20*e06+e31*e00*e26+e31*e22*e08+e31*e02*e28+e04*e33*e26+e04*e23*e36+e04*e34*e27+e04*e24*e37+e04*e35*e28+e04*e25*e38+e24*e33*e06+e24*e03*e36+e24*e34*e07+e24*e35*e08+e24*e05*e38+e34*e23*e06+e34*e03*e26+e34*e25*e08+e34*e05*e28+e07*e36*e26+3*e07*e37*e27+e07*e38*e28+e27*e36*e06+e27*e38*e08+e37*e26*e06+e37*e28*e08-e07*e30*e20-e07*e32*e22-e07*e33*e23-e07*e35*e25-e27*e30*e00-e27*e32*e02-e27*e33*e03-e27*e35*e05-e37*e20*e00-e37*e22*e02-e37*e23*e03-e37*e25*e05; - A[5 + 10*14]=e11*e30*e26+e11*e20*e36+e11*e31*e27+e11*e21*e37+e11*e32*e28+e11*e22*e38+e21*e10*e36+e21*e32*e18+e21*e12*e38+e21*e31*e17+e31*e20*e16+e31*e10*e26+e31*e22*e18+e31*e12*e28+e14*e33*e26+e14*e23*e36+e14*e34*e27+e14*e24*e37+e14*e35*e28+e14*e25*e38+e24*e33*e16+e24*e13*e36+e24*e35*e18+e24*e15*e38+e24*e34*e17+e34*e23*e16+e34*e13*e26+e34*e25*e18+e34*e15*e28+e17*e36*e26+3*e17*e37*e27+e17*e38*e28+e27*e36*e16+e27*e38*e18+e37*e26*e16+e37*e28*e18-e17*e30*e20-e17*e32*e22-e17*e33*e23-e17*e35*e25-e27*e30*e10-e27*e35*e15-e27*e33*e13-e27*e32*e12-e37*e20*e10-e37*e25*e15-e37*e23*e13-e37*e22*e12+e21*e30*e16; - A[5 + 10*15]=e21*e20*e36+e21*e31*e27+e21*e32*e28+e21*e22*e38+e31*e22*e28+e24*e33*e26+e24*e23*e36+e24*e34*e27+e24*e35*e28+e24*e25*e38+e34*e23*e26+e34*e25*e28+e27*e36*e26+e27*e38*e28-e27*e30*e20-e27*e32*e22-e27*e33*e23-e27*e35*e25+0.5*e242*e37+1.5*e37*e272+0.5*e37*e262+0.5*e37*e282+e31*e20*e26+e21*e30*e26+0.5*e212*e37-0.5*e37*e202-0.5*e37*e222-0.5*e37*e232-0.5*e37*e252; - A[5 + 10*16]=e01*e30*e36+e01*e32*e38+e01*e31*e37+e31*e30*e06+e31*e00*e36+e31*e32*e08+e31*e02*e38+e04*e33*e36+e04*e35*e38+e04*e34*e37+e34*e33*e06+e34*e03*e36+e34*e35*e08+e34*e05*e38+e37*e36*e06+e37*e38*e08-e37*e30*e00-e37*e32*e02-e37*e33*e03-e37*e35*e05+0.5*e312*e07+0.5*e342*e07+0.5*e07*e362+0.5*e07*e382+1.5*e07*e372-0.5*e07*e302-0.5*e07*e352-0.5*e07*e322-0.5*e07*e332; - A[5 + 10*17]=0.5*e312*e17+0.5*e342*e17+0.5*e17*e362+0.5*e17*e382+1.5*e17*e372-0.5*e17*e302-0.5*e17*e352-0.5*e17*e322-0.5*e17*e332-e37*e32*e12-e37*e33*e13+e11*e30*e36+e11*e32*e38+e11*e31*e37+e31*e30*e16+e31*e10*e36+e31*e32*e18+e31*e12*e38+e14*e33*e36+e14*e35*e38+e14*e34*e37+e34*e33*e16+e34*e13*e36+e34*e35*e18+e34*e15*e38+e37*e36*e16+e37*e38*e18-e37*e30*e10-e37*e35*e15; - A[5 + 10*18]=e21*e31*e37-0.5*e27*e332+e21*e30*e36+e21*e32*e38+e31*e30*e26+e31*e20*e36+e31*e32*e28+e31*e22*e38+e24*e33*e36+e24*e35*e38+e24*e34*e37+e34*e33*e26+e34*e23*e36+e34*e35*e28+e34*e25*e38+e37*e36*e26+e37*e38*e28-e37*e30*e20-e37*e32*e22-e37*e33*e23-e37*e35*e25+0.5*e312*e27+0.5*e342*e27+0.5*e27*e362+0.5*e27*e382+1.5*e27*e372-0.5*e27*e302-0.5*e27*e352-0.5*e27*e322; - A[5 + 10*19]=e31*e30*e36+e31*e32*e38+0.5*e312*e37+e34*e33*e36+e34*e35*e38+0.5*e342*e37+0.5*e37*e362+0.5*e37*e382+0.5*e373-0.5*e37*e302-0.5*e37*e352-0.5*e37*e322-0.5*e37*e332; - A[6 + 10*0]=0.5*e02*e002+0.5*e02*e012+0.5*e023+e05*e00*e03+e05*e01*e04+0.5*e02*e052+e08*e00*e06+e08*e01*e07+0.5*e02*e082-0.5*e02*e032-0.5*e02*e042-0.5*e02*e062-0.5*e02*e072; - A[6 + 10*1]=-0.5*e12*e042-0.5*e12*e062-0.5*e12*e072+0.5*e12*e082-0.5*e12*e032+1.5*e12*e022+0.5*e12*e002+0.5*e12*e012+0.5*e12*e052+e02*e10*e00+e02*e11*e01+e05*e10*e03+e05*e00*e13+e05*e11*e04+e05*e01*e14+e05*e02*e15+e15*e00*e03+e15*e01*e04+e08*e10*e06+e08*e00*e16+e08*e11*e07+e08*e01*e17+e08*e02*e18+e18*e00*e06+e18*e01*e07-e02*e13*e03-e02*e14*e04-e02*e16*e06-e02*e17*e07; - A[6 + 10*2]=0.5*e02*e102+1.5*e02*e122+0.5*e02*e112+0.5*e02*e152+0.5*e02*e182-0.5*e02*e162-0.5*e02*e172-0.5*e02*e132-0.5*e02*e142+e12*e10*e00+e12*e11*e01+e05*e10*e13+e05*e12*e15+e05*e11*e14+e15*e10*e03+e15*e00*e13+e15*e11*e04+e15*e01*e14+e08*e10*e16+e08*e12*e18+e08*e11*e17+e18*e10*e06+e18*e00*e16+e18*e11*e07+e18*e01*e17-e12*e13*e03-e12*e14*e04-e12*e16*e06-e12*e17*e07; - A[6 + 10*3]=0.5*e12*e102+0.5*e123+0.5*e12*e112+e15*e10*e13+0.5*e12*e152+e15*e11*e14+e18*e10*e16+0.5*e12*e182+e18*e11*e17-0.5*e12*e162-0.5*e12*e172-0.5*e12*e132-0.5*e12*e142; - A[6 + 10*4]=-0.5*e22*e032-0.5*e22*e042-0.5*e22*e062-0.5*e22*e072+0.5*e22*e082+1.5*e22*e022+0.5*e22*e002+0.5*e22*e012+0.5*e22*e052+e02*e20*e00+e02*e21*e01+e05*e20*e03+e05*e00*e23+e05*e21*e04+e05*e01*e24+e05*e02*e25+e25*e00*e03+e25*e01*e04+e08*e20*e06+e08*e00*e26+e08*e21*e07+e08*e01*e27+e08*e02*e28+e28*e00*e06+e28*e01*e07-e02*e27*e07-e02*e23*e03-e02*e24*e04-e02*e26*e06; - A[6 + 10*5]=-e22*e17*e07-e22*e16*e06-e22*e14*e04-e22*e13*e03-e12*e26*e06-e12*e24*e04-e12*e23*e03-e12*e27*e07-e02*e24*e14-e02*e23*e13-e02*e27*e17-e02*e26*e16+e28*e01*e17+e28*e11*e07+e28*e00*e16+e28*e10*e06+e18*e02*e28+e18*e01*e27+e18*e21*e07+e18*e00*e26+e18*e20*e06+e08*e11*e27+e08*e21*e17+e08*e12*e28+e08*e22*e18+e08*e10*e26+e25*e01*e14+e25*e11*e04+e25*e00*e13+e25*e10*e03+e15*e01*e24+e02*e21*e11+e12*e21*e01+e15*e02*e25+e15*e21*e04+e05*e22*e15+e05*e11*e24+e15*e20*e03+e15*e00*e23+e05*e10*e23+e05*e12*e25+e05*e21*e14+e22*e10*e00+e22*e11*e01+e02*e20*e10+3*e02*e22*e12+e12*e20*e00+e08*e20*e16+e05*e20*e13; - A[6 + 10*6]=-e12*e24*e14-e12*e23*e13-e12*e27*e17-e12*e26*e16+e28*e11*e17+e28*e10*e16+e18*e11*e27+e18*e21*e17+e18*e12*e28+e18*e10*e26+e18*e20*e16+e25*e11*e14+e25*e10*e13+e15*e11*e24+e15*e21*e14+e15*e12*e25+e15*e10*e23+e15*e20*e13+e12*e21*e11+0.5*e22*e182+0.5*e22*e152+1.5*e22*e122+0.5*e22*e102+e12*e20*e10+0.5*e22*e112-0.5*e22*e172-0.5*e22*e132-0.5*e22*e142-0.5*e22*e162; - A[6 + 10*7]=0.5*e02*e282+e28*e01*e27-e22*e27*e07-e22*e23*e03-e22*e24*e04-e22*e26*e06+0.5*e02*e252+e05*e20*e23+e05*e22*e25+e25*e20*e03+e25*e00*e23+e25*e21*e04+e25*e01*e24+e08*e20*e26+e08*e21*e27+e08*e22*e28+e28*e20*e06+e28*e00*e26+e28*e21*e07+e05*e21*e24+0.5*e02*e202+0.5*e02*e212+1.5*e02*e222+e22*e20*e00+e22*e21*e01-0.5*e02*e272-0.5*e02*e242-0.5*e02*e232-0.5*e02*e262; - A[6 + 10*8]=-e22*e27*e17-e22*e23*e13-e22*e24*e14-0.5*e12*e232-0.5*e12*e262-0.5*e12*e242-0.5*e12*e272+0.5*e12*e282+e18*e21*e27+e28*e20*e16+e28*e10*e26+e28*e21*e17+e28*e11*e27-e22*e26*e16+e18*e22*e28+0.5*e12*e252+0.5*e12*e202+0.5*e12*e212+1.5*e12*e222+e22*e20*e10+e15*e20*e23+e15*e21*e24+e15*e22*e25+e25*e20*e13+e25*e10*e23+e25*e21*e14+e25*e11*e24+e18*e20*e26+e22*e21*e11; - A[6 + 10*9]=0.5*e22*e202+0.5*e22*e212+0.5*e223+e25*e20*e23+e25*e21*e24+0.5*e22*e252+e28*e20*e26+e28*e21*e27+0.5*e22*e282-0.5*e22*e232-0.5*e22*e262-0.5*e22*e242-0.5*e22*e272; - A[6 + 10*10]=e08*e31*e07-0.5*e32*e032-e02*e33*e03-e02*e34*e04-e02*e36*e06-0.5*e32*e042-0.5*e32*e062-0.5*e32*e072+e38*e01*e07+e38*e00*e06-e02*e37*e07+e05*e31*e04+e05*e01*e34+e05*e02*e35+e35*e01*e04+e35*e00*e03+e08*e30*e06+e08*e00*e36+e08*e01*e37+e08*e02*e38+0.5*e32*e052+e02*e30*e00+e02*e31*e01+e05*e30*e03+e05*e00*e33+1.5*e32*e022+0.5*e32*e012+0.5*e32*e002+0.5*e32*e082; - A[6 + 10*11]=e05*e32*e15+e32*e11*e01+e38*e10*e06+e08*e12*e38-e32*e14*e04-e32*e16*e06-e32*e17*e07-e12*e36*e06-e32*e13*e03-e02*e34*e14-e12*e37*e07-e12*e33*e03-e12*e34*e04-e02*e37*e17-e02*e33*e13+e38*e01*e17-e02*e36*e16+e18*e01*e37+e18*e02*e38+e38*e00*e16+e38*e11*e07+e08*e30*e16+e08*e10*e36+e08*e32*e18+e08*e31*e17+e08*e11*e37+e18*e30*e06+e18*e00*e36+e18*e31*e07+e35*e10*e03+e35*e00*e13+e35*e11*e04+e35*e01*e14+e15*e02*e35+e05*e10*e33+e05*e12*e35+e05*e31*e14+e05*e11*e34+e15*e30*e03+e15*e00*e33+e15*e31*e04+e15*e01*e34+e05*e30*e13+e02*e30*e10+e02*e31*e11+3*e02*e32*e12+e12*e30*e00+e12*e31*e01+e32*e10*e00; - A[6 + 10*12]=0.5*e32*e102+0.5*e32*e112+e12*e30*e10+1.5*e32*e122+e12*e31*e11+e15*e30*e13+e15*e10*e33+e15*e12*e35+e15*e31*e14+e15*e11*e34+e35*e10*e13-0.5*e32*e162-0.5*e32*e172-0.5*e32*e132-0.5*e32*e142-e12*e37*e17-e12*e33*e13-e12*e34*e14+0.5*e32*e182+0.5*e32*e152+e35*e11*e14+e18*e30*e16+e18*e10*e36+e18*e12*e38+e18*e31*e17+e18*e11*e37+e38*e10*e16+e38*e11*e17-e12*e36*e16; - A[6 + 10*13]=3*e02*e32*e22+e05*e31*e24+e08*e22*e38+e02*e31*e21+e22*e30*e00+e22*e31*e01+e32*e20*e00+e32*e21*e01+e05*e30*e23+e05*e20*e33+e05*e21*e34-e22*e37*e07-e22*e33*e03-e22*e34*e04-e22*e36*e06-e32*e27*e07-e32*e23*e03-e32*e24*e04-e32*e26*e06+e05*e32*e25+e25*e30*e03+e25*e00*e33+e25*e31*e04+e25*e01*e34+e25*e02*e35+e35*e20*e03+e35*e00*e23+e35*e21*e04+e35*e01*e24+e08*e30*e26+e08*e20*e36+e08*e31*e27+e08*e21*e37+e08*e32*e28+e28*e30*e06+e28*e00*e36+e28*e31*e07+e28*e01*e37+e28*e02*e38+e38*e20*e06+e38*e00*e26+e38*e21*e07+e38*e01*e27-e02*e33*e23-e02*e36*e26-e02*e34*e24-e02*e37*e27+e05*e22*e35+e02*e30*e20; - A[6 + 10*14]=e18*e22*e38+e12*e31*e21+3*e12*e32*e22+e22*e30*e10+e22*e31*e11+e32*e20*e10+e32*e21*e11+e15*e30*e23+e15*e20*e33+e15*e31*e24+e15*e21*e34+e15*e32*e25+e15*e22*e35+e25*e30*e13+e25*e10*e33+e25*e12*e35+e25*e31*e14+e25*e11*e34+e35*e20*e13+e35*e10*e23+e35*e21*e14+e35*e11*e24+e18*e30*e26+e18*e20*e36+e18*e31*e27+e18*e21*e37+e18*e32*e28+e28*e30*e16+e28*e10*e36+e28*e12*e38+e28*e31*e17+e28*e11*e37+e38*e20*e16+e38*e10*e26+e12*e30*e20-e22*e37*e17-e22*e33*e13-e22*e34*e14-e32*e26*e16-e32*e27*e17-e32*e23*e13-e32*e24*e14-e22*e36*e16+e38*e21*e17+e38*e11*e27-e12*e33*e23-e12*e36*e26-e12*e34*e24-e12*e37*e27; - A[6 + 10*15]=e25*e30*e23+e22*e30*e20+e22*e31*e21+e25*e20*e33+e25*e31*e24+e25*e21*e34+e25*e22*e35+e35*e20*e23+e35*e21*e24+e28*e30*e26+e28*e20*e36+e28*e31*e27+e28*e21*e37+e28*e22*e38+e38*e20*e26+e38*e21*e27-e22*e33*e23-e22*e36*e26-e22*e34*e24-e22*e37*e27+0.5*e32*e212+0.5*e32*e252+1.5*e32*e222+0.5*e32*e202+0.5*e32*e282-0.5*e32*e232-0.5*e32*e262-0.5*e32*e242-0.5*e32*e272; - A[6 + 10*16]=0.5*e02*e302+1.5*e02*e322+0.5*e02*e312+0.5*e02*e352+0.5*e02*e382-0.5*e02*e342-0.5*e02*e362-0.5*e02*e332-0.5*e02*e372+e38*e30*e06+e32*e30*e00+e32*e31*e01+e05*e30*e33+e05*e32*e35+e05*e31*e34+e35*e30*e03+e35*e00*e33+e35*e31*e04+e35*e01*e34+e08*e30*e36+e08*e32*e38+e08*e31*e37+e38*e00*e36+e38*e31*e07+e38*e01*e37-e32*e37*e07-e32*e33*e03-e32*e34*e04-e32*e36*e06; - A[6 + 10*17]=e32*e30*e10+e32*e31*e11+e15*e30*e33+e15*e32*e35+e15*e31*e34+e35*e30*e13+e35*e10*e33+e35*e31*e14+e35*e11*e34+e18*e30*e36+e18*e32*e38+e18*e31*e37+e38*e30*e16+e38*e10*e36+e38*e31*e17+e38*e11*e37-e32*e36*e16-e32*e37*e17-e32*e33*e13-e32*e34*e14+0.5*e12*e382-0.5*e12*e342-0.5*e12*e362-0.5*e12*e332-0.5*e12*e372+0.5*e12*e352+1.5*e12*e322+0.5*e12*e312+0.5*e12*e302; - A[6 + 10*18]=0.5*e22*e302+0.5*e22*e312+0.5*e22*e352+0.5*e22*e382-0.5*e22*e342-0.5*e22*e362-0.5*e22*e332-0.5*e22*e372+1.5*e22*e322+e32*e30*e20+e32*e31*e21+e25*e30*e33+e25*e32*e35+e25*e31*e34+e35*e30*e23+e35*e20*e33+e35*e31*e24+e35*e21*e34+e28*e30*e36+e28*e32*e38+e28*e31*e37+e38*e30*e26+e38*e20*e36+e38*e31*e27+e38*e21*e37-e32*e33*e23-e32*e36*e26-e32*e34*e24-e32*e37*e27; - A[6 + 10*19]=0.5*e32*e302+0.5*e323+0.5*e32*e312+e35*e30*e33+0.5*e32*e352+e35*e31*e34+e38*e30*e36+0.5*e32*e382+e38*e31*e37-0.5*e32*e342-0.5*e32*e362-0.5*e32*e332-0.5*e32*e372; - A[7 + 10*0]=e02*e01*e04+e02*e00*e03+0.5*e022*e05+0.5*e05*e032+0.5*e05*e042+0.5*e053+e08*e03*e06+e08*e04*e07+0.5*e05*e082-0.5*e05*e002-0.5*e05*e062-0.5*e05*e012-0.5*e05*e072; - A[7 + 10*1]=e08*e13*e06+e02*e10*e03+e02*e00*e13+e02*e11*e04+e02*e01*e14+e02*e12*e05+e12*e01*e04+e12*e00*e03+e05*e13*e03+e05*e14*e04+e08*e03*e16+e08*e14*e07+e08*e04*e17+e08*e05*e18+e18*e03*e06+e18*e04*e07-e05*e10*e00-e05*e11*e01-e05*e16*e06-e05*e17*e07+0.5*e022*e15+1.5*e15*e052+0.5*e15*e032+0.5*e15*e042+0.5*e15*e082-0.5*e15*e002-0.5*e15*e062-0.5*e15*e012-0.5*e15*e072; - A[7 + 10*2]=0.5*e122*e05+0.5*e05*e132+1.5*e05*e152+0.5*e05*e142+0.5*e05*e182-0.5*e05*e102-0.5*e05*e162-0.5*e05*e112-0.5*e05*e172+e02*e10*e13+e02*e12*e15+e02*e11*e14+e12*e10*e03+e12*e00*e13+e12*e11*e04+e12*e01*e14+e15*e13*e03+e15*e14*e04+e08*e13*e16+e08*e15*e18+e08*e14*e17+e18*e13*e06+e18*e03*e16+e18*e14*e07+e18*e04*e17-e15*e11*e01-e15*e16*e06-e15*e17*e07-e15*e10*e00; - A[7 + 10*3]=e12*e10*e13+0.5*e122*e15+e12*e11*e14+0.5*e15*e132+0.5*e153+0.5*e15*e142+e18*e13*e16+0.5*e15*e182+e18*e14*e17-0.5*e15*e102-0.5*e15*e162-0.5*e15*e112-0.5*e15*e172; - A[7 + 10*4]=0.5*e25*e082-0.5*e25*e002-0.5*e25*e062-0.5*e25*e012-0.5*e25*e072+e02*e20*e03+e02*e00*e23+e02*e21*e04+e02*e01*e24+e02*e22*e05+e22*e01*e04+e22*e00*e03+e05*e23*e03+e05*e24*e04+e08*e23*e06+e08*e03*e26+e08*e24*e07+e08*e04*e27+e08*e05*e28+e28*e03*e06+e28*e04*e07-e05*e20*e00-e05*e27*e07-e05*e21*e01-e05*e26*e06+0.5*e022*e25+1.5*e25*e052+0.5*e25*e032+0.5*e25*e042; - A[7 + 10*5]=-e25*e17*e07-e25*e16*e06-e25*e11*e01-e25*e10*e00-e15*e26*e06-e15*e21*e01-e15*e27*e07-e15*e20*e00-e05*e27*e17-e05*e21*e11-e05*e26*e16-e05*e20*e10+e28*e04*e17+e28*e14*e07+e28*e03*e16+e28*e13*e06+e18*e05*e28+e18*e04*e27+e18*e24*e07+e18*e03*e26+e18*e23*e06+e08*e14*e27+e08*e24*e17+e08*e15*e28+e08*e25*e18+e08*e13*e26+e08*e23*e16+e25*e14*e04+e25*e13*e03+e15*e24*e04+e15*e23*e03+e05*e24*e14+3*e05*e25*e15+e05*e23*e13+e22*e01*e14+e22*e11*e04+e22*e00*e13+e22*e10*e03+e12*e22*e05+e12*e01*e24+e12*e21*e04+e12*e00*e23+e12*e20*e03+e02*e11*e24+e02*e21*e14+e02*e12*e25+e02*e22*e15+e02*e10*e23+e02*e20*e13; - A[7 + 10*6]=-e15*e27*e17-e15*e21*e11-e15*e26*e16+e28*e14*e17+e28*e13*e16+e18*e14*e27+e18*e24*e17+e18*e15*e28+e18*e13*e26+e15*e24*e14+e15*e23*e13+e22*e11*e14+e22*e10*e13+e12*e11*e24+e12*e21*e14+e12*e22*e15+e12*e10*e23+e18*e23*e16+0.5*e25*e142+0.5*e25*e182+1.5*e25*e152+0.5*e25*e132+0.5*e122*e25+e12*e20*e13-0.5*e25*e172-0.5*e25*e162-0.5*e25*e112-0.5*e25*e102-e15*e20*e10; - A[7 + 10*7]=e28*e24*e07-0.5*e05*e272-0.5*e05*e262-0.5*e05*e212+0.5*e05*e282-0.5*e05*e202+e28*e23*e06+e08*e23*e26+e08*e25*e28+e08*e24*e27+e28*e03*e26+e28*e04*e27-e25*e27*e07-e25*e21*e01-e25*e26*e06+e02*e20*e23+e02*e22*e25+e02*e21*e24+e22*e20*e03+e22*e00*e23+e22*e21*e04+e22*e01*e24+e25*e23*e03+e25*e24*e04+0.5*e222*e05+0.5*e05*e232+1.5*e05*e252+0.5*e05*e242-e25*e20*e00; - A[7 + 10*8]=-0.5*e15*e202-0.5*e15*e262-0.5*e15*e212-0.5*e15*e272+e18*e23*e26+e18*e25*e28+e18*e24*e27+e28*e23*e16+e28*e13*e26+e28*e24*e17+e28*e14*e27-e25*e20*e10-e25*e26*e16-e25*e21*e11-e25*e27*e17+0.5*e15*e282+0.5*e15*e232+1.5*e15*e252+0.5*e15*e242+0.5*e222*e15+e12*e21*e24+e22*e20*e13+e22*e10*e23+e22*e21*e14+e22*e11*e24+e25*e23*e13+e25*e24*e14+e12*e20*e23+e12*e22*e25; - A[7 + 10*9]=e22*e20*e23+0.5*e222*e25+e22*e21*e24+0.5*e25*e232+0.5*e253+0.5*e25*e242+e28*e23*e26+0.5*e25*e282+e28*e24*e27-0.5*e25*e202-0.5*e25*e262-0.5*e25*e212-0.5*e25*e272; - A[7 + 10*10]=-0.5*e35*e062-0.5*e35*e012-0.5*e35*e072-e05*e30*e00-e05*e31*e01-e05*e36*e06-e05*e37*e07-0.5*e35*e002+0.5*e35*e082+e05*e34*e04+e08*e33*e06+e08*e03*e36+e08*e34*e07+e08*e04*e37+e08*e05*e38+e38*e04*e07+e38*e03*e06+0.5*e022*e35+1.5*e35*e052+0.5*e35*e042+0.5*e35*e032+e02*e30*e03+e02*e00*e33+e02*e31*e04+e02*e01*e34+e02*e32*e05+e32*e01*e04+e32*e00*e03+e05*e33*e03; - A[7 + 10*11]=e08*e33*e16-e35*e16*e06-e35*e17*e07-e15*e30*e00-e15*e37*e07-e15*e31*e01-e15*e36*e06-e35*e10*e00-e35*e11*e01-e05*e37*e17-e05*e31*e11+e38*e04*e17-e05*e30*e10-e05*e36*e16+e18*e33*e06+e18*e03*e36+e18*e34*e07+e18*e04*e37+e18*e05*e38+e38*e13*e06+e38*e03*e16+e38*e14*e07+e35*e14*e04+e08*e13*e36+e08*e35*e18+e08*e15*e38+e08*e34*e17+e08*e14*e37+e35*e13*e03+e05*e33*e13+3*e05*e35*e15+e05*e34*e14+e15*e33*e03+e15*e34*e04+e12*e01*e34+e12*e32*e05+e32*e10*e03+e32*e00*e13+e32*e11*e04+e32*e01*e14+e12*e30*e03+e02*e30*e13+e02*e32*e15+e02*e10*e33+e02*e12*e35+e12*e00*e33+e02*e31*e14+e02*e11*e34+e12*e31*e04; - A[7 + 10*12]=-0.5*e35*e162-0.5*e35*e172-e15*e36*e16-e15*e31*e11-e15*e37*e17-0.5*e35*e102-0.5*e35*e112-e15*e30*e10+e18*e13*e36+e18*e15*e38+e18*e34*e17+e18*e14*e37+e38*e13*e16+e38*e14*e17+e18*e33*e16+1.5*e35*e152+0.5*e35*e132+0.5*e35*e142+0.5*e35*e182+0.5*e122*e35+e32*e10*e13+e32*e11*e14+e15*e33*e13+e15*e34*e14+e12*e10*e33+e12*e32*e15+e12*e31*e14+e12*e11*e34+e12*e30*e13; - A[7 + 10*13]=e05*e33*e23+3*e05*e35*e25+e05*e34*e24+e25*e33*e03+e25*e34*e04+e35*e23*e03+e35*e24*e04+e08*e33*e26+e08*e23*e36+e08*e35*e28+e02*e20*e33+e02*e32*e25+e02*e22*e35+e02*e31*e24+e02*e21*e34+e22*e30*e03+e22*e00*e33+e22*e31*e04+e22*e01*e34+e22*e32*e05+e32*e20*e03+e32*e00*e23+e32*e21*e04+e32*e01*e24+e02*e30*e23-e35*e27*e07-e35*e21*e01-e35*e26*e06+e08*e25*e38+e08*e34*e27+e08*e24*e37+e28*e33*e06+e28*e03*e36+e28*e34*e07+e28*e04*e37+e28*e05*e38+e38*e23*e06+e38*e03*e26+e38*e24*e07+e38*e04*e27-e05*e30*e20-e05*e36*e26-e05*e31*e21-e05*e37*e27-e25*e30*e00-e25*e37*e07-e25*e31*e01-e25*e36*e06-e35*e20*e00; - A[7 + 10*14]=e12*e21*e34+e18*e25*e38+e12*e30*e23+e12*e20*e33+e12*e32*e25+e12*e22*e35+e12*e31*e24+e22*e30*e13+e22*e10*e33+e22*e32*e15+e22*e31*e14+e22*e11*e34+e32*e20*e13+e32*e10*e23+e32*e21*e14-e25*e30*e10-e25*e36*e16-e25*e31*e11-e25*e37*e17-e35*e20*e10-e35*e26*e16-e35*e21*e11-e35*e27*e17+e15*e33*e23+3*e15*e35*e25+e15*e34*e24+e25*e33*e13+e25*e34*e14+e35*e23*e13+e35*e24*e14+e18*e33*e26+e18*e23*e36+e18*e35*e28+e18*e34*e27+e18*e24*e37+e28*e33*e16+e28*e13*e36+e28*e15*e38+e28*e34*e17+e28*e14*e37+e38*e23*e16+e38*e13*e26+e38*e24*e17+e38*e14*e27-e15*e30*e20-e15*e36*e26-e15*e31*e21-e15*e37*e27+e32*e11*e24; - A[7 + 10*15]=-0.5*e35*e202-0.5*e35*e262-0.5*e35*e212-0.5*e35*e272+e25*e34*e24+e28*e23*e36+e28*e25*e38+e28*e34*e27+e28*e24*e37+e38*e23*e26+e38*e24*e27-e25*e30*e20-e25*e36*e26-e25*e31*e21-e25*e37*e27+e25*e33*e23+0.5*e222*e35+1.5*e35*e252+0.5*e35*e232+0.5*e35*e242+0.5*e35*e282+e22*e30*e23+e22*e20*e33+e22*e32*e25+e22*e31*e24+e22*e21*e34+e32*e20*e23+e32*e21*e24+e28*e33*e26; - A[7 + 10*16]=-e35*e30*e00-e35*e31*e01-e35*e36*e06-e35*e37*e07+0.5*e322*e05+0.5*e05*e332+0.5*e05*e342+1.5*e05*e352+0.5*e05*e382-0.5*e05*e302-0.5*e05*e362-0.5*e05*e312-0.5*e05*e372+e02*e30*e33+e02*e31*e34+e02*e32*e35+e32*e30*e03+e32*e00*e33+e32*e31*e04+e32*e01*e34+e35*e33*e03+e35*e34*e04+e08*e33*e36+e08*e34*e37+e08*e35*e38+e38*e33*e06+e38*e03*e36+e38*e34*e07+e38*e04*e37; - A[7 + 10*17]=-e35*e30*e10+e12*e32*e35-0.5*e15*e362-0.5*e15*e312-0.5*e15*e372-e35*e36*e16+0.5*e322*e15+0.5*e15*e332+0.5*e15*e342+1.5*e15*e352+0.5*e15*e382-0.5*e15*e302+e12*e30*e33+e12*e31*e34+e32*e30*e13+e32*e10*e33+e32*e31*e14+e32*e11*e34+e35*e33*e13+e35*e34*e14+e18*e33*e36+e18*e34*e37+e18*e35*e38+e38*e33*e16+e38*e13*e36+e38*e34*e17+e38*e14*e37-e35*e31*e11-e35*e37*e17; - A[7 + 10*18]=-0.5*e25*e302-0.5*e25*e362-0.5*e25*e312-0.5*e25*e372+0.5*e322*e25+0.5*e25*e332+0.5*e25*e342+1.5*e25*e352+0.5*e25*e382+e22*e30*e33+e22*e31*e34+e22*e32*e35+e32*e30*e23+e32*e20*e33+e32*e31*e24+e32*e21*e34+e35*e33*e23+e35*e34*e24+e28*e33*e36+e28*e34*e37+e28*e35*e38+e38*e33*e26+e38*e23*e36+e38*e34*e27+e38*e24*e37-e35*e30*e20-e35*e36*e26-e35*e31*e21-e35*e37*e27; - A[7 + 10*19]=e32*e30*e33+e32*e31*e34+0.5*e322*e35+0.5*e35*e332+0.5*e35*e342+0.5*e353+e38*e33*e36+e38*e34*e37+0.5*e35*e382-0.5*e35*e302-0.5*e35*e362-0.5*e35*e312-0.5*e35*e372; - A[8 + 10*0]=e02*e00*e06+e02*e01*e07+0.5*e022*e08+e05*e04*e07+e05*e03*e06+0.5*e052*e08+0.5*e08*e062+0.5*e08*e072+0.5*e083-0.5*e08*e042-0.5*e08*e002-0.5*e08*e012-0.5*e08*e032; - A[8 + 10*1]=e02*e10*e06+e02*e00*e16+e02*e11*e07+e02*e01*e17+e02*e12*e08+e12*e00*e06+e12*e01*e07+e05*e13*e06+e05*e03*e16+e05*e14*e07+e05*e04*e17+e05*e15*e08+e15*e04*e07+e15*e03*e06+e08*e16*e06+e08*e17*e07-e08*e10*e00-e08*e11*e01-e08*e13*e03-e08*e14*e04+0.5*e022*e18+0.5*e052*e18+1.5*e18*e082+0.5*e18*e062+0.5*e18*e072-0.5*e18*e042-0.5*e18*e002-0.5*e18*e012-0.5*e18*e032; - A[8 + 10*2]=e12*e01*e17+0.5*e152*e08+0.5*e08*e162+1.5*e08*e182+0.5*e08*e172-0.5*e08*e102-0.5*e08*e112-0.5*e08*e132-0.5*e08*e142+e05*e13*e16+e05*e14*e17+e05*e15*e18+e15*e13*e06+e15*e03*e16+e15*e14*e07+e15*e04*e17+e18*e16*e06+e18*e17*e07-e18*e10*e00-e18*e11*e01-e18*e13*e03-e18*e14*e04+0.5*e122*e08+e02*e10*e16+e02*e12*e18+e02*e11*e17+e12*e10*e06+e12*e00*e16+e12*e11*e07; - A[8 + 10*3]=e12*e10*e16+0.5*e122*e18+e12*e11*e17+e15*e13*e16+e15*e14*e17+0.5*e152*e18+0.5*e18*e162+0.5*e183+0.5*e18*e172-0.5*e18*e102-0.5*e18*e112-0.5*e18*e132-0.5*e18*e142; - A[8 + 10*4]=-e08*e20*e00+e08*e27*e07-e08*e21*e01-e08*e23*e03-e08*e24*e04+e02*e20*e06+e02*e00*e26+e02*e21*e07+e02*e01*e27+e02*e22*e08+e22*e00*e06+e22*e01*e07+e05*e23*e06+e05*e03*e26+e05*e24*e07+e05*e04*e27+e05*e25*e08+e25*e04*e07+e25*e03*e06+e08*e26*e06+0.5*e022*e28+0.5*e052*e28+1.5*e28*e082+0.5*e28*e062+0.5*e28*e072-0.5*e28*e042-0.5*e28*e002-0.5*e28*e012-0.5*e28*e032; - A[8 + 10*5]=e22*e10*e06+e22*e11*e07+e22*e01*e17+e05*e23*e16+e05*e13*e26+e05*e25*e18+e05*e15*e28+e05*e24*e17+e05*e14*e27+e15*e23*e06+e15*e03*e26+e15*e24*e07+e15*e04*e27+e15*e25*e08+e25*e13*e06+e25*e03*e16+e25*e14*e07+e25*e04*e17+e08*e26*e16+3*e08*e28*e18+e08*e27*e17+e18*e26*e06+e18*e27*e07+e22*e00*e16+e28*e16*e06+e28*e17*e07-e08*e20*e10-e08*e21*e11-e08*e23*e13-e08*e24*e14-e18*e20*e00-e18*e21*e01-e18*e23*e03-e18*e24*e04-e28*e10*e00-e28*e11*e01-e28*e13*e03-e28*e14*e04+e02*e20*e16+e02*e10*e26+e02*e22*e18+e02*e12*e28+e02*e21*e17+e02*e11*e27+e12*e20*e06+e12*e00*e26+e12*e21*e07+e12*e01*e27+e12*e22*e08; - A[8 + 10*6]=-e18*e24*e14-e18*e21*e11-e18*e23*e13-e18*e20*e10+e18*e27*e17+e18*e26*e16+e25*e14*e17+e25*e13*e16+e15*e25*e18+e15*e14*e27+e15*e24*e17+e15*e13*e26+e15*e23*e16+e22*e11*e17+e22*e10*e16+e12*e11*e27+e12*e21*e17+e12*e22*e18+e12*e10*e26+e12*e20*e16+0.5*e28*e162+0.5*e28*e172+1.5*e28*e182+0.5*e152*e28-0.5*e28*e142-0.5*e28*e112-0.5*e28*e132-0.5*e28*e102+0.5*e122*e28; - A[8 + 10*7]=-e28*e24*e04-e28*e21*e01-e28*e23*e03-e28*e20*e00+e28*e27*e07+e28*e26*e06+e25*e04*e27+e25*e24*e07+e25*e03*e26+e05*e24*e27+e05*e25*e28+e05*e23*e26+e22*e01*e27+e22*e21*e07+e22*e00*e26+e22*e20*e06+e02*e22*e28+e02*e20*e26+e02*e21*e27+0.5*e222*e08-0.5*e08*e242-0.5*e08*e212-0.5*e08*e232-0.5*e08*e202+0.5*e08*e262+0.5*e08*e272+1.5*e08*e282+0.5*e252*e08+e25*e23*e06; - A[8 + 10*8]=e25*e24*e17+e25*e14*e27+e28*e26*e16+e28*e27*e17-e28*e21*e11-e28*e24*e14+e12*e22*e28+e22*e10*e26+e22*e21*e17+e22*e11*e27+e15*e23*e26+e15*e25*e28+e15*e24*e27+e25*e23*e16+e25*e13*e26+e22*e20*e16+0.5*e222*e18+0.5*e252*e18+0.5*e18*e262+0.5*e18*e272+e12*e20*e26+e12*e21*e27-e28*e20*e10-0.5*e18*e232-0.5*e18*e242-e28*e23*e13-0.5*e18*e212+1.5*e18*e282-0.5*e18*e202; - A[8 + 10*9]=e22*e20*e26+e22*e21*e27+0.5*e222*e28+e25*e23*e26+0.5*e252*e28+e25*e24*e27+0.5*e28*e262+0.5*e28*e272+0.5*e283-0.5*e28*e202-0.5*e28*e212-0.5*e28*e232-0.5*e28*e242; - A[8 + 10*10]=-e08*e30*e00-0.5*e38*e042-0.5*e38*e002-0.5*e38*e012-0.5*e38*e032+1.5*e38*e082+0.5*e38*e062+0.5*e38*e072+e32*e01*e07+e05*e33*e06+e05*e03*e36+e05*e34*e07+e05*e04*e37+e05*e35*e08+e35*e04*e07+e35*e03*e06+e08*e36*e06+e08*e37*e07+0.5*e052*e38+e32*e00*e06+e02*e30*e06+e02*e00*e36+e02*e31*e07+e02*e01*e37+e02*e32*e08+0.5*e022*e38-e08*e33*e03-e08*e31*e01-e08*e34*e04; - A[8 + 10*11]=-e38*e11*e01-e38*e14*e04-e38*e10*e00-e38*e13*e03-e18*e30*e00-e18*e33*e03-e18*e31*e01-e18*e34*e04-e08*e30*e10-e08*e33*e13-e08*e31*e11-e08*e34*e14+3*e08*e38*e18+e08*e37*e17+e18*e36*e06+e18*e37*e07+e38*e16*e06+e38*e17*e07+e15*e35*e08+e35*e13*e06+e35*e03*e16+e35*e14*e07+e35*e04*e17+e08*e36*e16+e05*e35*e18+e05*e15*e38+e15*e33*e06+e15*e03*e36+e15*e34*e07+e15*e04*e37+e05*e14*e37+e12*e30*e06+e12*e31*e07+e12*e01*e37+e12*e00*e36+e12*e32*e08+e32*e10*e06+e32*e00*e16+e32*e11*e07+e32*e01*e17+e05*e33*e16+e05*e13*e36+e05*e34*e17+e02*e30*e16+e02*e10*e36+e02*e32*e18+e02*e12*e38+e02*e31*e17+e02*e11*e37; - A[8 + 10*12]=e12*e30*e16+e12*e10*e36+e12*e32*e18+e12*e31*e17+e12*e11*e37+e32*e10*e16+e32*e11*e17+e15*e33*e16+e15*e13*e36-0.5*e38*e102-0.5*e38*e112-0.5*e38*e132-0.5*e38*e142+0.5*e38*e162+0.5*e38*e172+e15*e34*e17+e15*e14*e37+e15*e35*e18+e35*e13*e16+e35*e14*e17+e18*e36*e16+e18*e37*e17-e18*e30*e10-e18*e33*e13-e18*e31*e11-e18*e34*e14+0.5*e122*e38+0.5*e152*e38+1.5*e38*e182; - A[8 + 10*13]=e22*e30*e06-e28*e34*e04+e05*e35*e28+e02*e22*e38+e22*e00*e36+e22*e31*e07+e22*e01*e37+e02*e32*e28+e02*e21*e37-e38*e20*e00-e28*e31*e01-e38*e23*e03-e38*e21*e01-e38*e24*e04-e28*e30*e00-e08*e30*e20-e08*e31*e21-e08*e33*e23-e08*e34*e24-e28*e33*e03+e35*e24*e07+e35*e04*e27+e08*e36*e26+e08*e37*e27+3*e08*e38*e28+e28*e36*e06+e28*e37*e07+e38*e26*e06+e38*e27*e07+e25*e04*e37+e25*e35*e08+e35*e23*e06+e35*e03*e26+e05*e23*e36+e05*e25*e38+e05*e34*e27+e05*e24*e37+e25*e33*e06+e25*e03*e36+e25*e34*e07+e05*e33*e26+e32*e21*e07+e32*e01*e27+e22*e32*e08+e32*e20*e06+e32*e00*e26+e02*e30*e26+e02*e20*e36+e02*e31*e27; - A[8 + 10*14]=e35*e13*e26-e38*e21*e11-e38*e24*e14+e35*e24*e17+e35*e14*e27+e18*e36*e26+e18*e37*e27+3*e18*e38*e28+e28*e36*e16+e28*e37*e17+e38*e26*e16+e38*e27*e17-e18*e30*e20-e18*e31*e21-e18*e33*e23-e18*e34*e24-e28*e30*e10-e28*e33*e13-e28*e31*e11-e28*e34*e14-e38*e20*e10-e38*e23*e13+e35*e23*e16+e12*e20*e36+e12*e30*e26+e12*e31*e27+e12*e21*e37+e12*e32*e28+e12*e22*e38+e22*e30*e16+e22*e10*e36+e22*e32*e18+e22*e31*e17+e22*e11*e37+e32*e20*e16+e32*e10*e26+e32*e21*e17+e32*e11*e27+e15*e33*e26+e15*e23*e36+e15*e35*e28+e15*e25*e38+e15*e34*e27+e15*e24*e37+e25*e33*e16+e25*e13*e36+e25*e34*e17+e25*e14*e37+e25*e35*e18; - A[8 + 10*15]=-e28*e30*e20+e22*e30*e26+e22*e20*e36+e22*e31*e27+e22*e21*e37+e22*e32*e28+e32*e20*e26+e32*e21*e27+e25*e33*e26+e25*e23*e36+e25*e35*e28+e25*e34*e27+e25*e24*e37+e35*e23*e26+e35*e24*e27+e28*e36*e26+e28*e37*e27-e28*e31*e21-e28*e33*e23-e28*e34*e24-0.5*e38*e242+0.5*e252*e38+1.5*e38*e282+0.5*e38*e262+0.5*e38*e272-0.5*e38*e202-0.5*e38*e212-0.5*e38*e232+0.5*e222*e38; - A[8 + 10*16]=-0.5*e08*e312-0.5*e08*e342+0.5*e352*e08+0.5*e08*e362+1.5*e08*e382+0.5*e08*e372-0.5*e08*e302-0.5*e08*e332+e02*e30*e36+e02*e32*e38+e02*e31*e37+e32*e30*e06+e32*e00*e36+e32*e31*e07+e32*e01*e37+e05*e33*e36+e05*e34*e37+e05*e35*e38+e35*e33*e06+e35*e03*e36+e35*e34*e07+e35*e04*e37+0.5*e322*e08+e38*e36*e06+e38*e37*e07-e38*e30*e00-e38*e33*e03-e38*e31*e01-e38*e34*e04; - A[8 + 10*17]=-e38*e30*e10+e38*e36*e16+e38*e37*e17-e38*e33*e13-e38*e31*e11-e38*e34*e14+0.5*e18*e362+e12*e30*e36+e12*e32*e38+e12*e31*e37+e32*e30*e16+e32*e10*e36+e32*e31*e17+e32*e11*e37+e15*e33*e36+e15*e34*e37+e15*e35*e38+e35*e33*e16+e35*e13*e36+e35*e34*e17+e35*e14*e37+0.5*e322*e18+0.5*e352*e18+1.5*e18*e382+0.5*e18*e372-0.5*e18*e302-0.5*e18*e332-0.5*e18*e312-0.5*e18*e342; - A[8 + 10*18]=-e38*e30*e20+e25*e35*e38+e22*e30*e36+e22*e32*e38+e22*e31*e37+e32*e30*e26+e32*e20*e36+e32*e31*e27+e32*e21*e37+e25*e33*e36+e25*e34*e37+e35*e33*e26+e35*e23*e36+e35*e34*e27+e35*e24*e37+e38*e36*e26+e38*e37*e27-e38*e31*e21-e38*e33*e23-e38*e34*e24-0.5*e28*e332-0.5*e28*e312-0.5*e28*e342+0.5*e322*e28+0.5*e352*e28+0.5*e28*e362+1.5*e28*e382+0.5*e28*e372-0.5*e28*e302; - A[8 + 10*19]=e32*e30*e36+0.5*e322*e38+e32*e31*e37+e35*e33*e36+e35*e34*e37+0.5*e352*e38+0.5*e38*e362+0.5*e383+0.5*e38*e372-0.5*e38*e302-0.5*e38*e332-0.5*e38*e312-0.5*e38*e342; - A[9 + 10*0]=e00*e04*e08-e00*e05*e07+e03*e02*e07-e03*e01*e08-e06*e02*e04+e06*e01*e05; - A[9 + 10*1]=e06*e01*e15-e16*e02*e04+e16*e01*e05+e03*e02*e17-e13*e01*e08+e06*e11*e05+e13*e02*e07+e00*e04*e18+e00*e14*e08-e00*e05*e17-e10*e05*e07-e00*e15*e07-e06*e12*e04-e06*e02*e14-e03*e01*e18-e03*e11*e08+e10*e04*e08+e03*e12*e07; - A[9 + 10*2]=-e13*e01*e18-e13*e11*e08+e13*e12*e07+e13*e02*e17+e03*e12*e17-e10*e15*e07+e10*e04*e18+e10*e14*e08-e10*e05*e17-e00*e15*e17+e00*e14*e18+e16*e01*e15+e06*e11*e15-e06*e12*e14-e16*e12*e04-e16*e02*e14+e16*e11*e05-e03*e11*e18; - A[9 + 10*3]=e10*e14*e18-e10*e15*e17-e13*e11*e18+e13*e12*e17+e16*e11*e15-e16*e12*e14; - A[9 + 10*4]=-e20*e05*e07+e03*e22*e07+e06*e21*e05+e06*e01*e25-e23*e01*e08+e23*e02*e07+e00*e24*e08-e00*e25*e07-e00*e05*e27+e00*e04*e28-e06*e22*e04-e06*e02*e24-e03*e21*e08-e03*e01*e28-e26*e02*e04+e26*e01*e05+e03*e02*e27+e20*e04*e08; - A[9 + 10*5]=e23*e12*e07-e26*e02*e14+e16*e21*e05-e23*e11*e08+e10*e24*e08-e20*e05*e17+e26*e11*e05+e26*e01*e15+e10*e04*e28+e00*e24*e18-e00*e15*e27+e03*e22*e17-e13*e01*e28+e23*e02*e17+e16*e01*e25+e20*e04*e18+e06*e11*e25+e13*e02*e27-e23*e01*e18-e20*e15*e07-e10*e25*e07+e13*e22*e07-e06*e22*e14-e26*e12*e04-e03*e11*e28-e03*e21*e18-e16*e22*e04-e16*e02*e24-e06*e12*e24+e06*e21*e15+e00*e14*e28-e00*e25*e17+e20*e14*e08-e13*e21*e08-e10*e05*e27+e03*e12*e27; - A[9 + 10*6]=-e13*e11*e28+e13*e12*e27+e13*e22*e17+e16*e11*e25+e10*e14*e28-e13*e21*e18-e23*e11*e18+e23*e12*e17+e20*e14*e18-e20*e15*e17+e26*e11*e15-e10*e15*e27-e10*e25*e17-e16*e22*e14-e16*e12*e24+e16*e21*e15-e26*e12*e14+e10*e24*e18; - A[9 + 10*7]=e26*e21*e05+e26*e01*e25+e20*e04*e28+e20*e24*e08-e20*e25*e07+e23*e22*e07+e03*e22*e27-e03*e21*e28-e26*e22*e04-e20*e05*e27-e00*e25*e27+e06*e21*e25-e06*e22*e24+e00*e24*e28-e26*e02*e24-e23*e21*e08-e23*e01*e28+e23*e02*e27; - A[9 + 10*8]=-e10*e25*e27+e10*e24*e28-e20*e15*e27-e20*e25*e17+e20*e14*e28+e20*e24*e18+e26*e11*e25+e23*e22*e17-e23*e11*e28+e23*e12*e27-e23*e21*e18-e13*e21*e28+e13*e22*e27-e26*e12*e24+e26*e21*e15-e16*e22*e24+e16*e21*e25-e26*e22*e14; - A[9 + 10*9]=-e20*e25*e27+e20*e24*e28-e23*e21*e28+e23*e22*e27-e26*e22*e24+e26*e21*e25; - A[9 + 10*10]=e03*e02*e37-e03*e31*e08-e03*e01*e38+e03*e32*e07-e00*e35*e07+e30*e04*e08+e06*e31*e05-e36*e02*e04+e36*e01*e05-e06*e32*e04-e06*e02*e34+e06*e01*e35+e00*e04*e38-e00*e05*e37+e33*e02*e07-e33*e01*e08-e30*e05*e07+e00*e34*e08; - A[9 + 10*11]=-e36*e12*e04+e30*e04*e18-e30*e15*e07-e36*e02*e14-e30*e05*e17+e30*e14*e08-e00*e35*e17-e00*e15*e37+e33*e02*e17-e06*e32*e14-e06*e12*e34-e16*e32*e04+e06*e31*e15+e06*e11*e35+e00*e34*e18-e10*e35*e07-e33*e11*e08-e33*e01*e18+e16*e01*e35-e16*e02*e34+e16*e31*e05-e03*e31*e18-e03*e11*e38+e03*e32*e17+e13*e02*e37-e13*e31*e08-e13*e01*e38+e10*e34*e08+e00*e14*e38+e36*e11*e05+e36*e01*e15+e03*e12*e37-e10*e05*e37+e10*e04*e38+e33*e12*e07+e13*e32*e07; - A[9 + 10*12]=-e36*e12*e14-e30*e15*e17+e13*e32*e17-e13*e31*e18-e33*e11*e18+e33*e12*e17+e10*e14*e38+e30*e14*e18-e13*e11*e38+e13*e12*e37-e10*e35*e17+e10*e34*e18-e16*e12*e34-e16*e32*e14+e16*e11*e35+e16*e31*e15+e36*e11*e15-e10*e15*e37; - A[9 + 10*13]=-e06*e22*e34-e06*e32*e24-e00*e25*e37-e00*e35*e27+e23*e02*e37+e00*e24*e38-e23*e01*e38-e03*e31*e28-e33*e01*e28+e03*e22*e37+e03*e32*e27+e33*e02*e27-e03*e21*e38-e26*e32*e04-e33*e21*e08+e36*e01*e25+e36*e21*e05-e20*e05*e37+e20*e04*e38+e30*e04*e28-e20*e35*e07+e33*e22*e07+e30*e24*e08-e30*e25*e07-e23*e31*e08+e23*e32*e07+e00*e34*e28+e06*e21*e35+e06*e31*e25-e36*e02*e24+e26*e01*e35-e36*e22*e04+e26*e31*e05-e26*e02*e34+e20*e34*e08-e30*e05*e27; - A[9 + 10*14]=e33*e22*e17+e33*e12*e27+e16*e21*e35-e16*e22*e34-e16*e32*e24+e23*e32*e17-e23*e11*e38-e23*e31*e18+e23*e12*e37-e13*e21*e38-e13*e31*e28+e13*e22*e37+e36*e21*e15-e36*e12*e24+e36*e11*e25-e26*e12*e34-e20*e35*e17+e20*e14*e38+e20*e34*e18+e30*e24*e18-e30*e15*e27-e30*e25*e17+e30*e14*e28-e33*e21*e18+e10*e34*e28+e10*e24*e38-e10*e35*e27-e10*e25*e37-e20*e15*e37-e26*e32*e14+e26*e11*e35+e26*e31*e15-e36*e22*e14+e13*e32*e27+e16*e31*e25-e33*e11*e28; - A[9 + 10*15]=-e20*e35*e27-e20*e25*e37+e20*e34*e28+e20*e24*e38+e30*e24*e28-e30*e25*e27+e23*e32*e27+e23*e22*e37-e23*e31*e28-e23*e21*e38+e33*e22*e27-e26*e22*e34-e26*e32*e24+e26*e21*e35+e26*e31*e25-e36*e22*e24+e36*e21*e25-e33*e21*e28; - A[9 + 10*16]=-e33*e01*e38-e03*e31*e38+e00*e34*e38+e33*e32*e07+e03*e32*e37+e06*e31*e35-e00*e35*e37-e36*e32*e04-e06*e32*e34-e36*e02*e34+e36*e01*e35+e36*e31*e05+e30*e04*e38+e30*e34*e08-e33*e31*e08+e33*e02*e37-e30*e05*e37-e30*e35*e07; - A[9 + 10*17]=-e33*e31*e18-e33*e11*e38+e10*e34*e38+e30*e14*e38-e10*e35*e37-e30*e15*e37-e13*e31*e38+e13*e32*e37-e30*e35*e17+e33*e12*e37+e30*e34*e18+e33*e32*e17+e16*e31*e35-e16*e32*e34-e36*e12*e34-e36*e32*e14+e36*e11*e35+e36*e31*e15; - A[9 + 10*18]=-e20*e35*e37+e20*e34*e38+e30*e24*e38-e30*e35*e27-e30*e25*e37+e30*e34*e28+e23*e32*e37-e23*e31*e38-e33*e21*e38-e33*e31*e28+e33*e22*e37+e33*e32*e27+e26*e31*e35-e26*e32*e34-e36*e22*e34-e36*e32*e24+e36*e21*e35+e36*e31*e25; - A[9 + 10*19]=-e33*e31*e38-e30*e35*e37+e36*e31*e35+e33*e32*e37+e30*e34*e38-e36*e32*e34; + double ep2[36], ep3[36]; + for (int i = 0; i < 36; i++) + { + ep2[i] = e[i] * e[i]; + ep3[i] = ep2[i] * e[i]; + } + + A[0]=e[33]*e[28]*e[32]-e[33]*e[31]*e[29]+e[30]*e[34]*e[29]-e[30]*e[28]*e[35]-e[27]*e[32]*e[34]+e[27]*e[31]*e[35]; + A[146]=.5000000000*e[6]*ep2[8]-.5000000000*e[6]*ep2[5]+.5000000000*ep3[6]+.5000000000*e[6]*ep2[7]-.5000000000*e[6]*ep2[4]+e[0]*e[2]*e[8]+e[3]*e[4]*e[7]+e[3]*e[5]*e[8]+e[0]*e[1]*e[7]-.5000000000*e[6]*ep2[1]-.5000000000*e[6]*ep2[2]+.5000000000*ep2[0]*e[6]+.5000000000*ep2[3]*e[6]; + A[1]=e[30]*e[34]*e[2]+e[33]*e[1]*e[32]-e[3]*e[28]*e[35]+e[0]*e[31]*e[35]+e[3]*e[34]*e[29]-e[30]*e[1]*e[35]+e[27]*e[31]*e[8]-e[27]*e[32]*e[7]-e[30]*e[28]*e[8]-e[33]*e[31]*e[2]-e[0]*e[32]*e[34]+e[6]*e[28]*e[32]-e[33]*e[4]*e[29]+e[33]*e[28]*e[5]+e[30]*e[7]*e[29]+e[27]*e[4]*e[35]-e[27]*e[5]*e[34]-e[6]*e[31]*e[29]; + A[147]=e[9]*e[27]*e[15]+e[9]*e[29]*e[17]+e[9]*e[11]*e[35]+e[9]*e[28]*e[16]+e[9]*e[10]*e[34]+e[27]*e[11]*e[17]+e[27]*e[10]*e[16]+e[12]*e[30]*e[15]+e[12]*e[32]*e[17]+e[12]*e[14]*e[35]+e[12]*e[31]*e[16]+e[12]*e[13]*e[34]+e[30]*e[14]*e[17]+e[30]*e[13]*e[16]+e[15]*e[35]*e[17]+e[15]*e[34]*e[16]-1.*e[15]*e[28]*e[10]-1.*e[15]*e[31]*e[13]-1.*e[15]*e[32]*e[14]-1.*e[15]*e[29]*e[11]+.5000000000*ep2[9]*e[33]+.5000000000*e[33]*ep2[16]-.5000000000*e[33]*ep2[11]+.5000000000*e[33]*ep2[12]+1.500000000*e[33]*ep2[15]+.5000000000*e[33]*ep2[17]-.5000000000*e[33]*ep2[10]-.5000000000*e[33]*ep2[14]-.5000000000*e[33]*ep2[13]; + A[2]=-e[33]*e[22]*e[29]-e[33]*e[31]*e[20]-e[27]*e[32]*e[25]+e[27]*e[22]*e[35]-e[27]*e[23]*e[34]+e[27]*e[31]*e[26]+e[33]*e[28]*e[23]-e[21]*e[28]*e[35]+e[30]*e[25]*e[29]+e[24]*e[28]*e[32]-e[24]*e[31]*e[29]+e[18]*e[31]*e[35]-e[30]*e[28]*e[26]-e[30]*e[19]*e[35]+e[21]*e[34]*e[29]+e[33]*e[19]*e[32]-e[18]*e[32]*e[34]+e[30]*e[34]*e[20]; + A[144]=e[18]*e[2]*e[17]+e[3]*e[21]*e[15]+e[3]*e[12]*e[24]+e[3]*e[23]*e[17]+e[3]*e[14]*e[26]+e[3]*e[22]*e[16]+e[3]*e[13]*e[25]+3.*e[6]*e[24]*e[15]+e[6]*e[26]*e[17]+e[6]*e[25]*e[16]+e[0]*e[20]*e[17]+e[0]*e[11]*e[26]+e[0]*e[19]*e[16]+e[0]*e[10]*e[25]+e[15]*e[26]*e[8]-1.*e[15]*e[20]*e[2]-1.*e[15]*e[19]*e[1]-1.*e[15]*e[22]*e[4]+e[15]*e[25]*e[7]-1.*e[15]*e[23]*e[5]+e[12]*e[21]*e[6]+e[12]*e[22]*e[7]+e[12]*e[4]*e[25]+e[12]*e[23]*e[8]+e[12]*e[5]*e[26]-1.*e[24]*e[11]*e[2]-1.*e[24]*e[10]*e[1]-1.*e[24]*e[13]*e[4]+e[24]*e[16]*e[7]-1.*e[24]*e[14]*e[5]+e[24]*e[17]*e[8]+e[21]*e[13]*e[7]+e[21]*e[4]*e[16]+e[21]*e[14]*e[8]+e[21]*e[5]*e[17]-1.*e[6]*e[23]*e[14]-1.*e[6]*e[20]*e[11]-1.*e[6]*e[19]*e[10]-1.*e[6]*e[22]*e[13]+e[9]*e[18]*e[6]+e[9]*e[0]*e[24]+e[9]*e[19]*e[7]+e[9]*e[1]*e[25]+e[9]*e[20]*e[8]+e[9]*e[2]*e[26]+e[18]*e[0]*e[15]+e[18]*e[10]*e[7]+e[18]*e[1]*e[16]+e[18]*e[11]*e[8]; + A[3]=e[33]*e[10]*e[32]+e[33]*e[28]*e[14]-e[33]*e[13]*e[29]-e[33]*e[31]*e[11]+e[9]*e[31]*e[35]-e[9]*e[32]*e[34]+e[27]*e[13]*e[35]-e[27]*e[32]*e[16]+e[27]*e[31]*e[17]-e[27]*e[14]*e[34]+e[12]*e[34]*e[29]-e[12]*e[28]*e[35]+e[30]*e[34]*e[11]+e[30]*e[16]*e[29]-e[30]*e[10]*e[35]-e[30]*e[28]*e[17]+e[15]*e[28]*e[32]-e[15]*e[31]*e[29]; + A[145]=e[0]*e[27]*e[6]+e[0]*e[28]*e[7]+e[0]*e[1]*e[34]+e[0]*e[29]*e[8]+e[0]*e[2]*e[35]+e[6]*e[34]*e[7]-1.*e[6]*e[32]*e[5]+e[6]*e[30]*e[3]+e[6]*e[35]*e[8]-1.*e[6]*e[29]*e[2]-1.*e[6]*e[28]*e[1]-1.*e[6]*e[31]*e[4]+e[27]*e[1]*e[7]+e[27]*e[2]*e[8]+e[3]*e[31]*e[7]+e[3]*e[4]*e[34]+e[3]*e[32]*e[8]+e[3]*e[5]*e[35]+e[30]*e[4]*e[7]+e[30]*e[5]*e[8]+.5000000000*ep2[0]*e[33]+1.500000000*e[33]*ep2[6]-.5000000000*e[33]*ep2[4]-.5000000000*e[33]*ep2[5]-.5000000000*e[33]*ep2[1]+.5000000000*e[33]*ep2[7]+.5000000000*e[33]*ep2[3]-.5000000000*e[33]*ep2[2]+.5000000000*e[33]*ep2[8]; + A[4]=-e[0]*e[23]*e[16]+e[9]*e[4]*e[26]+e[9]*e[22]*e[8]-e[9]*e[5]*e[25]-e[9]*e[23]*e[7]+e[18]*e[4]*e[17]+e[18]*e[13]*e[8]-e[18]*e[5]*e[16]-e[18]*e[14]*e[7]+e[3]*e[16]*e[20]+e[3]*e[25]*e[11]-e[3]*e[10]*e[26]-e[3]*e[19]*e[17]+e[12]*e[7]*e[20]+e[12]*e[25]*e[2]-e[12]*e[1]*e[26]-e[12]*e[19]*e[8]+e[21]*e[7]*e[11]+e[21]*e[16]*e[2]-e[21]*e[1]*e[17]-e[21]*e[10]*e[8]+e[6]*e[10]*e[23]+e[6]*e[19]*e[14]-e[6]*e[13]*e[20]-e[6]*e[22]*e[11]+e[15]*e[1]*e[23]+e[15]*e[19]*e[5]-e[15]*e[4]*e[20]-e[15]*e[22]*e[2]+e[24]*e[1]*e[14]+e[24]*e[10]*e[5]-e[24]*e[4]*e[11]-e[24]*e[13]*e[2]+e[0]*e[13]*e[26]+e[0]*e[22]*e[17]-e[0]*e[14]*e[25]; + A[150]=e[18]*e[19]*e[25]+.5000000000*ep3[24]-.5000000000*e[24]*ep2[23]+e[18]*e[20]*e[26]+e[21]*e[22]*e[25]+e[21]*e[23]*e[26]-.5000000000*e[24]*ep2[19]+.5000000000*ep2[21]*e[24]+.5000000000*e[24]*ep2[26]-.5000000000*e[24]*ep2[20]+.5000000000*ep2[18]*e[24]-.5000000000*e[24]*ep2[22]+.5000000000*e[24]*ep2[25]; + A[5]=-e[3]*e[1]*e[35]-e[0]*e[32]*e[7]+e[27]*e[4]*e[8]+e[33]*e[1]*e[5]-e[33]*e[4]*e[2]+e[0]*e[4]*e[35]+e[3]*e[34]*e[2]-e[30]*e[1]*e[8]+e[30]*e[7]*e[2]-e[6]*e[4]*e[29]+e[3]*e[7]*e[29]+e[6]*e[1]*e[32]-e[0]*e[5]*e[34]-e[3]*e[28]*e[8]+e[0]*e[31]*e[8]+e[6]*e[28]*e[5]-e[6]*e[31]*e[2]-e[27]*e[5]*e[7]; + A[151]=e[33]*e[16]*e[7]-1.*e[33]*e[14]*e[5]+e[33]*e[17]*e[8]+e[30]*e[13]*e[7]+e[30]*e[4]*e[16]+e[30]*e[14]*e[8]+e[30]*e[5]*e[17]+e[6]*e[27]*e[9]-1.*e[6]*e[28]*e[10]-1.*e[6]*e[31]*e[13]-1.*e[6]*e[32]*e[14]-1.*e[6]*e[29]*e[11]+e[9]*e[28]*e[7]+e[9]*e[1]*e[34]+e[9]*e[29]*e[8]+e[9]*e[2]*e[35]+e[27]*e[10]*e[7]+e[27]*e[1]*e[16]+e[27]*e[11]*e[8]+e[27]*e[2]*e[17]+e[3]*e[30]*e[15]+e[3]*e[12]*e[33]+e[3]*e[32]*e[17]+e[3]*e[14]*e[35]+e[3]*e[31]*e[16]+e[3]*e[13]*e[34]+3.*e[6]*e[33]*e[15]+e[6]*e[35]*e[17]+e[6]*e[34]*e[16]+e[0]*e[27]*e[15]+e[0]*e[9]*e[33]+e[0]*e[29]*e[17]+e[0]*e[11]*e[35]+e[0]*e[28]*e[16]+e[0]*e[10]*e[34]+e[15]*e[34]*e[7]-1.*e[15]*e[32]*e[5]+e[15]*e[35]*e[8]-1.*e[15]*e[29]*e[2]-1.*e[15]*e[28]*e[1]-1.*e[15]*e[31]*e[4]+e[12]*e[30]*e[6]+e[12]*e[31]*e[7]+e[12]*e[4]*e[34]+e[12]*e[32]*e[8]+e[12]*e[5]*e[35]-1.*e[33]*e[11]*e[2]-1.*e[33]*e[10]*e[1]-1.*e[33]*e[13]*e[4]; + A[6]=e[6]*e[1]*e[5]-e[6]*e[4]*e[2]+e[3]*e[7]*e[2]+e[0]*e[4]*e[8]-e[0]*e[5]*e[7]-e[3]*e[1]*e[8]; + A[148]=.5000000000*ep3[15]+e[9]*e[10]*e[16]-.5000000000*e[15]*ep2[11]+e[9]*e[11]*e[17]+.5000000000*ep2[12]*e[15]+.5000000000*e[15]*ep2[16]+.5000000000*e[15]*ep2[17]-.5000000000*e[15]*ep2[13]+.5000000000*ep2[9]*e[15]+e[12]*e[14]*e[17]-.5000000000*e[15]*ep2[10]-.5000000000*e[15]*ep2[14]+e[12]*e[13]*e[16]; + A[7]=e[15]*e[28]*e[14]-e[15]*e[13]*e[29]-e[15]*e[31]*e[11]+e[33]*e[10]*e[14]-e[33]*e[13]*e[11]+e[9]*e[13]*e[35]-e[9]*e[32]*e[16]+e[9]*e[31]*e[17]-e[9]*e[14]*e[34]+e[27]*e[13]*e[17]-e[27]*e[14]*e[16]+e[12]*e[34]*e[11]+e[12]*e[16]*e[29]-e[12]*e[10]*e[35]-e[12]*e[28]*e[17]+e[30]*e[16]*e[11]-e[30]*e[10]*e[17]+e[15]*e[10]*e[32]; + A[149]=e[18]*e[27]*e[24]+e[18]*e[28]*e[25]+e[18]*e[19]*e[34]+e[18]*e[29]*e[26]+e[18]*e[20]*e[35]+e[27]*e[19]*e[25]+e[27]*e[20]*e[26]+e[21]*e[30]*e[24]+e[21]*e[31]*e[25]+e[21]*e[22]*e[34]+e[21]*e[32]*e[26]+e[21]*e[23]*e[35]+e[30]*e[22]*e[25]+e[30]*e[23]*e[26]+e[24]*e[34]*e[25]+e[24]*e[35]*e[26]-1.*e[24]*e[29]*e[20]-1.*e[24]*e[31]*e[22]-1.*e[24]*e[32]*e[23]-1.*e[24]*e[28]*e[19]+1.500000000*e[33]*ep2[24]+.5000000000*e[33]*ep2[25]+.5000000000*e[33]*ep2[26]-.5000000000*e[33]*ep2[23]-.5000000000*e[33]*ep2[19]-.5000000000*e[33]*ep2[20]-.5000000000*e[33]*ep2[22]+.5000000000*ep2[18]*e[33]+.5000000000*ep2[21]*e[33]; + A[9]=e[21]*e[25]*e[29]-e[27]*e[23]*e[25]+e[24]*e[19]*e[32]-e[21]*e[28]*e[26]-e[21]*e[19]*e[35]+e[18]*e[31]*e[26]-e[30]*e[19]*e[26]-e[24]*e[31]*e[20]+e[24]*e[28]*e[23]+e[27]*e[22]*e[26]+e[30]*e[25]*e[20]-e[33]*e[22]*e[20]+e[33]*e[19]*e[23]+e[21]*e[34]*e[20]-e[18]*e[23]*e[34]-e[24]*e[22]*e[29]-e[18]*e[32]*e[25]+e[18]*e[22]*e[35]; + A[155]=e[12]*e[14]*e[8]+e[12]*e[5]*e[17]+e[15]*e[16]*e[7]+e[15]*e[17]*e[8]+e[0]*e[11]*e[17]+e[0]*e[9]*e[15]+e[0]*e[10]*e[16]+e[3]*e[14]*e[17]+e[3]*e[13]*e[16]+e[9]*e[10]*e[7]+e[9]*e[1]*e[16]+e[9]*e[11]*e[8]+e[9]*e[2]*e[17]-1.*e[15]*e[11]*e[2]-1.*e[15]*e[10]*e[1]-1.*e[15]*e[13]*e[4]-1.*e[15]*e[14]*e[5]+e[12]*e[3]*e[15]+e[12]*e[13]*e[7]+e[12]*e[4]*e[16]+.5000000000*ep2[12]*e[6]+1.500000000*ep2[15]*e[6]+.5000000000*e[6]*ep2[17]+.5000000000*e[6]*ep2[16]+.5000000000*e[6]*ep2[9]-.5000000000*e[6]*ep2[11]-.5000000000*e[6]*ep2[10]-.5000000000*e[6]*ep2[14]-.5000000000*e[6]*ep2[13]; + A[8]=-e[9]*e[14]*e[16]-e[12]*e[10]*e[17]+e[9]*e[13]*e[17]-e[15]*e[13]*e[11]+e[15]*e[10]*e[14]+e[12]*e[16]*e[11]; + A[154]=e[21]*e[14]*e[17]+e[21]*e[13]*e[16]+e[15]*e[26]*e[17]+e[15]*e[25]*e[16]-1.*e[15]*e[23]*e[14]-1.*e[15]*e[20]*e[11]-1.*e[15]*e[19]*e[10]-1.*e[15]*e[22]*e[13]+e[9]*e[20]*e[17]+e[9]*e[11]*e[26]+e[9]*e[19]*e[16]+e[9]*e[10]*e[25]+.5000000000*ep2[12]*e[24]+1.500000000*e[24]*ep2[15]+.5000000000*e[24]*ep2[17]+.5000000000*e[24]*ep2[16]+.5000000000*ep2[9]*e[24]-.5000000000*e[24]*ep2[11]-.5000000000*e[24]*ep2[10]-.5000000000*e[24]*ep2[14]-.5000000000*e[24]*ep2[13]+e[18]*e[11]*e[17]+e[18]*e[9]*e[15]+e[18]*e[10]*e[16]+e[12]*e[21]*e[15]+e[12]*e[23]*e[17]+e[12]*e[14]*e[26]+e[12]*e[22]*e[16]+e[12]*e[13]*e[25]; + A[11]=-e[9]*e[5]*e[34]+e[9]*e[31]*e[8]-e[9]*e[32]*e[7]+e[27]*e[4]*e[17]+e[27]*e[13]*e[8]-e[27]*e[5]*e[16]-e[27]*e[14]*e[7]+e[0]*e[13]*e[35]-e[0]*e[32]*e[16]+e[0]*e[31]*e[17]-e[0]*e[14]*e[34]+e[9]*e[4]*e[35]+e[6]*e[10]*e[32]+e[6]*e[28]*e[14]-e[6]*e[13]*e[29]-e[6]*e[31]*e[11]+e[15]*e[1]*e[32]+e[3]*e[34]*e[11]+e[3]*e[16]*e[29]-e[3]*e[10]*e[35]-e[3]*e[28]*e[17]-e[12]*e[1]*e[35]+e[12]*e[7]*e[29]+e[12]*e[34]*e[2]-e[12]*e[28]*e[8]+e[15]*e[28]*e[5]-e[15]*e[4]*e[29]-e[15]*e[31]*e[2]+e[33]*e[1]*e[14]+e[33]*e[10]*e[5]-e[33]*e[4]*e[11]-e[33]*e[13]*e[2]+e[30]*e[7]*e[11]+e[30]*e[16]*e[2]-e[30]*e[1]*e[17]-e[30]*e[10]*e[8]; + A[153]=e[21]*e[31]*e[7]+e[21]*e[4]*e[34]+e[21]*e[32]*e[8]+e[21]*e[5]*e[35]+e[30]*e[22]*e[7]+e[30]*e[4]*e[25]+e[30]*e[23]*e[8]+e[30]*e[5]*e[26]+3.*e[24]*e[33]*e[6]+e[24]*e[34]*e[7]+e[24]*e[35]*e[8]+e[33]*e[25]*e[7]+e[33]*e[26]*e[8]+e[0]*e[27]*e[24]+e[0]*e[18]*e[33]+e[0]*e[28]*e[25]+e[0]*e[19]*e[34]+e[0]*e[29]*e[26]+e[0]*e[20]*e[35]+e[18]*e[27]*e[6]+e[18]*e[28]*e[7]+e[18]*e[1]*e[34]+e[18]*e[29]*e[8]+e[18]*e[2]*e[35]+e[27]*e[19]*e[7]+e[27]*e[1]*e[25]+e[27]*e[20]*e[8]+e[27]*e[2]*e[26]+e[3]*e[30]*e[24]+e[3]*e[21]*e[33]+e[3]*e[31]*e[25]+e[3]*e[22]*e[34]+e[3]*e[32]*e[26]+e[3]*e[23]*e[35]+e[6]*e[30]*e[21]-1.*e[6]*e[29]*e[20]+e[6]*e[35]*e[26]-1.*e[6]*e[31]*e[22]-1.*e[6]*e[32]*e[23]-1.*e[6]*e[28]*e[19]+e[6]*e[34]*e[25]-1.*e[24]*e[32]*e[5]-1.*e[24]*e[29]*e[2]-1.*e[24]*e[28]*e[1]-1.*e[24]*e[31]*e[4]-1.*e[33]*e[20]*e[2]-1.*e[33]*e[19]*e[1]-1.*e[33]*e[22]*e[4]-1.*e[33]*e[23]*e[5]; + A[10]=e[21]*e[25]*e[20]-e[21]*e[19]*e[26]+e[18]*e[22]*e[26]-e[18]*e[23]*e[25]-e[24]*e[22]*e[20]+e[24]*e[19]*e[23]; + A[152]=e[3]*e[4]*e[25]+e[3]*e[23]*e[8]+e[3]*e[5]*e[26]+e[21]*e[4]*e[7]+e[21]*e[5]*e[8]+e[6]*e[25]*e[7]+e[6]*e[26]*e[8]+e[0]*e[19]*e[7]+e[0]*e[1]*e[25]+e[0]*e[20]*e[8]+e[0]*e[2]*e[26]-1.*e[6]*e[20]*e[2]-1.*e[6]*e[19]*e[1]-1.*e[6]*e[22]*e[4]-1.*e[6]*e[23]*e[5]+e[18]*e[1]*e[7]+e[18]*e[0]*e[6]+e[18]*e[2]*e[8]+e[3]*e[21]*e[6]+e[3]*e[22]*e[7]-.5000000000*e[24]*ep2[4]+.5000000000*e[24]*ep2[0]+1.500000000*e[24]*ep2[6]-.5000000000*e[24]*ep2[5]-.5000000000*e[24]*ep2[1]+.5000000000*e[24]*ep2[7]+.5000000000*e[24]*ep2[3]-.5000000000*e[24]*ep2[2]+.5000000000*e[24]*ep2[8]; + A[13]=e[6]*e[28]*e[23]-e[6]*e[22]*e[29]-e[6]*e[31]*e[20]-e[3]*e[19]*e[35]+e[3]*e[34]*e[20]+e[3]*e[25]*e[29]-e[21]*e[1]*e[35]+e[21]*e[7]*e[29]+e[21]*e[34]*e[2]+e[24]*e[1]*e[32]+e[24]*e[28]*e[5]-e[24]*e[4]*e[29]-e[24]*e[31]*e[2]+e[33]*e[1]*e[23]+e[33]*e[19]*e[5]-e[33]*e[4]*e[20]-e[33]*e[22]*e[2]-e[21]*e[28]*e[8]+e[30]*e[7]*e[20]+e[30]*e[25]*e[2]-e[30]*e[1]*e[26]+e[18]*e[4]*e[35]-e[18]*e[5]*e[34]+e[18]*e[31]*e[8]-e[18]*e[32]*e[7]+e[27]*e[4]*e[26]+e[27]*e[22]*e[8]-e[27]*e[5]*e[25]-e[27]*e[23]*e[7]-e[3]*e[28]*e[26]-e[0]*e[32]*e[25]+e[0]*e[22]*e[35]-e[0]*e[23]*e[34]+e[0]*e[31]*e[26]-e[30]*e[19]*e[8]+e[6]*e[19]*e[32]; + A[159]=.5000000000*ep2[18]*e[6]+.5000000000*ep2[21]*e[6]+1.500000000*ep2[24]*e[6]+.5000000000*e[6]*ep2[26]-.5000000000*e[6]*ep2[23]-.5000000000*e[6]*ep2[19]-.5000000000*e[6]*ep2[20]-.5000000000*e[6]*ep2[22]+.5000000000*e[6]*ep2[25]+e[21]*e[3]*e[24]+e[18]*e[20]*e[8]+e[21]*e[4]*e[25]+e[18]*e[19]*e[7]+e[18]*e[1]*e[25]+e[21]*e[22]*e[7]+e[21]*e[23]*e[8]+e[18]*e[0]*e[24]+e[18]*e[2]*e[26]+e[21]*e[5]*e[26]+e[24]*e[26]*e[8]-1.*e[24]*e[20]*e[2]-1.*e[24]*e[19]*e[1]-1.*e[24]*e[22]*e[4]+e[24]*e[25]*e[7]-1.*e[24]*e[23]*e[5]+e[0]*e[19]*e[25]+e[0]*e[20]*e[26]+e[3]*e[22]*e[25]+e[3]*e[23]*e[26]; + A[12]=e[18]*e[4]*e[8]+e[3]*e[7]*e[20]+e[3]*e[25]*e[2]-e[3]*e[1]*e[26]-e[18]*e[5]*e[7]+e[6]*e[1]*e[23]+e[6]*e[19]*e[5]-e[6]*e[4]*e[20]-e[6]*e[22]*e[2]+e[21]*e[7]*e[2]-e[21]*e[1]*e[8]+e[24]*e[1]*e[5]-e[24]*e[4]*e[2]-e[3]*e[19]*e[8]+e[0]*e[4]*e[26]+e[0]*e[22]*e[8]-e[0]*e[5]*e[25]-e[0]*e[23]*e[7]; + A[158]=e[9]*e[1]*e[7]+e[9]*e[0]*e[6]+e[9]*e[2]*e[8]+e[3]*e[12]*e[6]+e[3]*e[13]*e[7]+e[3]*e[4]*e[16]+e[3]*e[14]*e[8]+e[3]*e[5]*e[17]+e[12]*e[4]*e[7]+e[12]*e[5]*e[8]+e[6]*e[16]*e[7]+e[6]*e[17]*e[8]-1.*e[6]*e[11]*e[2]-1.*e[6]*e[10]*e[1]-1.*e[6]*e[13]*e[4]-1.*e[6]*e[14]*e[5]+e[0]*e[10]*e[7]+e[0]*e[1]*e[16]+e[0]*e[11]*e[8]+e[0]*e[2]*e[17]+.5000000000*ep2[3]*e[15]+1.500000000*e[15]*ep2[6]+.5000000000*e[15]*ep2[7]+.5000000000*e[15]*ep2[8]+.5000000000*ep2[0]*e[15]-.5000000000*e[15]*ep2[4]-.5000000000*e[15]*ep2[5]-.5000000000*e[15]*ep2[1]-.5000000000*e[15]*ep2[2]; + A[15]=-e[15]*e[13]*e[2]-e[6]*e[13]*e[11]-e[15]*e[4]*e[11]+e[12]*e[16]*e[2]-e[3]*e[10]*e[17]+e[3]*e[16]*e[11]+e[0]*e[13]*e[17]-e[0]*e[14]*e[16]+e[15]*e[1]*e[14]-e[12]*e[10]*e[8]+e[9]*e[4]*e[17]+e[9]*e[13]*e[8]-e[9]*e[5]*e[16]-e[9]*e[14]*e[7]+e[15]*e[10]*e[5]+e[12]*e[7]*e[11]+e[6]*e[10]*e[14]-e[12]*e[1]*e[17]; + A[157]=e[12]*e[30]*e[24]+e[12]*e[21]*e[33]+e[12]*e[31]*e[25]+e[12]*e[22]*e[34]+e[12]*e[32]*e[26]+e[12]*e[23]*e[35]+e[9]*e[27]*e[24]+e[9]*e[18]*e[33]+e[9]*e[28]*e[25]+e[9]*e[19]*e[34]+e[9]*e[29]*e[26]+e[9]*e[20]*e[35]+e[21]*e[30]*e[15]+e[21]*e[32]*e[17]+e[21]*e[14]*e[35]+e[21]*e[31]*e[16]+e[21]*e[13]*e[34]+e[30]*e[23]*e[17]+e[30]*e[14]*e[26]+e[30]*e[22]*e[16]+e[30]*e[13]*e[25]+e[15]*e[27]*e[18]+3.*e[15]*e[33]*e[24]-1.*e[15]*e[29]*e[20]+e[15]*e[35]*e[26]-1.*e[15]*e[31]*e[22]-1.*e[15]*e[32]*e[23]-1.*e[15]*e[28]*e[19]+e[15]*e[34]*e[25]+e[18]*e[29]*e[17]+e[18]*e[11]*e[35]+e[18]*e[28]*e[16]+e[18]*e[10]*e[34]+e[27]*e[20]*e[17]+e[27]*e[11]*e[26]+e[27]*e[19]*e[16]+e[27]*e[10]*e[25]-1.*e[24]*e[28]*e[10]-1.*e[24]*e[31]*e[13]-1.*e[24]*e[32]*e[14]+e[24]*e[34]*e[16]+e[24]*e[35]*e[17]-1.*e[24]*e[29]*e[11]-1.*e[33]*e[23]*e[14]+e[33]*e[25]*e[16]+e[33]*e[26]*e[17]-1.*e[33]*e[20]*e[11]-1.*e[33]*e[19]*e[10]-1.*e[33]*e[22]*e[13]; + A[14]=e[18]*e[13]*e[17]+e[9]*e[13]*e[26]+e[9]*e[22]*e[17]-e[9]*e[14]*e[25]-e[18]*e[14]*e[16]-e[15]*e[13]*e[20]-e[15]*e[22]*e[11]+e[12]*e[16]*e[20]+e[12]*e[25]*e[11]-e[12]*e[10]*e[26]-e[12]*e[19]*e[17]+e[21]*e[16]*e[11]-e[21]*e[10]*e[17]-e[9]*e[23]*e[16]+e[24]*e[10]*e[14]-e[24]*e[13]*e[11]+e[15]*e[10]*e[23]+e[15]*e[19]*e[14]; + A[156]=e[21]*e[12]*e[24]+e[21]*e[23]*e[17]+e[21]*e[14]*e[26]+e[21]*e[22]*e[16]+e[21]*e[13]*e[25]+e[24]*e[26]*e[17]+e[24]*e[25]*e[16]+e[9]*e[19]*e[25]+e[9]*e[18]*e[24]+e[9]*e[20]*e[26]+e[12]*e[22]*e[25]+e[12]*e[23]*e[26]+e[18]*e[20]*e[17]+e[18]*e[11]*e[26]+e[18]*e[19]*e[16]+e[18]*e[10]*e[25]-1.*e[24]*e[23]*e[14]-1.*e[24]*e[20]*e[11]-1.*e[24]*e[19]*e[10]-1.*e[24]*e[22]*e[13]+.5000000000*ep2[21]*e[15]+1.500000000*ep2[24]*e[15]+.5000000000*e[15]*ep2[25]+.5000000000*e[15]*ep2[26]+.5000000000*e[15]*ep2[18]-.5000000000*e[15]*ep2[23]-.5000000000*e[15]*ep2[19]-.5000000000*e[15]*ep2[20]-.5000000000*e[15]*ep2[22]; + A[18]=e[6]*e[1]*e[14]+e[15]*e[1]*e[5]-e[0]*e[5]*e[16]-e[0]*e[14]*e[7]+e[0]*e[13]*e[8]-e[15]*e[4]*e[2]+e[12]*e[7]*e[2]+e[6]*e[10]*e[5]+e[3]*e[7]*e[11]-e[6]*e[4]*e[11]+e[3]*e[16]*e[2]-e[6]*e[13]*e[2]-e[3]*e[1]*e[17]-e[9]*e[5]*e[7]-e[3]*e[10]*e[8]-e[12]*e[1]*e[8]+e[0]*e[4]*e[17]+e[9]*e[4]*e[8]; + A[128]=-.5000000000*e[14]*ep2[16]-.5000000000*e[14]*ep2[10]-.5000000000*e[14]*ep2[9]+e[11]*e[9]*e[12]+.5000000000*ep3[14]+e[17]*e[13]*e[16]+.5000000000*e[14]*ep2[12]+e[11]*e[10]*e[13]-.5000000000*e[14]*ep2[15]+.5000000000*e[14]*ep2[17]+e[17]*e[12]*e[15]+.5000000000*ep2[11]*e[14]+.5000000000*e[14]*ep2[13]; + A[19]=-e[21]*e[19]*e[8]+e[18]*e[4]*e[26]-e[18]*e[5]*e[25]-e[18]*e[23]*e[7]+e[21]*e[25]*e[2]-e[21]*e[1]*e[26]+e[6]*e[19]*e[23]+e[18]*e[22]*e[8]-e[0]*e[23]*e[25]-e[6]*e[22]*e[20]+e[24]*e[1]*e[23]+e[24]*e[19]*e[5]-e[24]*e[4]*e[20]-e[24]*e[22]*e[2]+e[3]*e[25]*e[20]-e[3]*e[19]*e[26]+e[0]*e[22]*e[26]+e[21]*e[7]*e[20]; + A[129]=.5000000000*ep2[20]*e[32]+1.500000000*e[32]*ep2[23]+.5000000000*e[32]*ep2[22]+.5000000000*e[32]*ep2[21]+.5000000000*e[32]*ep2[26]-.5000000000*e[32]*ep2[18]-.5000000000*e[32]*ep2[19]-.5000000000*e[32]*ep2[24]-.5000000000*e[32]*ep2[25]+e[20]*e[27]*e[21]+e[20]*e[18]*e[30]+e[20]*e[28]*e[22]+e[20]*e[19]*e[31]+e[20]*e[29]*e[23]+e[29]*e[19]*e[22]+e[29]*e[18]*e[21]+e[23]*e[30]*e[21]+e[23]*e[31]*e[22]+e[26]*e[30]*e[24]+e[26]*e[21]*e[33]+e[26]*e[31]*e[25]+e[26]*e[22]*e[34]+e[26]*e[23]*e[35]+e[35]*e[22]*e[25]+e[35]*e[21]*e[24]-1.*e[23]*e[27]*e[18]-1.*e[23]*e[33]*e[24]-1.*e[23]*e[28]*e[19]-1.*e[23]*e[34]*e[25]; + A[16]=-e[9]*e[23]*e[25]-e[21]*e[10]*e[26]-e[21]*e[19]*e[17]-e[18]*e[23]*e[16]+e[18]*e[13]*e[26]+e[12]*e[25]*e[20]-e[12]*e[19]*e[26]-e[15]*e[22]*e[20]+e[21]*e[16]*e[20]+e[21]*e[25]*e[11]+e[24]*e[10]*e[23]+e[24]*e[19]*e[14]-e[24]*e[13]*e[20]-e[24]*e[22]*e[11]+e[18]*e[22]*e[17]-e[18]*e[14]*e[25]+e[9]*e[22]*e[26]+e[15]*e[19]*e[23]; + A[130]=.5000000000*e[23]*ep2[21]+e[20]*e[19]*e[22]+e[20]*e[18]*e[21]+.5000000000*ep3[23]+e[26]*e[22]*e[25]+.5000000000*e[23]*ep2[26]-.5000000000*e[23]*ep2[18]+.5000000000*e[23]*ep2[22]-.5000000000*e[23]*ep2[19]+e[26]*e[21]*e[24]+.5000000000*ep2[20]*e[23]-.5000000000*e[23]*ep2[24]-.5000000000*e[23]*ep2[25]; + A[17]=e[18]*e[13]*e[35]-e[18]*e[32]*e[16]+e[18]*e[31]*e[17]-e[18]*e[14]*e[34]+e[27]*e[13]*e[26]+e[27]*e[22]*e[17]-e[27]*e[14]*e[25]-e[27]*e[23]*e[16]-e[9]*e[32]*e[25]+e[9]*e[22]*e[35]-e[9]*e[23]*e[34]+e[9]*e[31]*e[26]+e[15]*e[19]*e[32]+e[15]*e[28]*e[23]-e[15]*e[22]*e[29]-e[15]*e[31]*e[20]+e[24]*e[10]*e[32]+e[24]*e[28]*e[14]-e[24]*e[13]*e[29]-e[24]*e[31]*e[11]+e[33]*e[10]*e[23]+e[33]*e[19]*e[14]-e[33]*e[13]*e[20]-e[33]*e[22]*e[11]+e[21]*e[16]*e[29]-e[21]*e[10]*e[35]-e[21]*e[28]*e[17]+e[30]*e[16]*e[20]+e[30]*e[25]*e[11]-e[30]*e[10]*e[26]-e[30]*e[19]*e[17]-e[12]*e[28]*e[26]-e[12]*e[19]*e[35]+e[12]*e[34]*e[20]+e[12]*e[25]*e[29]+e[21]*e[34]*e[11]; + A[131]=-1.*e[32]*e[10]*e[1]+e[32]*e[13]*e[4]-1.*e[32]*e[16]*e[7]-1.*e[32]*e[15]*e[6]-1.*e[32]*e[9]*e[0]+e[32]*e[12]*e[3]+e[17]*e[30]*e[6]+e[17]*e[3]*e[33]+e[17]*e[31]*e[7]+e[17]*e[4]*e[34]+e[17]*e[5]*e[35]-1.*e[5]*e[27]*e[9]-1.*e[5]*e[28]*e[10]-1.*e[5]*e[33]*e[15]-1.*e[5]*e[34]*e[16]+e[5]*e[29]*e[11]+e[35]*e[12]*e[6]+e[35]*e[3]*e[15]+e[35]*e[13]*e[7]+e[35]*e[4]*e[16]+e[11]*e[27]*e[3]+e[11]*e[0]*e[30]+e[11]*e[28]*e[4]+e[11]*e[1]*e[31]+e[29]*e[9]*e[3]+e[29]*e[0]*e[12]+e[29]*e[10]*e[4]+e[29]*e[1]*e[13]+e[5]*e[30]*e[12]+3.*e[5]*e[32]*e[14]+e[5]*e[31]*e[13]+e[8]*e[30]*e[15]+e[8]*e[12]*e[33]+e[8]*e[32]*e[17]+e[8]*e[14]*e[35]+e[8]*e[31]*e[16]+e[8]*e[13]*e[34]+e[2]*e[27]*e[12]+e[2]*e[9]*e[30]+e[2]*e[29]*e[14]+e[2]*e[11]*e[32]+e[2]*e[28]*e[13]+e[2]*e[10]*e[31]-1.*e[14]*e[27]*e[0]-1.*e[14]*e[34]*e[7]-1.*e[14]*e[33]*e[6]+e[14]*e[30]*e[3]-1.*e[14]*e[28]*e[1]+e[14]*e[31]*e[4]; + A[22]=.5000000000*e[18]*ep2[29]+.5000000000*e[18]*ep2[28]+.5000000000*e[18]*ep2[30]+.5000000000*e[18]*ep2[33]-.5000000000*e[18]*ep2[32]-.5000000000*e[18]*ep2[31]-.5000000000*e[18]*ep2[34]-.5000000000*e[18]*ep2[35]+1.500000000*e[18]*ep2[27]+e[27]*e[28]*e[19]+e[27]*e[29]*e[20]+e[21]*e[27]*e[30]+e[21]*e[29]*e[32]+e[21]*e[28]*e[31]+e[30]*e[28]*e[22]+e[30]*e[19]*e[31]+e[30]*e[29]*e[23]+e[30]*e[20]*e[32]+e[24]*e[27]*e[33]+e[24]*e[29]*e[35]+e[24]*e[28]*e[34]+e[33]*e[28]*e[25]+e[33]*e[19]*e[34]+e[33]*e[29]*e[26]+e[33]*e[20]*e[35]-1.*e[27]*e[35]*e[26]-1.*e[27]*e[31]*e[22]-1.*e[27]*e[32]*e[23]-1.*e[27]*e[34]*e[25]; + A[132]=e[20]*e[1]*e[4]+e[20]*e[0]*e[3]+e[20]*e[2]*e[5]+e[5]*e[21]*e[3]+e[5]*e[22]*e[4]+e[8]*e[21]*e[6]+e[8]*e[3]*e[24]+e[8]*e[22]*e[7]+e[8]*e[4]*e[25]+e[8]*e[5]*e[26]+e[26]*e[4]*e[7]+e[26]*e[3]*e[6]+e[2]*e[18]*e[3]+e[2]*e[0]*e[21]+e[2]*e[19]*e[4]+e[2]*e[1]*e[22]-1.*e[5]*e[19]*e[1]-1.*e[5]*e[18]*e[0]-1.*e[5]*e[25]*e[7]-1.*e[5]*e[24]*e[6]+.5000000000*e[23]*ep2[4]-.5000000000*e[23]*ep2[0]-.5000000000*e[23]*ep2[6]+1.500000000*e[23]*ep2[5]-.5000000000*e[23]*ep2[1]-.5000000000*e[23]*ep2[7]+.5000000000*e[23]*ep2[3]+.5000000000*e[23]*ep2[2]+.5000000000*e[23]*ep2[8]; + A[23]=1.500000000*e[9]*ep2[27]+.5000000000*e[9]*ep2[29]+.5000000000*e[9]*ep2[28]-.5000000000*e[9]*ep2[32]-.5000000000*e[9]*ep2[31]+.5000000000*e[9]*ep2[33]+.5000000000*e[9]*ep2[30]-.5000000000*e[9]*ep2[34]-.5000000000*e[9]*ep2[35]+e[33]*e[27]*e[15]+e[33]*e[29]*e[17]+e[33]*e[11]*e[35]+e[33]*e[28]*e[16]+e[33]*e[10]*e[34]+e[27]*e[29]*e[11]+e[27]*e[28]*e[10]+e[27]*e[30]*e[12]-1.*e[27]*e[31]*e[13]-1.*e[27]*e[32]*e[14]-1.*e[27]*e[34]*e[16]-1.*e[27]*e[35]*e[17]+e[30]*e[29]*e[14]+e[30]*e[11]*e[32]+e[30]*e[28]*e[13]+e[30]*e[10]*e[31]+e[12]*e[29]*e[32]+e[12]*e[28]*e[31]+e[15]*e[29]*e[35]+e[15]*e[28]*e[34]; + A[133]=-1.*e[32]*e[24]*e[6]+e[8]*e[30]*e[24]+e[8]*e[21]*e[33]+e[8]*e[31]*e[25]+e[8]*e[22]*e[34]+e[26]*e[30]*e[6]+e[26]*e[3]*e[33]+e[26]*e[31]*e[7]+e[26]*e[4]*e[34]+e[26]*e[32]*e[8]+e[26]*e[5]*e[35]+e[35]*e[21]*e[6]+e[35]*e[3]*e[24]+e[35]*e[22]*e[7]+e[35]*e[4]*e[25]+e[35]*e[23]*e[8]+e[2]*e[27]*e[21]+e[2]*e[18]*e[30]+e[2]*e[28]*e[22]+e[2]*e[19]*e[31]+e[2]*e[29]*e[23]+e[2]*e[20]*e[32]+e[20]*e[27]*e[3]+e[20]*e[0]*e[30]+e[20]*e[28]*e[4]+e[20]*e[1]*e[31]+e[20]*e[29]*e[5]+e[29]*e[18]*e[3]+e[29]*e[0]*e[21]+e[29]*e[19]*e[4]+e[29]*e[1]*e[22]+e[5]*e[30]*e[21]+e[5]*e[31]*e[22]+3.*e[5]*e[32]*e[23]-1.*e[5]*e[27]*e[18]-1.*e[5]*e[33]*e[24]-1.*e[5]*e[28]*e[19]-1.*e[5]*e[34]*e[25]-1.*e[23]*e[27]*e[0]-1.*e[23]*e[34]*e[7]-1.*e[23]*e[33]*e[6]+e[23]*e[30]*e[3]-1.*e[23]*e[28]*e[1]+e[23]*e[31]*e[4]+e[32]*e[21]*e[3]-1.*e[32]*e[19]*e[1]+e[32]*e[22]*e[4]-1.*e[32]*e[18]*e[0]-1.*e[32]*e[25]*e[7]; + A[20]=.5000000000*e[27]*ep2[33]-.5000000000*e[27]*ep2[32]-.5000000000*e[27]*ep2[31]-.5000000000*e[27]*ep2[34]-.5000000000*e[27]*ep2[35]+e[33]*e[29]*e[35]+.5000000000*e[27]*ep2[29]+e[30]*e[29]*e[32]+e[30]*e[28]*e[31]+e[33]*e[28]*e[34]+.5000000000*e[27]*ep2[28]+.5000000000*e[27]*ep2[30]+.5000000000*ep3[27]; + A[134]=e[14]*e[21]*e[12]+e[14]*e[22]*e[13]+e[17]*e[21]*e[15]+e[17]*e[12]*e[24]+e[17]*e[14]*e[26]+e[17]*e[22]*e[16]+e[17]*e[13]*e[25]+e[26]*e[12]*e[15]+e[26]*e[13]*e[16]-1.*e[14]*e[24]*e[15]-1.*e[14]*e[25]*e[16]-1.*e[14]*e[18]*e[9]-1.*e[14]*e[19]*e[10]+e[11]*e[18]*e[12]+e[11]*e[9]*e[21]+e[11]*e[19]*e[13]+e[11]*e[10]*e[22]+e[20]*e[11]*e[14]+e[20]*e[9]*e[12]+e[20]*e[10]*e[13]+1.500000000*e[23]*ep2[14]+.5000000000*e[23]*ep2[12]+.5000000000*e[23]*ep2[13]+.5000000000*e[23]*ep2[17]+.5000000000*ep2[11]*e[23]-.5000000000*e[23]*ep2[16]-.5000000000*e[23]*ep2[9]-.5000000000*e[23]*ep2[15]-.5000000000*e[23]*ep2[10]; + A[21]=1.500000000*e[0]*ep2[27]+.5000000000*e[0]*ep2[29]+.5000000000*e[0]*ep2[28]+.5000000000*e[0]*ep2[30]-.5000000000*e[0]*ep2[32]-.5000000000*e[0]*ep2[31]+.5000000000*e[0]*ep2[33]-.5000000000*e[0]*ep2[34]-.5000000000*e[0]*ep2[35]-1.*e[27]*e[31]*e[4]+e[3]*e[27]*e[30]+e[3]*e[29]*e[32]+e[3]*e[28]*e[31]+e[30]*e[28]*e[4]+e[30]*e[1]*e[31]+e[30]*e[29]*e[5]+e[30]*e[2]*e[32]+e[6]*e[27]*e[33]+e[6]*e[29]*e[35]+e[6]*e[28]*e[34]+e[27]*e[28]*e[1]+e[27]*e[29]*e[2]+e[33]*e[28]*e[7]+e[33]*e[1]*e[34]+e[33]*e[29]*e[8]+e[33]*e[2]*e[35]-1.*e[27]*e[34]*e[7]-1.*e[27]*e[32]*e[5]-1.*e[27]*e[35]*e[8]; + A[135]=e[14]*e[12]*e[3]+e[14]*e[13]*e[4]+e[17]*e[12]*e[6]+e[17]*e[3]*e[15]+e[17]*e[13]*e[7]+e[17]*e[4]*e[16]+e[17]*e[14]*e[8]+e[8]*e[12]*e[15]+e[8]*e[13]*e[16]+e[2]*e[11]*e[14]+e[2]*e[9]*e[12]+e[2]*e[10]*e[13]+e[11]*e[9]*e[3]+e[11]*e[0]*e[12]+e[11]*e[10]*e[4]+e[11]*e[1]*e[13]-1.*e[14]*e[10]*e[1]-1.*e[14]*e[16]*e[7]-1.*e[14]*e[15]*e[6]-1.*e[14]*e[9]*e[0]-.5000000000*e[5]*ep2[16]-.5000000000*e[5]*ep2[9]+.5000000000*e[5]*ep2[11]+.5000000000*e[5]*ep2[12]-.5000000000*e[5]*ep2[15]-.5000000000*e[5]*ep2[10]+.5000000000*e[5]*ep2[13]+1.500000000*ep2[14]*e[5]+.5000000000*e[5]*ep2[17]; + A[27]=1.500000000*e[27]*ep2[9]-.5000000000*e[27]*ep2[16]+.5000000000*e[27]*ep2[11]+.5000000000*e[27]*ep2[12]+.5000000000*e[27]*ep2[15]-.5000000000*e[27]*ep2[17]+.5000000000*e[27]*ep2[10]-.5000000000*e[27]*ep2[14]-.5000000000*e[27]*ep2[13]+e[12]*e[10]*e[31]+e[30]*e[11]*e[14]+e[30]*e[10]*e[13]+e[15]*e[9]*e[33]+e[15]*e[29]*e[17]+e[15]*e[11]*e[35]+e[15]*e[28]*e[16]+e[15]*e[10]*e[34]+e[33]*e[11]*e[17]+e[33]*e[10]*e[16]-1.*e[9]*e[31]*e[13]-1.*e[9]*e[32]*e[14]-1.*e[9]*e[34]*e[16]-1.*e[9]*e[35]*e[17]+e[9]*e[29]*e[11]+e[9]*e[28]*e[10]+e[12]*e[9]*e[30]+e[12]*e[29]*e[14]+e[12]*e[11]*e[32]+e[12]*e[28]*e[13]; + A[137]=e[29]*e[18]*e[12]+e[29]*e[9]*e[21]+e[29]*e[19]*e[13]+e[29]*e[10]*e[22]+e[17]*e[30]*e[24]+e[17]*e[21]*e[33]+e[17]*e[31]*e[25]+e[17]*e[22]*e[34]+e[17]*e[32]*e[26]+e[17]*e[23]*e[35]-1.*e[23]*e[27]*e[9]-1.*e[23]*e[28]*e[10]-1.*e[23]*e[33]*e[15]-1.*e[23]*e[34]*e[16]-1.*e[32]*e[24]*e[15]-1.*e[32]*e[25]*e[16]-1.*e[32]*e[18]*e[9]-1.*e[32]*e[19]*e[10]+e[26]*e[30]*e[15]+e[26]*e[12]*e[33]+e[26]*e[31]*e[16]+e[26]*e[13]*e[34]+e[35]*e[21]*e[15]+e[35]*e[12]*e[24]+e[35]*e[22]*e[16]+e[35]*e[13]*e[25]+e[14]*e[30]*e[21]+e[14]*e[31]*e[22]+3.*e[14]*e[32]*e[23]+e[11]*e[27]*e[21]+e[11]*e[18]*e[30]+e[11]*e[28]*e[22]+e[11]*e[19]*e[31]+e[11]*e[29]*e[23]+e[11]*e[20]*e[32]+e[23]*e[30]*e[12]+e[23]*e[31]*e[13]+e[32]*e[21]*e[12]+e[32]*e[22]*e[13]-1.*e[14]*e[27]*e[18]-1.*e[14]*e[33]*e[24]+e[14]*e[29]*e[20]+e[14]*e[35]*e[26]-1.*e[14]*e[28]*e[19]-1.*e[14]*e[34]*e[25]+e[20]*e[27]*e[12]+e[20]*e[9]*e[30]+e[20]*e[28]*e[13]+e[20]*e[10]*e[31]; + A[26]=.5000000000*e[0]*ep2[1]+.5000000000*e[0]*ep2[2]+e[6]*e[2]*e[8]+e[6]*e[1]*e[7]+.5000000000*e[0]*ep2[3]+e[3]*e[1]*e[4]+.5000000000*e[0]*ep2[6]+e[3]*e[2]*e[5]-.5000000000*e[0]*ep2[5]-.5000000000*e[0]*ep2[8]+.5000000000*ep3[0]-.5000000000*e[0]*ep2[7]-.5000000000*e[0]*ep2[4]; + A[136]=1.500000000*ep2[23]*e[14]+.5000000000*e[14]*ep2[26]-.5000000000*e[14]*ep2[18]-.5000000000*e[14]*ep2[19]+.5000000000*e[14]*ep2[20]+.5000000000*e[14]*ep2[22]-.5000000000*e[14]*ep2[24]+.5000000000*e[14]*ep2[21]-.5000000000*e[14]*ep2[25]+e[23]*e[21]*e[12]+e[23]*e[22]*e[13]+e[26]*e[21]*e[15]+e[26]*e[12]*e[24]+e[26]*e[23]*e[17]+e[26]*e[22]*e[16]+e[26]*e[13]*e[25]+e[17]*e[22]*e[25]+e[17]*e[21]*e[24]+e[11]*e[19]*e[22]+e[11]*e[18]*e[21]+e[11]*e[20]*e[23]+e[20]*e[18]*e[12]+e[20]*e[9]*e[21]+e[20]*e[19]*e[13]+e[20]*e[10]*e[22]-1.*e[23]*e[24]*e[15]-1.*e[23]*e[25]*e[16]-1.*e[23]*e[18]*e[9]-1.*e[23]*e[19]*e[10]; + A[25]=1.500000000*e[27]*ep2[0]-.5000000000*e[27]*ep2[4]+.5000000000*e[27]*ep2[6]-.5000000000*e[27]*ep2[5]+.5000000000*e[27]*ep2[1]-.5000000000*e[27]*ep2[7]+.5000000000*e[27]*ep2[3]+.5000000000*e[27]*ep2[2]-.5000000000*e[27]*ep2[8]+e[0]*e[33]*e[6]+e[0]*e[30]*e[3]-1.*e[0]*e[35]*e[8]-1.*e[0]*e[31]*e[4]+e[3]*e[28]*e[4]+e[3]*e[1]*e[31]+e[3]*e[29]*e[5]+e[3]*e[2]*e[32]+e[30]*e[1]*e[4]+e[30]*e[2]*e[5]+e[6]*e[28]*e[7]+e[6]*e[1]*e[34]+e[6]*e[29]*e[8]+e[6]*e[2]*e[35]+e[33]*e[1]*e[7]+e[33]*e[2]*e[8]+e[0]*e[28]*e[1]+e[0]*e[29]*e[2]-1.*e[0]*e[34]*e[7]-1.*e[0]*e[32]*e[5]; + A[139]=e[8]*e[22]*e[25]+e[8]*e[21]*e[24]+e[20]*e[18]*e[3]+e[20]*e[0]*e[21]+e[20]*e[19]*e[4]+e[20]*e[1]*e[22]+e[20]*e[2]*e[23]+e[23]*e[21]*e[3]+e[23]*e[22]*e[4]+e[23]*e[26]*e[8]-1.*e[23]*e[19]*e[1]-1.*e[23]*e[18]*e[0]-1.*e[23]*e[25]*e[7]-1.*e[23]*e[24]*e[6]+e[2]*e[19]*e[22]+e[2]*e[18]*e[21]+e[26]*e[21]*e[6]+e[26]*e[3]*e[24]+e[26]*e[22]*e[7]+e[26]*e[4]*e[25]+.5000000000*ep2[20]*e[5]+1.500000000*ep2[23]*e[5]+.5000000000*e[5]*ep2[22]+.5000000000*e[5]*ep2[21]+.5000000000*e[5]*ep2[26]-.5000000000*e[5]*ep2[18]-.5000000000*e[5]*ep2[19]-.5000000000*e[5]*ep2[24]-.5000000000*e[5]*ep2[25]; + A[24]=e[24]*e[11]*e[8]+e[24]*e[2]*e[17]+3.*e[9]*e[18]*e[0]+e[9]*e[19]*e[1]+e[9]*e[20]*e[2]+e[18]*e[10]*e[1]+e[18]*e[11]*e[2]+e[3]*e[18]*e[12]+e[3]*e[9]*e[21]+e[3]*e[20]*e[14]+e[3]*e[11]*e[23]+e[3]*e[19]*e[13]+e[3]*e[10]*e[22]+e[6]*e[18]*e[15]+e[6]*e[9]*e[24]+e[6]*e[20]*e[17]+e[6]*e[11]*e[26]+e[6]*e[19]*e[16]+e[6]*e[10]*e[25]+e[0]*e[20]*e[11]+e[0]*e[19]*e[10]-1.*e[9]*e[26]*e[8]-1.*e[9]*e[22]*e[4]-1.*e[9]*e[25]*e[7]-1.*e[9]*e[23]*e[5]+e[12]*e[0]*e[21]+e[12]*e[19]*e[4]+e[12]*e[1]*e[22]+e[12]*e[20]*e[5]+e[12]*e[2]*e[23]-1.*e[18]*e[13]*e[4]-1.*e[18]*e[16]*e[7]-1.*e[18]*e[14]*e[5]-1.*e[18]*e[17]*e[8]+e[21]*e[10]*e[4]+e[21]*e[1]*e[13]+e[21]*e[11]*e[5]+e[21]*e[2]*e[14]+e[15]*e[0]*e[24]+e[15]*e[19]*e[7]+e[15]*e[1]*e[25]+e[15]*e[20]*e[8]+e[15]*e[2]*e[26]-1.*e[0]*e[23]*e[14]-1.*e[0]*e[25]*e[16]-1.*e[0]*e[26]*e[17]-1.*e[0]*e[22]*e[13]+e[24]*e[10]*e[7]+e[24]*e[1]*e[16]; + A[138]=e[11]*e[1]*e[4]+e[11]*e[0]*e[3]+e[11]*e[2]*e[5]+e[5]*e[12]*e[3]+e[5]*e[13]*e[4]+e[8]*e[12]*e[6]+e[8]*e[3]*e[15]+e[8]*e[13]*e[7]+e[8]*e[4]*e[16]+e[8]*e[5]*e[17]+e[17]*e[4]*e[7]+e[17]*e[3]*e[6]-1.*e[5]*e[10]*e[1]-1.*e[5]*e[16]*e[7]-1.*e[5]*e[15]*e[6]-1.*e[5]*e[9]*e[0]+e[2]*e[9]*e[3]+e[2]*e[0]*e[12]+e[2]*e[10]*e[4]+e[2]*e[1]*e[13]+.5000000000*ep2[2]*e[14]-.5000000000*e[14]*ep2[0]-.5000000000*e[14]*ep2[6]-.5000000000*e[14]*ep2[1]-.5000000000*e[14]*ep2[7]+1.500000000*e[14]*ep2[5]+.5000000000*e[14]*ep2[4]+.5000000000*e[14]*ep2[3]+.5000000000*e[14]*ep2[8]; + A[31]=e[3]*e[27]*e[12]+e[3]*e[9]*e[30]+e[3]*e[29]*e[14]+e[3]*e[11]*e[32]+e[3]*e[28]*e[13]+e[3]*e[10]*e[31]+e[6]*e[27]*e[15]+e[6]*e[9]*e[33]+e[6]*e[29]*e[17]+e[6]*e[11]*e[35]+e[6]*e[28]*e[16]+e[6]*e[10]*e[34]+3.*e[0]*e[27]*e[9]+e[0]*e[29]*e[11]+e[0]*e[28]*e[10]-1.*e[9]*e[34]*e[7]-1.*e[9]*e[32]*e[5]-1.*e[9]*e[35]*e[8]+e[9]*e[29]*e[2]+e[9]*e[28]*e[1]-1.*e[9]*e[31]*e[4]+e[12]*e[0]*e[30]+e[12]*e[28]*e[4]+e[12]*e[1]*e[31]+e[12]*e[29]*e[5]+e[12]*e[2]*e[32]+e[27]*e[11]*e[2]+e[27]*e[10]*e[1]-1.*e[27]*e[13]*e[4]-1.*e[27]*e[16]*e[7]-1.*e[27]*e[14]*e[5]-1.*e[27]*e[17]*e[8]+e[30]*e[10]*e[4]+e[30]*e[1]*e[13]+e[30]*e[11]*e[5]+e[30]*e[2]*e[14]+e[15]*e[0]*e[33]+e[15]*e[28]*e[7]+e[15]*e[1]*e[34]+e[15]*e[29]*e[8]+e[15]*e[2]*e[35]-1.*e[0]*e[31]*e[13]-1.*e[0]*e[32]*e[14]-1.*e[0]*e[34]*e[16]-1.*e[0]*e[35]*e[17]+e[33]*e[10]*e[7]+e[33]*e[1]*e[16]+e[33]*e[11]*e[8]+e[33]*e[2]*e[17]; + A[141]=.5000000000*ep2[30]*e[6]+.5000000000*e[6]*ep2[27]-.5000000000*e[6]*ep2[32]-.5000000000*e[6]*ep2[28]-.5000000000*e[6]*ep2[29]-.5000000000*e[6]*ep2[31]+1.500000000*e[6]*ep2[33]+.5000000000*e[6]*ep2[34]+.5000000000*e[6]*ep2[35]+e[0]*e[27]*e[33]+e[0]*e[29]*e[35]+e[0]*e[28]*e[34]+e[3]*e[30]*e[33]+e[3]*e[32]*e[35]+e[3]*e[31]*e[34]+e[30]*e[31]*e[7]+e[30]*e[4]*e[34]+e[30]*e[32]*e[8]+e[30]*e[5]*e[35]+e[27]*e[28]*e[7]+e[27]*e[1]*e[34]+e[27]*e[29]*e[8]+e[27]*e[2]*e[35]+e[33]*e[34]*e[7]+e[33]*e[35]*e[8]-1.*e[33]*e[32]*e[5]-1.*e[33]*e[29]*e[2]-1.*e[33]*e[28]*e[1]-1.*e[33]*e[31]*e[4]; + A[30]=e[24]*e[20]*e[26]+e[21]*e[19]*e[22]-.5000000000*e[18]*ep2[22]-.5000000000*e[18]*ep2[25]+.5000000000*ep3[18]+.5000000000*e[18]*ep2[21]+e[21]*e[20]*e[23]+.5000000000*e[18]*ep2[20]+.5000000000*e[18]*ep2[19]+.5000000000*e[18]*ep2[24]+e[24]*e[19]*e[25]-.5000000000*e[18]*ep2[23]-.5000000000*e[18]*ep2[26]; + A[140]=.5000000000*e[33]*ep2[35]+.5000000000*ep3[33]+.5000000000*ep2[27]*e[33]+.5000000000*ep2[30]*e[33]-.5000000000*e[33]*ep2[29]+.5000000000*e[33]*ep2[34]-.5000000000*e[33]*ep2[32]-.5000000000*e[33]*ep2[28]+e[30]*e[32]*e[35]-.5000000000*e[33]*ep2[31]+e[27]*e[29]*e[35]+e[27]*e[28]*e[34]+e[30]*e[31]*e[34]; + A[29]=1.500000000*e[27]*ep2[18]+.5000000000*e[27]*ep2[19]+.5000000000*e[27]*ep2[20]+.5000000000*e[27]*ep2[21]+.5000000000*e[27]*ep2[24]-.5000000000*e[27]*ep2[26]-.5000000000*e[27]*ep2[23]-.5000000000*e[27]*ep2[22]-.5000000000*e[27]*ep2[25]+e[33]*e[20]*e[26]-1.*e[18]*e[35]*e[26]-1.*e[18]*e[31]*e[22]-1.*e[18]*e[32]*e[23]-1.*e[18]*e[34]*e[25]+e[18]*e[28]*e[19]+e[18]*e[29]*e[20]+e[21]*e[18]*e[30]+e[21]*e[28]*e[22]+e[21]*e[19]*e[31]+e[21]*e[29]*e[23]+e[21]*e[20]*e[32]+e[30]*e[19]*e[22]+e[30]*e[20]*e[23]+e[24]*e[18]*e[33]+e[24]*e[28]*e[25]+e[24]*e[19]*e[34]+e[24]*e[29]*e[26]+e[24]*e[20]*e[35]+e[33]*e[19]*e[25]; + A[143]=e[9]*e[27]*e[33]+e[9]*e[29]*e[35]+e[9]*e[28]*e[34]+e[33]*e[35]*e[17]+e[33]*e[34]*e[16]+e[27]*e[29]*e[17]+e[27]*e[11]*e[35]+e[27]*e[28]*e[16]+e[27]*e[10]*e[34]+e[33]*e[30]*e[12]-1.*e[33]*e[28]*e[10]-1.*e[33]*e[31]*e[13]-1.*e[33]*e[32]*e[14]-1.*e[33]*e[29]*e[11]+e[30]*e[32]*e[17]+e[30]*e[14]*e[35]+e[30]*e[31]*e[16]+e[30]*e[13]*e[34]+e[12]*e[32]*e[35]+e[12]*e[31]*e[34]+.5000000000*e[15]*ep2[27]-.5000000000*e[15]*ep2[32]-.5000000000*e[15]*ep2[28]-.5000000000*e[15]*ep2[29]-.5000000000*e[15]*ep2[31]+1.500000000*e[15]*ep2[33]+.5000000000*e[15]*ep2[30]+.5000000000*e[15]*ep2[34]+.5000000000*e[15]*ep2[35]; + A[28]=.5000000000*e[9]*ep2[12]-.5000000000*e[9]*ep2[16]+.5000000000*e[9]*ep2[10]-.5000000000*e[9]*ep2[17]-.5000000000*e[9]*ep2[13]+e[15]*e[10]*e[16]+e[12]*e[11]*e[14]+.5000000000*e[9]*ep2[11]+.5000000000*e[9]*ep2[15]-.5000000000*e[9]*ep2[14]+e[15]*e[11]*e[17]+.5000000000*ep3[9]+e[12]*e[10]*e[13]; + A[142]=e[18]*e[27]*e[33]+e[18]*e[29]*e[35]+e[18]*e[28]*e[34]+e[27]*e[28]*e[25]+e[27]*e[19]*e[34]+e[27]*e[29]*e[26]+e[27]*e[20]*e[35]+e[21]*e[30]*e[33]+e[21]*e[32]*e[35]+e[21]*e[31]*e[34]+e[30]*e[31]*e[25]+e[30]*e[22]*e[34]+e[30]*e[32]*e[26]+e[30]*e[23]*e[35]+e[33]*e[34]*e[25]+e[33]*e[35]*e[26]-1.*e[33]*e[29]*e[20]-1.*e[33]*e[31]*e[22]-1.*e[33]*e[32]*e[23]-1.*e[33]*e[28]*e[19]+.5000000000*ep2[27]*e[24]+.5000000000*ep2[30]*e[24]+1.500000000*e[24]*ep2[33]+.5000000000*e[24]*ep2[35]+.5000000000*e[24]*ep2[34]-.5000000000*e[24]*ep2[32]-.5000000000*e[24]*ep2[28]-.5000000000*e[24]*ep2[29]-.5000000000*e[24]*ep2[31]; + A[36]=.5000000000*e[9]*ep2[21]+.5000000000*e[9]*ep2[24]+.5000000000*e[9]*ep2[19]+1.500000000*e[9]*ep2[18]+.5000000000*e[9]*ep2[20]-.5000000000*e[9]*ep2[26]-.5000000000*e[9]*ep2[23]-.5000000000*e[9]*ep2[22]-.5000000000*e[9]*ep2[25]+e[21]*e[18]*e[12]+e[21]*e[20]*e[14]+e[21]*e[11]*e[23]+e[21]*e[19]*e[13]+e[21]*e[10]*e[22]+e[24]*e[18]*e[15]+e[24]*e[20]*e[17]+e[24]*e[11]*e[26]+e[24]*e[19]*e[16]+e[24]*e[10]*e[25]+e[15]*e[19]*e[25]+e[15]*e[20]*e[26]+e[12]*e[19]*e[22]+e[12]*e[20]*e[23]+e[18]*e[20]*e[11]+e[18]*e[19]*e[10]-1.*e[18]*e[23]*e[14]-1.*e[18]*e[25]*e[16]-1.*e[18]*e[26]*e[17]-1.*e[18]*e[22]*e[13]; + A[182]=.5000000000*ep2[29]*e[26]+.5000000000*ep2[32]*e[26]+.5000000000*e[26]*ep2[33]+1.500000000*e[26]*ep2[35]+.5000000000*e[26]*ep2[34]-.5000000000*e[26]*ep2[27]-.5000000000*e[26]*ep2[28]-.5000000000*e[26]*ep2[31]-.5000000000*e[26]*ep2[30]+e[20]*e[27]*e[33]+e[20]*e[29]*e[35]+e[20]*e[28]*e[34]+e[29]*e[27]*e[24]+e[29]*e[18]*e[33]+e[29]*e[28]*e[25]+e[29]*e[19]*e[34]+e[23]*e[30]*e[33]+e[23]*e[32]*e[35]+e[23]*e[31]*e[34]+e[32]*e[30]*e[24]+e[32]*e[21]*e[33]+e[32]*e[31]*e[25]+e[32]*e[22]*e[34]+e[35]*e[33]*e[24]+e[35]*e[34]*e[25]-1.*e[35]*e[27]*e[18]-1.*e[35]*e[30]*e[21]-1.*e[35]*e[31]*e[22]-1.*e[35]*e[28]*e[19]; + A[37]=e[12]*e[19]*e[31]+e[12]*e[29]*e[23]+e[12]*e[20]*e[32]+3.*e[9]*e[27]*e[18]+e[9]*e[28]*e[19]+e[9]*e[29]*e[20]+e[21]*e[9]*e[30]+e[21]*e[29]*e[14]+e[21]*e[11]*e[32]+e[21]*e[28]*e[13]+e[21]*e[10]*e[31]+e[30]*e[20]*e[14]+e[30]*e[11]*e[23]+e[30]*e[19]*e[13]+e[30]*e[10]*e[22]+e[9]*e[33]*e[24]-1.*e[9]*e[35]*e[26]-1.*e[9]*e[31]*e[22]-1.*e[9]*e[32]*e[23]-1.*e[9]*e[34]*e[25]+e[18]*e[29]*e[11]+e[18]*e[28]*e[10]+e[27]*e[20]*e[11]+e[27]*e[19]*e[10]+e[15]*e[27]*e[24]+e[15]*e[18]*e[33]+e[15]*e[28]*e[25]+e[15]*e[19]*e[34]+e[15]*e[29]*e[26]+e[15]*e[20]*e[35]-1.*e[18]*e[31]*e[13]-1.*e[18]*e[32]*e[14]-1.*e[18]*e[34]*e[16]-1.*e[18]*e[35]*e[17]-1.*e[27]*e[23]*e[14]-1.*e[27]*e[25]*e[16]-1.*e[27]*e[26]*e[17]-1.*e[27]*e[22]*e[13]+e[24]*e[29]*e[17]+e[24]*e[11]*e[35]+e[24]*e[28]*e[16]+e[24]*e[10]*e[34]+e[33]*e[20]*e[17]+e[33]*e[11]*e[26]+e[33]*e[19]*e[16]+e[33]*e[10]*e[25]+e[12]*e[27]*e[21]+e[12]*e[18]*e[30]+e[12]*e[28]*e[22]; + A[183]=-.5000000000*e[17]*ep2[27]+.5000000000*e[17]*ep2[32]-.5000000000*e[17]*ep2[28]+.5000000000*e[17]*ep2[29]-.5000000000*e[17]*ep2[31]+.5000000000*e[17]*ep2[33]-.5000000000*e[17]*ep2[30]+.5000000000*e[17]*ep2[34]+1.500000000*e[17]*ep2[35]+e[32]*e[30]*e[15]+e[32]*e[12]*e[33]+e[32]*e[31]*e[16]+e[32]*e[13]*e[34]+e[14]*e[30]*e[33]+e[14]*e[31]*e[34]+e[11]*e[27]*e[33]+e[11]*e[29]*e[35]+e[11]*e[28]*e[34]+e[35]*e[33]*e[15]+e[35]*e[34]*e[16]+e[29]*e[27]*e[15]+e[29]*e[9]*e[33]+e[29]*e[28]*e[16]+e[29]*e[10]*e[34]-1.*e[35]*e[27]*e[9]-1.*e[35]*e[30]*e[12]-1.*e[35]*e[28]*e[10]-1.*e[35]*e[31]*e[13]+e[35]*e[32]*e[14]; + A[38]=.5000000000*e[9]*ep2[1]+1.500000000*e[9]*ep2[0]+.5000000000*e[9]*ep2[2]+.5000000000*e[9]*ep2[3]+.5000000000*e[9]*ep2[6]-.5000000000*e[9]*ep2[4]-.5000000000*e[9]*ep2[5]-.5000000000*e[9]*ep2[7]-.5000000000*e[9]*ep2[8]+e[6]*e[0]*e[15]+e[6]*e[10]*e[7]+e[6]*e[1]*e[16]+e[6]*e[11]*e[8]+e[6]*e[2]*e[17]+e[15]*e[1]*e[7]+e[15]*e[2]*e[8]+e[0]*e[11]*e[2]+e[0]*e[10]*e[1]-1.*e[0]*e[13]*e[4]-1.*e[0]*e[16]*e[7]-1.*e[0]*e[14]*e[5]-1.*e[0]*e[17]*e[8]+e[3]*e[0]*e[12]+e[3]*e[10]*e[4]+e[3]*e[1]*e[13]+e[3]*e[11]*e[5]+e[3]*e[2]*e[14]+e[12]*e[1]*e[4]+e[12]*e[2]*e[5]; + A[180]=.5000000000*e[35]*ep2[33]+.5000000000*e[35]*ep2[34]-.5000000000*e[35]*ep2[27]-.5000000000*e[35]*ep2[28]-.5000000000*e[35]*ep2[31]-.5000000000*e[35]*ep2[30]+e[32]*e[31]*e[34]+.5000000000*ep2[29]*e[35]+.5000000000*ep2[32]*e[35]+e[29]*e[28]*e[34]+e[32]*e[30]*e[33]+.5000000000*ep3[35]+e[29]*e[27]*e[33]; + A[39]=.5000000000*e[0]*ep2[19]+.5000000000*e[0]*ep2[20]+.5000000000*e[0]*ep2[24]-.5000000000*e[0]*ep2[26]-.5000000000*e[0]*ep2[23]-.5000000000*e[0]*ep2[22]-.5000000000*e[0]*ep2[25]+1.500000000*ep2[18]*e[0]+.5000000000*e[0]*ep2[21]+e[18]*e[19]*e[1]+e[18]*e[20]*e[2]+e[21]*e[18]*e[3]+e[21]*e[19]*e[4]+e[21]*e[1]*e[22]+e[21]*e[20]*e[5]+e[21]*e[2]*e[23]-1.*e[18]*e[26]*e[8]-1.*e[18]*e[22]*e[4]-1.*e[18]*e[25]*e[7]-1.*e[18]*e[23]*e[5]+e[18]*e[24]*e[6]+e[3]*e[19]*e[22]+e[3]*e[20]*e[23]+e[24]*e[19]*e[7]+e[24]*e[1]*e[25]+e[24]*e[20]*e[8]+e[24]*e[2]*e[26]+e[6]*e[19]*e[25]+e[6]*e[20]*e[26]; + A[181]=.5000000000*ep2[32]*e[8]-.5000000000*e[8]*ep2[27]-.5000000000*e[8]*ep2[28]+.5000000000*e[8]*ep2[29]-.5000000000*e[8]*ep2[31]+.5000000000*e[8]*ep2[33]-.5000000000*e[8]*ep2[30]+.5000000000*e[8]*ep2[34]+1.500000000*e[8]*ep2[35]+e[2]*e[27]*e[33]+e[2]*e[29]*e[35]+e[2]*e[28]*e[34]+e[5]*e[30]*e[33]+e[5]*e[32]*e[35]+e[5]*e[31]*e[34]+e[32]*e[30]*e[6]+e[32]*e[3]*e[33]+e[32]*e[31]*e[7]+e[32]*e[4]*e[34]+e[29]*e[27]*e[6]+e[29]*e[0]*e[33]+e[29]*e[28]*e[7]+e[29]*e[1]*e[34]+e[35]*e[33]*e[6]+e[35]*e[34]*e[7]-1.*e[35]*e[27]*e[0]-1.*e[35]*e[30]*e[3]-1.*e[35]*e[28]*e[1]-1.*e[35]*e[31]*e[4]; + A[32]=-.5000000000*e[18]*ep2[4]+1.500000000*e[18]*ep2[0]+.5000000000*e[18]*ep2[6]-.5000000000*e[18]*ep2[5]+.5000000000*e[18]*ep2[1]-.5000000000*e[18]*ep2[7]+.5000000000*e[18]*ep2[3]+.5000000000*e[18]*ep2[2]-.5000000000*e[18]*ep2[8]+e[3]*e[0]*e[21]+e[3]*e[19]*e[4]+e[3]*e[1]*e[22]+e[3]*e[20]*e[5]+e[3]*e[2]*e[23]+e[21]*e[1]*e[4]+e[21]*e[2]*e[5]+e[6]*e[0]*e[24]+e[6]*e[19]*e[7]+e[6]*e[1]*e[25]+e[6]*e[20]*e[8]+e[6]*e[2]*e[26]+e[24]*e[1]*e[7]+e[24]*e[2]*e[8]+e[0]*e[19]*e[1]+e[0]*e[20]*e[2]-1.*e[0]*e[26]*e[8]-1.*e[0]*e[22]*e[4]-1.*e[0]*e[25]*e[7]-1.*e[0]*e[23]*e[5]; + A[178]=e[10]*e[1]*e[7]+e[10]*e[0]*e[6]+e[10]*e[2]*e[8]+e[4]*e[12]*e[6]+e[4]*e[3]*e[15]+e[4]*e[13]*e[7]+e[4]*e[14]*e[8]+e[4]*e[5]*e[17]+e[13]*e[3]*e[6]+e[13]*e[5]*e[8]+e[7]*e[15]*e[6]+e[7]*e[17]*e[8]-1.*e[7]*e[11]*e[2]-1.*e[7]*e[9]*e[0]-1.*e[7]*e[14]*e[5]-1.*e[7]*e[12]*e[3]+e[1]*e[9]*e[6]+e[1]*e[0]*e[15]+e[1]*e[11]*e[8]+e[1]*e[2]*e[17]+1.500000000*e[16]*ep2[7]+.5000000000*e[16]*ep2[6]+.5000000000*e[16]*ep2[8]+.5000000000*ep2[1]*e[16]-.5000000000*e[16]*ep2[0]-.5000000000*e[16]*ep2[5]-.5000000000*e[16]*ep2[3]-.5000000000*e[16]*ep2[2]+.5000000000*ep2[4]*e[16]; + A[33]=e[0]*e[30]*e[21]-1.*e[0]*e[35]*e[26]-1.*e[0]*e[31]*e[22]-1.*e[0]*e[32]*e[23]-1.*e[0]*e[34]*e[25]-1.*e[18]*e[34]*e[7]-1.*e[18]*e[32]*e[5]-1.*e[18]*e[35]*e[8]-1.*e[18]*e[31]*e[4]-1.*e[27]*e[26]*e[8]-1.*e[27]*e[22]*e[4]-1.*e[27]*e[25]*e[7]-1.*e[27]*e[23]*e[5]+e[6]*e[28]*e[25]+e[6]*e[19]*e[34]+e[6]*e[29]*e[26]+e[6]*e[20]*e[35]+e[21]*e[28]*e[4]+e[21]*e[1]*e[31]+e[21]*e[29]*e[5]+e[21]*e[2]*e[32]+e[30]*e[19]*e[4]+e[30]*e[1]*e[22]+e[30]*e[20]*e[5]+e[30]*e[2]*e[23]+e[24]*e[27]*e[6]+e[24]*e[0]*e[33]+e[24]*e[28]*e[7]+e[24]*e[1]*e[34]+e[24]*e[29]*e[8]+e[24]*e[2]*e[35]+e[33]*e[18]*e[6]+e[33]*e[19]*e[7]+e[33]*e[1]*e[25]+e[33]*e[20]*e[8]+e[33]*e[2]*e[26]+3.*e[0]*e[27]*e[18]+e[0]*e[28]*e[19]+e[0]*e[29]*e[20]+e[18]*e[28]*e[1]+e[18]*e[29]*e[2]+e[27]*e[19]*e[1]+e[27]*e[20]*e[2]+e[3]*e[27]*e[21]+e[3]*e[18]*e[30]+e[3]*e[28]*e[22]+e[3]*e[19]*e[31]+e[3]*e[29]*e[23]+e[3]*e[20]*e[32]; + A[179]=e[19]*e[18]*e[6]+e[19]*e[0]*e[24]+e[19]*e[1]*e[25]+e[19]*e[20]*e[8]+e[19]*e[2]*e[26]+e[22]*e[21]*e[6]+e[22]*e[3]*e[24]+e[22]*e[4]*e[25]+e[22]*e[23]*e[8]+e[22]*e[5]*e[26]-1.*e[25]*e[21]*e[3]+e[25]*e[26]*e[8]-1.*e[25]*e[20]*e[2]-1.*e[25]*e[18]*e[0]-1.*e[25]*e[23]*e[5]+e[25]*e[24]*e[6]+e[1]*e[18]*e[24]+e[1]*e[20]*e[26]+e[4]*e[21]*e[24]+e[4]*e[23]*e[26]+.5000000000*ep2[19]*e[7]+.5000000000*ep2[22]*e[7]+1.500000000*ep2[25]*e[7]+.5000000000*e[7]*ep2[26]-.5000000000*e[7]*ep2[18]-.5000000000*e[7]*ep2[23]-.5000000000*e[7]*ep2[20]+.5000000000*e[7]*ep2[24]-.5000000000*e[7]*ep2[21]; + A[34]=.5000000000*e[18]*ep2[11]+1.500000000*e[18]*ep2[9]+.5000000000*e[18]*ep2[10]+.5000000000*e[18]*ep2[12]+.5000000000*e[18]*ep2[15]-.5000000000*e[18]*ep2[16]-.5000000000*e[18]*ep2[17]-.5000000000*e[18]*ep2[14]-.5000000000*e[18]*ep2[13]+e[12]*e[9]*e[21]+e[12]*e[20]*e[14]+e[12]*e[11]*e[23]+e[12]*e[19]*e[13]+e[12]*e[10]*e[22]+e[21]*e[11]*e[14]+e[21]*e[10]*e[13]+e[15]*e[9]*e[24]+e[15]*e[20]*e[17]+e[15]*e[11]*e[26]+e[15]*e[19]*e[16]+e[15]*e[10]*e[25]+e[24]*e[11]*e[17]+e[24]*e[10]*e[16]-1.*e[9]*e[23]*e[14]-1.*e[9]*e[25]*e[16]-1.*e[9]*e[26]*e[17]+e[9]*e[20]*e[11]+e[9]*e[19]*e[10]-1.*e[9]*e[22]*e[13]; + A[176]=e[13]*e[21]*e[24]+e[13]*e[23]*e[26]+e[19]*e[18]*e[15]+e[19]*e[9]*e[24]+e[19]*e[20]*e[17]+e[19]*e[11]*e[26]-1.*e[25]*e[23]*e[14]-1.*e[25]*e[20]*e[11]-1.*e[25]*e[18]*e[9]-1.*e[25]*e[21]*e[12]+e[22]*e[21]*e[15]+e[22]*e[12]*e[24]+e[22]*e[23]*e[17]+e[22]*e[14]*e[26]+e[22]*e[13]*e[25]+e[25]*e[24]*e[15]+e[25]*e[26]*e[17]+e[10]*e[19]*e[25]+e[10]*e[18]*e[24]+e[10]*e[20]*e[26]-.5000000000*e[16]*ep2[18]-.5000000000*e[16]*ep2[23]+.5000000000*e[16]*ep2[19]-.5000000000*e[16]*ep2[20]-.5000000000*e[16]*ep2[21]+.5000000000*ep2[22]*e[16]+1.500000000*ep2[25]*e[16]+.5000000000*e[16]*ep2[24]+.5000000000*e[16]*ep2[26]; + A[35]=.5000000000*e[0]*ep2[12]+.5000000000*e[0]*ep2[15]+.5000000000*e[0]*ep2[11]+1.500000000*e[0]*ep2[9]+.5000000000*e[0]*ep2[10]-.5000000000*e[0]*ep2[16]-.5000000000*e[0]*ep2[17]-.5000000000*e[0]*ep2[14]-.5000000000*e[0]*ep2[13]+e[12]*e[9]*e[3]+e[12]*e[10]*e[4]+e[12]*e[1]*e[13]+e[12]*e[11]*e[5]+e[12]*e[2]*e[14]+e[15]*e[9]*e[6]+e[15]*e[10]*e[7]+e[15]*e[1]*e[16]+e[15]*e[11]*e[8]+e[15]*e[2]*e[17]+e[6]*e[11]*e[17]+e[6]*e[10]*e[16]+e[3]*e[11]*e[14]+e[3]*e[10]*e[13]+e[9]*e[10]*e[1]+e[9]*e[11]*e[2]-1.*e[9]*e[13]*e[4]-1.*e[9]*e[16]*e[7]-1.*e[9]*e[14]*e[5]-1.*e[9]*e[17]*e[8]; + A[177]=e[19]*e[11]*e[35]+e[28]*e[18]*e[15]+e[28]*e[9]*e[24]+e[28]*e[20]*e[17]+e[28]*e[11]*e[26]-1.*e[25]*e[27]*e[9]-1.*e[25]*e[30]*e[12]-1.*e[25]*e[32]*e[14]+e[25]*e[33]*e[15]+e[25]*e[35]*e[17]-1.*e[25]*e[29]*e[11]-1.*e[34]*e[23]*e[14]+e[34]*e[24]*e[15]+e[34]*e[26]*e[17]-1.*e[34]*e[20]*e[11]-1.*e[34]*e[18]*e[9]-1.*e[34]*e[21]*e[12]+e[13]*e[30]*e[24]+e[13]*e[21]*e[33]+e[13]*e[31]*e[25]+e[13]*e[22]*e[34]+e[13]*e[32]*e[26]+e[13]*e[23]*e[35]+e[10]*e[27]*e[24]+e[10]*e[18]*e[33]+e[10]*e[28]*e[25]+e[10]*e[19]*e[34]+e[10]*e[29]*e[26]+e[10]*e[20]*e[35]+e[22]*e[30]*e[15]+e[22]*e[12]*e[33]+e[22]*e[32]*e[17]+e[22]*e[14]*e[35]+e[22]*e[31]*e[16]+e[31]*e[21]*e[15]+e[31]*e[12]*e[24]+e[31]*e[23]*e[17]+e[31]*e[14]*e[26]-1.*e[16]*e[27]*e[18]+e[16]*e[33]*e[24]-1.*e[16]*e[30]*e[21]-1.*e[16]*e[29]*e[20]+e[16]*e[35]*e[26]-1.*e[16]*e[32]*e[23]+e[16]*e[28]*e[19]+3.*e[16]*e[34]*e[25]+e[19]*e[27]*e[15]+e[19]*e[9]*e[33]+e[19]*e[29]*e[17]; + A[45]=e[4]*e[27]*e[3]+e[4]*e[0]*e[30]+e[4]*e[29]*e[5]+e[4]*e[2]*e[32]+e[31]*e[0]*e[3]+e[31]*e[2]*e[5]+e[7]*e[27]*e[6]+e[7]*e[0]*e[33]+e[7]*e[29]*e[8]+e[7]*e[2]*e[35]+e[34]*e[0]*e[6]+e[34]*e[2]*e[8]+e[1]*e[27]*e[0]+e[1]*e[29]*e[2]+e[1]*e[34]*e[7]-1.*e[1]*e[32]*e[5]-1.*e[1]*e[33]*e[6]-1.*e[1]*e[30]*e[3]-1.*e[1]*e[35]*e[8]+e[1]*e[31]*e[4]+1.500000000*e[28]*ep2[1]+.5000000000*e[28]*ep2[4]+.5000000000*e[28]*ep2[0]-.5000000000*e[28]*ep2[6]-.5000000000*e[28]*ep2[5]+.5000000000*e[28]*ep2[7]-.5000000000*e[28]*ep2[3]+.5000000000*e[28]*ep2[2]-.5000000000*e[28]*ep2[8]; + A[191]=-1.*e[35]*e[10]*e[1]-1.*e[35]*e[13]*e[4]+e[35]*e[16]*e[7]+e[35]*e[15]*e[6]-1.*e[35]*e[9]*e[0]-1.*e[35]*e[12]*e[3]+e[32]*e[12]*e[6]+e[32]*e[3]*e[15]+e[32]*e[13]*e[7]+e[32]*e[4]*e[16]-1.*e[8]*e[27]*e[9]-1.*e[8]*e[30]*e[12]-1.*e[8]*e[28]*e[10]-1.*e[8]*e[31]*e[13]+e[8]*e[29]*e[11]+e[11]*e[27]*e[6]+e[11]*e[0]*e[33]+e[11]*e[28]*e[7]+e[11]*e[1]*e[34]+e[29]*e[9]*e[6]+e[29]*e[0]*e[15]+e[29]*e[10]*e[7]+e[29]*e[1]*e[16]+e[5]*e[30]*e[15]+e[5]*e[12]*e[33]+e[5]*e[32]*e[17]+e[5]*e[14]*e[35]+e[5]*e[31]*e[16]+e[5]*e[13]*e[34]+e[8]*e[33]*e[15]+3.*e[8]*e[35]*e[17]+e[8]*e[34]*e[16]+e[2]*e[27]*e[15]+e[2]*e[9]*e[33]+e[2]*e[29]*e[17]+e[2]*e[11]*e[35]+e[2]*e[28]*e[16]+e[2]*e[10]*e[34]-1.*e[17]*e[27]*e[0]+e[17]*e[34]*e[7]+e[17]*e[33]*e[6]-1.*e[17]*e[30]*e[3]-1.*e[17]*e[28]*e[1]-1.*e[17]*e[31]*e[4]+e[14]*e[30]*e[6]+e[14]*e[3]*e[33]+e[14]*e[31]*e[7]+e[14]*e[4]*e[34]+e[14]*e[32]*e[8]; + A[44]=e[19]*e[11]*e[2]+e[4]*e[18]*e[12]+e[4]*e[9]*e[21]+e[4]*e[20]*e[14]+e[4]*e[11]*e[23]+e[4]*e[19]*e[13]+e[4]*e[10]*e[22]+e[7]*e[18]*e[15]+e[7]*e[9]*e[24]+e[7]*e[20]*e[17]+e[7]*e[11]*e[26]+e[7]*e[19]*e[16]+e[7]*e[10]*e[25]+e[1]*e[18]*e[9]+e[1]*e[20]*e[11]-1.*e[10]*e[21]*e[3]-1.*e[10]*e[26]*e[8]-1.*e[10]*e[23]*e[5]-1.*e[10]*e[24]*e[6]+e[13]*e[18]*e[3]+e[13]*e[0]*e[21]+e[13]*e[1]*e[22]+e[13]*e[20]*e[5]+e[13]*e[2]*e[23]-1.*e[19]*e[15]*e[6]-1.*e[19]*e[14]*e[5]-1.*e[19]*e[12]*e[3]-1.*e[19]*e[17]*e[8]+e[22]*e[9]*e[3]+e[22]*e[0]*e[12]+e[22]*e[11]*e[5]+e[22]*e[2]*e[14]+e[16]*e[18]*e[6]+e[16]*e[0]*e[24]+e[16]*e[1]*e[25]+e[16]*e[20]*e[8]+e[16]*e[2]*e[26]-1.*e[1]*e[23]*e[14]-1.*e[1]*e[24]*e[15]-1.*e[1]*e[26]*e[17]-1.*e[1]*e[21]*e[12]+e[25]*e[9]*e[6]+e[25]*e[0]*e[15]+e[25]*e[11]*e[8]+e[25]*e[2]*e[17]+e[10]*e[18]*e[0]+3.*e[10]*e[19]*e[1]+e[10]*e[20]*e[2]+e[19]*e[9]*e[0]; + A[190]=.5000000000*ep2[23]*e[26]+.5000000000*e[26]*ep2[25]+.5000000000*ep2[20]*e[26]-.5000000000*e[26]*ep2[18]+.5000000000*ep3[26]+.5000000000*e[26]*ep2[24]+e[20]*e[19]*e[25]-.5000000000*e[26]*ep2[19]-.5000000000*e[26]*ep2[21]+e[20]*e[18]*e[24]-.5000000000*e[26]*ep2[22]+e[23]*e[21]*e[24]+e[23]*e[22]*e[25]; + A[47]=e[16]*e[9]*e[33]+e[16]*e[29]*e[17]+e[16]*e[11]*e[35]+e[16]*e[10]*e[34]+e[34]*e[11]*e[17]+e[34]*e[9]*e[15]-1.*e[10]*e[30]*e[12]-1.*e[10]*e[32]*e[14]-1.*e[10]*e[33]*e[15]-1.*e[10]*e[35]*e[17]+e[10]*e[27]*e[9]+e[10]*e[29]*e[11]+e[13]*e[27]*e[12]+e[13]*e[9]*e[30]+e[13]*e[29]*e[14]+e[13]*e[11]*e[32]+e[13]*e[10]*e[31]+e[31]*e[11]*e[14]+e[31]*e[9]*e[12]+e[16]*e[27]*e[15]+1.500000000*e[28]*ep2[10]+.5000000000*e[28]*ep2[16]+.5000000000*e[28]*ep2[9]+.5000000000*e[28]*ep2[11]-.5000000000*e[28]*ep2[12]-.5000000000*e[28]*ep2[15]-.5000000000*e[28]*ep2[17]-.5000000000*e[28]*ep2[14]+.5000000000*e[28]*ep2[13]; + A[189]=.5000000000*ep2[20]*e[35]+.5000000000*ep2[23]*e[35]+1.500000000*e[35]*ep2[26]+.5000000000*e[35]*ep2[25]+.5000000000*e[35]*ep2[24]-.5000000000*e[35]*ep2[18]-.5000000000*e[35]*ep2[19]-.5000000000*e[35]*ep2[22]-.5000000000*e[35]*ep2[21]+e[20]*e[27]*e[24]+e[20]*e[18]*e[33]+e[20]*e[28]*e[25]+e[20]*e[19]*e[34]+e[20]*e[29]*e[26]+e[29]*e[19]*e[25]+e[29]*e[18]*e[24]+e[23]*e[30]*e[24]+e[23]*e[21]*e[33]+e[23]*e[31]*e[25]+e[23]*e[22]*e[34]+e[23]*e[32]*e[26]+e[32]*e[22]*e[25]+e[32]*e[21]*e[24]+e[26]*e[33]*e[24]+e[26]*e[34]*e[25]-1.*e[26]*e[27]*e[18]-1.*e[26]*e[30]*e[21]-1.*e[26]*e[31]*e[22]-1.*e[26]*e[28]*e[19]; + A[46]=e[4]*e[2]*e[5]+.5000000000*e[1]*ep2[0]-.5000000000*e[1]*ep2[6]+e[7]*e[0]*e[6]+.5000000000*e[1]*ep2[7]+.5000000000*e[1]*ep2[4]-.5000000000*e[1]*ep2[8]+.5000000000*e[1]*ep2[2]-.5000000000*e[1]*ep2[3]+.5000000000*ep3[1]+e[7]*e[2]*e[8]-.5000000000*e[1]*ep2[5]+e[4]*e[0]*e[3]; + A[188]=-.5000000000*e[17]*ep2[13]-.5000000000*e[17]*ep2[9]+.5000000000*e[17]*ep2[16]+.5000000000*e[17]*ep2[15]+.5000000000*ep3[17]-.5000000000*e[17]*ep2[10]+e[14]*e[13]*e[16]+e[14]*e[12]*e[15]+.5000000000*ep2[14]*e[17]+e[11]*e[10]*e[16]-.5000000000*e[17]*ep2[12]+.5000000000*ep2[11]*e[17]+e[11]*e[9]*e[15]; + A[41]=e[4]*e[27]*e[30]+e[4]*e[29]*e[32]+e[4]*e[28]*e[31]+e[31]*e[27]*e[3]+e[31]*e[0]*e[30]+e[31]*e[29]*e[5]+e[31]*e[2]*e[32]+e[7]*e[27]*e[33]+e[7]*e[29]*e[35]+e[7]*e[28]*e[34]+e[28]*e[27]*e[0]+e[28]*e[29]*e[2]+e[34]*e[27]*e[6]+e[34]*e[0]*e[33]+e[34]*e[29]*e[8]+e[34]*e[2]*e[35]-1.*e[28]*e[32]*e[5]-1.*e[28]*e[33]*e[6]-1.*e[28]*e[30]*e[3]-1.*e[28]*e[35]*e[8]+.5000000000*e[1]*ep2[27]+.5000000000*e[1]*ep2[29]+1.500000000*e[1]*ep2[28]+.5000000000*e[1]*ep2[31]-.5000000000*e[1]*ep2[32]-.5000000000*e[1]*ep2[33]-.5000000000*e[1]*ep2[30]+.5000000000*e[1]*ep2[34]-.5000000000*e[1]*ep2[35]; + A[187]=.5000000000*ep2[11]*e[35]+.5000000000*e[35]*ep2[16]-.5000000000*e[35]*ep2[9]-.5000000000*e[35]*ep2[12]+.5000000000*e[35]*ep2[15]+1.500000000*e[35]*ep2[17]-.5000000000*e[35]*ep2[10]+.5000000000*e[35]*ep2[14]-.5000000000*e[35]*ep2[13]+e[11]*e[27]*e[15]+e[11]*e[9]*e[33]+e[11]*e[29]*e[17]+e[11]*e[28]*e[16]+e[11]*e[10]*e[34]+e[29]*e[9]*e[15]+e[29]*e[10]*e[16]+e[14]*e[30]*e[15]+e[14]*e[12]*e[33]+e[14]*e[32]*e[17]+e[14]*e[31]*e[16]+e[14]*e[13]*e[34]+e[32]*e[12]*e[15]+e[32]*e[13]*e[16]+e[17]*e[33]*e[15]+e[17]*e[34]*e[16]-1.*e[17]*e[27]*e[9]-1.*e[17]*e[30]*e[12]-1.*e[17]*e[28]*e[10]-1.*e[17]*e[31]*e[13]; + A[40]=e[34]*e[27]*e[33]+e[34]*e[29]*e[35]-.5000000000*e[28]*ep2[30]-.5000000000*e[28]*ep2[35]+.5000000000*ep3[28]+.5000000000*e[28]*ep2[27]+.5000000000*e[28]*ep2[29]+e[31]*e[27]*e[30]+e[31]*e[29]*e[32]-.5000000000*e[28]*ep2[32]-.5000000000*e[28]*ep2[33]+.5000000000*e[28]*ep2[31]+.5000000000*e[28]*ep2[34]; + A[186]=.5000000000*ep2[5]*e[8]+e[2]*e[0]*e[6]+.5000000000*ep2[2]*e[8]+.5000000000*ep3[8]-.5000000000*e[8]*ep2[0]+e[5]*e[4]*e[7]+e[5]*e[3]*e[6]+.5000000000*e[8]*ep2[7]+e[2]*e[1]*e[7]-.5000000000*e[8]*ep2[1]-.5000000000*e[8]*ep2[4]-.5000000000*e[8]*ep2[3]+.5000000000*e[8]*ep2[6]; + A[43]=e[28]*e[27]*e[9]+e[28]*e[29]*e[11]-1.*e[28]*e[30]*e[12]+e[28]*e[31]*e[13]-1.*e[28]*e[32]*e[14]-1.*e[28]*e[33]*e[15]-1.*e[28]*e[35]*e[17]+e[31]*e[27]*e[12]+e[31]*e[9]*e[30]+e[31]*e[29]*e[14]+e[31]*e[11]*e[32]+e[13]*e[27]*e[30]+e[13]*e[29]*e[32]+e[16]*e[27]*e[33]+e[16]*e[29]*e[35]+e[34]*e[27]*e[15]+e[34]*e[9]*e[33]+e[34]*e[29]*e[17]+e[34]*e[11]*e[35]+e[34]*e[28]*e[16]+.5000000000*e[10]*ep2[27]+.5000000000*e[10]*ep2[29]+1.500000000*e[10]*ep2[28]-.5000000000*e[10]*ep2[32]+.5000000000*e[10]*ep2[31]-.5000000000*e[10]*ep2[33]-.5000000000*e[10]*ep2[30]+.5000000000*e[10]*ep2[34]-.5000000000*e[10]*ep2[35]; + A[185]=-.5000000000*e[35]*ep2[1]+.5000000000*e[35]*ep2[7]-.5000000000*e[35]*ep2[3]+.5000000000*ep2[2]*e[35]+1.500000000*e[35]*ep2[8]-.5000000000*e[35]*ep2[4]-.5000000000*e[35]*ep2[0]+.5000000000*e[35]*ep2[6]+.5000000000*e[35]*ep2[5]+e[2]*e[27]*e[6]+e[2]*e[0]*e[33]+e[2]*e[28]*e[7]+e[2]*e[1]*e[34]+e[2]*e[29]*e[8]-1.*e[8]*e[27]*e[0]+e[8]*e[34]*e[7]+e[8]*e[32]*e[5]+e[8]*e[33]*e[6]-1.*e[8]*e[30]*e[3]-1.*e[8]*e[28]*e[1]-1.*e[8]*e[31]*e[4]+e[29]*e[1]*e[7]+e[29]*e[0]*e[6]+e[5]*e[30]*e[6]+e[5]*e[3]*e[33]+e[5]*e[31]*e[7]+e[5]*e[4]*e[34]+e[32]*e[4]*e[7]+e[32]*e[3]*e[6]; + A[42]=e[28]*e[27]*e[18]+e[28]*e[29]*e[20]+e[22]*e[27]*e[30]+e[22]*e[29]*e[32]+e[22]*e[28]*e[31]+e[31]*e[27]*e[21]+e[31]*e[18]*e[30]+e[31]*e[29]*e[23]+e[31]*e[20]*e[32]+e[25]*e[27]*e[33]+e[25]*e[29]*e[35]+e[25]*e[28]*e[34]+e[34]*e[27]*e[24]+e[34]*e[18]*e[33]+e[34]*e[29]*e[26]+e[34]*e[20]*e[35]-1.*e[28]*e[33]*e[24]-1.*e[28]*e[30]*e[21]-1.*e[28]*e[35]*e[26]-1.*e[28]*e[32]*e[23]-.5000000000*e[19]*ep2[33]-.5000000000*e[19]*ep2[30]-.5000000000*e[19]*ep2[35]+.5000000000*e[19]*ep2[27]+.5000000000*e[19]*ep2[29]+1.500000000*e[19]*ep2[28]+.5000000000*e[19]*ep2[31]+.5000000000*e[19]*ep2[34]-.5000000000*e[19]*ep2[32]; + A[184]=e[23]*e[3]*e[15]-1.*e[17]*e[19]*e[1]-1.*e[17]*e[22]*e[4]-1.*e[17]*e[18]*e[0]+e[17]*e[25]*e[7]+e[17]*e[24]*e[6]+e[14]*e[21]*e[6]+e[14]*e[3]*e[24]+e[14]*e[22]*e[7]+e[14]*e[4]*e[25]+e[14]*e[23]*e[8]-1.*e[26]*e[10]*e[1]-1.*e[26]*e[13]*e[4]+e[26]*e[16]*e[7]+e[26]*e[15]*e[6]-1.*e[26]*e[9]*e[0]-1.*e[26]*e[12]*e[3]+e[23]*e[12]*e[6]+e[11]*e[18]*e[6]+e[11]*e[0]*e[24]+e[11]*e[19]*e[7]+e[11]*e[1]*e[25]+e[11]*e[20]*e[8]+e[11]*e[2]*e[26]+e[20]*e[9]*e[6]+e[20]*e[0]*e[15]+e[20]*e[10]*e[7]+e[20]*e[1]*e[16]+e[20]*e[2]*e[17]+e[5]*e[21]*e[15]+e[5]*e[12]*e[24]+e[5]*e[23]*e[17]+e[5]*e[14]*e[26]+e[5]*e[22]*e[16]+e[5]*e[13]*e[25]+e[8]*e[24]*e[15]+3.*e[8]*e[26]*e[17]+e[8]*e[25]*e[16]+e[2]*e[18]*e[15]+e[2]*e[9]*e[24]+e[2]*e[19]*e[16]+e[2]*e[10]*e[25]-1.*e[17]*e[21]*e[3]+e[23]*e[4]*e[16]+e[23]*e[13]*e[7]-1.*e[8]*e[18]*e[9]-1.*e[8]*e[21]*e[12]-1.*e[8]*e[19]*e[10]-1.*e[8]*e[22]*e[13]; + A[54]=e[13]*e[18]*e[12]+e[13]*e[9]*e[21]+e[13]*e[20]*e[14]+e[13]*e[11]*e[23]+e[13]*e[10]*e[22]+e[22]*e[11]*e[14]+e[22]*e[9]*e[12]+e[16]*e[18]*e[15]+e[16]*e[9]*e[24]+e[16]*e[20]*e[17]+e[16]*e[11]*e[26]+e[16]*e[10]*e[25]+e[25]*e[11]*e[17]+e[25]*e[9]*e[15]-1.*e[10]*e[23]*e[14]-1.*e[10]*e[24]*e[15]-1.*e[10]*e[26]*e[17]+e[10]*e[20]*e[11]+e[10]*e[18]*e[9]-1.*e[10]*e[21]*e[12]+.5000000000*e[19]*ep2[11]+.5000000000*e[19]*ep2[9]+1.500000000*e[19]*ep2[10]+.5000000000*e[19]*ep2[13]+.5000000000*e[19]*ep2[16]-.5000000000*e[19]*ep2[12]-.5000000000*e[19]*ep2[15]-.5000000000*e[19]*ep2[17]-.5000000000*e[19]*ep2[14]; + A[164]=e[10]*e[18]*e[6]+e[10]*e[0]*e[24]+e[10]*e[19]*e[7]+e[10]*e[1]*e[25]+e[10]*e[20]*e[8]+e[10]*e[2]*e[26]+e[19]*e[9]*e[6]+e[19]*e[0]*e[15]+e[19]*e[1]*e[16]+e[19]*e[11]*e[8]+e[19]*e[2]*e[17]+e[4]*e[21]*e[15]+e[4]*e[12]*e[24]+e[4]*e[23]*e[17]+e[4]*e[14]*e[26]+e[4]*e[22]*e[16]+e[4]*e[13]*e[25]+e[7]*e[24]*e[15]+e[7]*e[26]*e[17]+3.*e[7]*e[25]*e[16]+e[1]*e[18]*e[15]+e[1]*e[9]*e[24]+e[1]*e[20]*e[17]+e[1]*e[11]*e[26]-1.*e[16]*e[21]*e[3]+e[16]*e[26]*e[8]-1.*e[16]*e[20]*e[2]-1.*e[16]*e[18]*e[0]-1.*e[16]*e[23]*e[5]+e[16]*e[24]*e[6]+e[13]*e[21]*e[6]+e[13]*e[3]*e[24]+e[13]*e[22]*e[7]+e[13]*e[23]*e[8]+e[13]*e[5]*e[26]-1.*e[25]*e[11]*e[2]+e[25]*e[15]*e[6]-1.*e[25]*e[9]*e[0]-1.*e[25]*e[14]*e[5]-1.*e[25]*e[12]*e[3]+e[25]*e[17]*e[8]+e[22]*e[12]*e[6]+e[22]*e[3]*e[15]+e[22]*e[14]*e[8]+e[22]*e[5]*e[17]-1.*e[7]*e[23]*e[14]-1.*e[7]*e[20]*e[11]-1.*e[7]*e[18]*e[9]-1.*e[7]*e[21]*e[12]; + A[55]=e[13]*e[9]*e[3]+e[13]*e[0]*e[12]+e[13]*e[10]*e[4]+e[13]*e[11]*e[5]+e[13]*e[2]*e[14]+e[16]*e[9]*e[6]+e[16]*e[0]*e[15]+e[16]*e[10]*e[7]+e[16]*e[11]*e[8]+e[16]*e[2]*e[17]+e[7]*e[11]*e[17]+e[7]*e[9]*e[15]+e[4]*e[11]*e[14]+e[4]*e[9]*e[12]+e[10]*e[9]*e[0]+e[10]*e[11]*e[2]-1.*e[10]*e[15]*e[6]-1.*e[10]*e[14]*e[5]-1.*e[10]*e[12]*e[3]-1.*e[10]*e[17]*e[8]+.5000000000*e[1]*ep2[11]+.5000000000*e[1]*ep2[9]+1.500000000*e[1]*ep2[10]-.5000000000*e[1]*ep2[12]-.5000000000*e[1]*ep2[15]-.5000000000*e[1]*ep2[17]-.5000000000*e[1]*ep2[14]+.5000000000*e[1]*ep2[13]+.5000000000*e[1]*ep2[16]; + A[165]=e[1]*e[27]*e[6]+e[1]*e[0]*e[33]+e[1]*e[28]*e[7]+e[1]*e[29]*e[8]+e[1]*e[2]*e[35]-1.*e[7]*e[27]*e[0]-1.*e[7]*e[32]*e[5]+e[7]*e[33]*e[6]-1.*e[7]*e[30]*e[3]+e[7]*e[35]*e[8]-1.*e[7]*e[29]*e[2]+e[7]*e[31]*e[4]+e[28]*e[0]*e[6]+e[28]*e[2]*e[8]+e[4]*e[30]*e[6]+e[4]*e[3]*e[33]+e[4]*e[32]*e[8]+e[4]*e[5]*e[35]+e[31]*e[3]*e[6]+e[31]*e[5]*e[8]+.5000000000*ep2[1]*e[34]+1.500000000*e[34]*ep2[7]+.5000000000*e[34]*ep2[4]-.5000000000*e[34]*ep2[0]+.5000000000*e[34]*ep2[6]-.5000000000*e[34]*ep2[5]-.5000000000*e[34]*ep2[3]-.5000000000*e[34]*ep2[2]+.5000000000*e[34]*ep2[8]; + A[52]=e[4]*e[18]*e[3]+e[4]*e[0]*e[21]+e[4]*e[1]*e[22]+e[4]*e[20]*e[5]+e[4]*e[2]*e[23]+e[22]*e[0]*e[3]+e[22]*e[2]*e[5]+e[7]*e[18]*e[6]+e[7]*e[0]*e[24]+e[7]*e[1]*e[25]+e[7]*e[20]*e[8]+e[7]*e[2]*e[26]+e[25]*e[0]*e[6]+e[25]*e[2]*e[8]+e[1]*e[18]*e[0]+e[1]*e[20]*e[2]-1.*e[1]*e[21]*e[3]-1.*e[1]*e[26]*e[8]-1.*e[1]*e[23]*e[5]-1.*e[1]*e[24]*e[6]+.5000000000*e[19]*ep2[4]+.5000000000*e[19]*ep2[0]-.5000000000*e[19]*ep2[6]-.5000000000*e[19]*ep2[5]+1.500000000*e[19]*ep2[1]+.5000000000*e[19]*ep2[7]-.5000000000*e[19]*ep2[3]+.5000000000*e[19]*ep2[2]-.5000000000*e[19]*ep2[8]; + A[166]=-.5000000000*e[7]*ep2[0]+e[4]*e[5]*e[8]+.5000000000*ep2[4]*e[7]-.5000000000*e[7]*ep2[2]+.5000000000*e[7]*ep2[8]-.5000000000*e[7]*ep2[5]+.5000000000*e[7]*ep2[6]+e[1]*e[0]*e[6]+.5000000000*ep3[7]+e[4]*e[3]*e[6]+e[1]*e[2]*e[8]-.5000000000*e[7]*ep2[3]+.5000000000*ep2[1]*e[7]; + A[53]=-1.*e[1]*e[32]*e[23]-1.*e[19]*e[32]*e[5]-1.*e[19]*e[33]*e[6]-1.*e[19]*e[30]*e[3]-1.*e[19]*e[35]*e[8]-1.*e[28]*e[21]*e[3]-1.*e[28]*e[26]*e[8]-1.*e[28]*e[23]*e[5]-1.*e[28]*e[24]*e[6]+e[7]*e[27]*e[24]+e[7]*e[18]*e[33]+e[7]*e[29]*e[26]+e[7]*e[20]*e[35]+e[22]*e[27]*e[3]+e[22]*e[0]*e[30]+e[22]*e[29]*e[5]+e[22]*e[2]*e[32]+e[31]*e[18]*e[3]+e[31]*e[0]*e[21]+e[31]*e[20]*e[5]+e[31]*e[2]*e[23]+e[25]*e[27]*e[6]+e[25]*e[0]*e[33]+e[25]*e[28]*e[7]+e[25]*e[1]*e[34]+e[25]*e[29]*e[8]+e[25]*e[2]*e[35]+e[34]*e[18]*e[6]+e[34]*e[0]*e[24]+e[34]*e[19]*e[7]+e[34]*e[20]*e[8]+e[34]*e[2]*e[26]+e[1]*e[27]*e[18]+3.*e[1]*e[28]*e[19]+e[1]*e[29]*e[20]+e[19]*e[27]*e[0]+e[19]*e[29]*e[2]+e[28]*e[18]*e[0]+e[28]*e[20]*e[2]+e[4]*e[27]*e[21]+e[4]*e[18]*e[30]+e[4]*e[28]*e[22]+e[4]*e[19]*e[31]+e[4]*e[29]*e[23]+e[4]*e[20]*e[32]-1.*e[1]*e[33]*e[24]-1.*e[1]*e[30]*e[21]-1.*e[1]*e[35]*e[26]+e[1]*e[31]*e[22]; + A[167]=e[10]*e[27]*e[15]+e[10]*e[9]*e[33]+e[10]*e[29]*e[17]+e[10]*e[11]*e[35]+e[10]*e[28]*e[16]+e[28]*e[11]*e[17]+e[28]*e[9]*e[15]+e[13]*e[30]*e[15]+e[13]*e[12]*e[33]+e[13]*e[32]*e[17]+e[13]*e[14]*e[35]+e[13]*e[31]*e[16]+e[31]*e[14]*e[17]+e[31]*e[12]*e[15]+e[16]*e[33]*e[15]+e[16]*e[35]*e[17]-1.*e[16]*e[27]*e[9]-1.*e[16]*e[30]*e[12]-1.*e[16]*e[32]*e[14]-1.*e[16]*e[29]*e[11]+.5000000000*ep2[10]*e[34]+1.500000000*e[34]*ep2[16]-.5000000000*e[34]*ep2[9]-.5000000000*e[34]*ep2[11]-.5000000000*e[34]*ep2[12]+.5000000000*e[34]*ep2[15]+.5000000000*e[34]*ep2[17]-.5000000000*e[34]*ep2[14]+.5000000000*e[34]*ep2[13]; + A[50]=.5000000000*e[19]*ep2[18]+.5000000000*e[19]*ep2[25]+.5000000000*e[19]*ep2[22]+e[25]*e[20]*e[26]-.5000000000*e[19]*ep2[21]+.5000000000*e[19]*ep2[20]-.5000000000*e[19]*ep2[26]-.5000000000*e[19]*ep2[23]-.5000000000*e[19]*ep2[24]+.5000000000*ep3[19]+e[22]*e[20]*e[23]+e[25]*e[18]*e[24]+e[22]*e[18]*e[21]; + A[160]=.5000000000*e[34]*ep2[33]+.5000000000*e[34]*ep2[35]-.5000000000*e[34]*ep2[27]-.5000000000*e[34]*ep2[32]-.5000000000*e[34]*ep2[29]-.5000000000*e[34]*ep2[30]+.5000000000*ep2[28]*e[34]+e[31]*e[30]*e[33]+e[31]*e[32]*e[35]+e[28]*e[27]*e[33]+.5000000000*ep3[34]+e[28]*e[29]*e[35]+.5000000000*ep2[31]*e[34]; + A[51]=e[4]*e[28]*e[13]+e[4]*e[10]*e[31]+e[7]*e[27]*e[15]+e[7]*e[9]*e[33]+e[7]*e[29]*e[17]+e[7]*e[11]*e[35]+e[7]*e[28]*e[16]+e[7]*e[10]*e[34]+e[1]*e[27]*e[9]+e[1]*e[29]*e[11]+3.*e[1]*e[28]*e[10]+e[10]*e[27]*e[0]-1.*e[10]*e[32]*e[5]-1.*e[10]*e[33]*e[6]-1.*e[10]*e[30]*e[3]-1.*e[10]*e[35]*e[8]+e[10]*e[29]*e[2]+e[13]*e[27]*e[3]+e[13]*e[0]*e[30]+e[13]*e[1]*e[31]+e[13]*e[29]*e[5]+e[13]*e[2]*e[32]+e[28]*e[11]*e[2]-1.*e[28]*e[15]*e[6]+e[28]*e[9]*e[0]-1.*e[28]*e[14]*e[5]-1.*e[28]*e[12]*e[3]-1.*e[28]*e[17]*e[8]+e[31]*e[9]*e[3]+e[31]*e[0]*e[12]+e[31]*e[11]*e[5]+e[31]*e[2]*e[14]+e[16]*e[27]*e[6]+e[16]*e[0]*e[33]+e[16]*e[1]*e[34]+e[16]*e[29]*e[8]+e[16]*e[2]*e[35]-1.*e[1]*e[30]*e[12]-1.*e[1]*e[32]*e[14]-1.*e[1]*e[33]*e[15]-1.*e[1]*e[35]*e[17]+e[34]*e[9]*e[6]+e[34]*e[0]*e[15]+e[34]*e[11]*e[8]+e[34]*e[2]*e[17]+e[4]*e[27]*e[12]+e[4]*e[9]*e[30]+e[4]*e[29]*e[14]+e[4]*e[11]*e[32]; + A[161]=e[4]*e[30]*e[33]+e[4]*e[32]*e[35]+e[4]*e[31]*e[34]+e[31]*e[30]*e[6]+e[31]*e[3]*e[33]+e[31]*e[32]*e[8]+e[31]*e[5]*e[35]+e[28]*e[27]*e[6]+e[28]*e[0]*e[33]+e[28]*e[29]*e[8]+e[28]*e[2]*e[35]+e[34]*e[33]*e[6]+e[34]*e[35]*e[8]-1.*e[34]*e[27]*e[0]-1.*e[34]*e[32]*e[5]-1.*e[34]*e[30]*e[3]-1.*e[34]*e[29]*e[2]+e[1]*e[27]*e[33]+e[1]*e[29]*e[35]+e[1]*e[28]*e[34]+.5000000000*ep2[31]*e[7]-.5000000000*e[7]*ep2[27]-.5000000000*e[7]*ep2[32]+.5000000000*e[7]*ep2[28]-.5000000000*e[7]*ep2[29]+.5000000000*e[7]*ep2[33]-.5000000000*e[7]*ep2[30]+1.500000000*e[7]*ep2[34]+.5000000000*e[7]*ep2[35]; + A[48]=-.5000000000*e[10]*ep2[14]-.5000000000*e[10]*ep2[17]-.5000000000*e[10]*ep2[15]+e[13]*e[11]*e[14]+e[16]*e[11]*e[17]+.5000000000*e[10]*ep2[13]+e[13]*e[9]*e[12]-.5000000000*e[10]*ep2[12]+.5000000000*ep3[10]+e[16]*e[9]*e[15]+.5000000000*e[10]*ep2[16]+.5000000000*e[10]*ep2[11]+.5000000000*e[10]*ep2[9]; + A[162]=e[22]*e[32]*e[35]+e[22]*e[31]*e[34]+e[31]*e[30]*e[24]+e[31]*e[21]*e[33]+e[31]*e[32]*e[26]+e[31]*e[23]*e[35]+e[34]*e[33]*e[24]+e[34]*e[35]*e[26]-1.*e[34]*e[27]*e[18]-1.*e[34]*e[30]*e[21]-1.*e[34]*e[29]*e[20]-1.*e[34]*e[32]*e[23]+e[19]*e[27]*e[33]+e[19]*e[29]*e[35]+e[19]*e[28]*e[34]+e[28]*e[27]*e[24]+e[28]*e[18]*e[33]+e[28]*e[29]*e[26]+e[28]*e[20]*e[35]+e[22]*e[30]*e[33]+.5000000000*ep2[28]*e[25]+.5000000000*ep2[31]*e[25]+.5000000000*e[25]*ep2[33]+.5000000000*e[25]*ep2[35]+1.500000000*e[25]*ep2[34]-.5000000000*e[25]*ep2[27]-.5000000000*e[25]*ep2[32]-.5000000000*e[25]*ep2[29]-.5000000000*e[25]*ep2[30]; + A[49]=-1.*e[19]*e[35]*e[26]-1.*e[19]*e[32]*e[23]+e[19]*e[27]*e[18]+e[19]*e[29]*e[20]+e[22]*e[27]*e[21]+e[22]*e[18]*e[30]+e[22]*e[19]*e[31]+e[22]*e[29]*e[23]+e[22]*e[20]*e[32]+e[31]*e[18]*e[21]+e[31]*e[20]*e[23]+e[25]*e[27]*e[24]+e[25]*e[18]*e[33]+e[25]*e[19]*e[34]+e[25]*e[29]*e[26]+e[25]*e[20]*e[35]+e[34]*e[18]*e[24]+e[34]*e[20]*e[26]-1.*e[19]*e[33]*e[24]-1.*e[19]*e[30]*e[21]+1.500000000*e[28]*ep2[19]+.5000000000*e[28]*ep2[18]+.5000000000*e[28]*ep2[20]+.5000000000*e[28]*ep2[22]+.5000000000*e[28]*ep2[25]-.5000000000*e[28]*ep2[26]-.5000000000*e[28]*ep2[23]-.5000000000*e[28]*ep2[24]-.5000000000*e[28]*ep2[21]; + A[163]=e[10]*e[27]*e[33]+e[10]*e[29]*e[35]+e[10]*e[28]*e[34]+e[34]*e[33]*e[15]+e[34]*e[35]*e[17]+e[28]*e[27]*e[15]+e[28]*e[9]*e[33]+e[28]*e[29]*e[17]+e[28]*e[11]*e[35]-1.*e[34]*e[27]*e[9]-1.*e[34]*e[30]*e[12]+e[34]*e[31]*e[13]-1.*e[34]*e[32]*e[14]-1.*e[34]*e[29]*e[11]+e[31]*e[30]*e[15]+e[31]*e[12]*e[33]+e[31]*e[32]*e[17]+e[31]*e[14]*e[35]+e[13]*e[30]*e[33]+e[13]*e[32]*e[35]-.5000000000*e[16]*ep2[27]-.5000000000*e[16]*ep2[32]+.5000000000*e[16]*ep2[28]-.5000000000*e[16]*ep2[29]+.5000000000*e[16]*ep2[31]+.5000000000*e[16]*ep2[33]-.5000000000*e[16]*ep2[30]+1.500000000*e[16]*ep2[34]+.5000000000*e[16]*ep2[35]; + A[63]=e[29]*e[32]*e[14]-1.*e[29]*e[33]*e[15]-1.*e[29]*e[34]*e[16]+e[32]*e[27]*e[12]+e[32]*e[9]*e[30]+e[32]*e[28]*e[13]+e[32]*e[10]*e[31]+e[14]*e[27]*e[30]+e[14]*e[28]*e[31]+e[17]*e[27]*e[33]+e[17]*e[28]*e[34]+e[35]*e[27]*e[15]+e[35]*e[9]*e[33]+e[35]*e[29]*e[17]+e[35]*e[28]*e[16]+e[35]*e[10]*e[34]+e[29]*e[27]*e[9]+e[29]*e[28]*e[10]-1.*e[29]*e[30]*e[12]-1.*e[29]*e[31]*e[13]+.5000000000*e[11]*ep2[27]+1.500000000*e[11]*ep2[29]+.5000000000*e[11]*ep2[28]+.5000000000*e[11]*ep2[32]-.5000000000*e[11]*ep2[31]-.5000000000*e[11]*ep2[33]-.5000000000*e[11]*ep2[30]-.5000000000*e[11]*ep2[34]+.5000000000*e[11]*ep2[35]; + A[173]=e[1]*e[20]*e[35]+e[19]*e[27]*e[6]+e[19]*e[0]*e[33]+e[19]*e[28]*e[7]+e[19]*e[29]*e[8]+e[19]*e[2]*e[35]+e[28]*e[18]*e[6]+e[28]*e[0]*e[24]+e[28]*e[20]*e[8]+e[28]*e[2]*e[26]+e[4]*e[30]*e[24]+e[4]*e[21]*e[33]+e[4]*e[31]*e[25]+e[4]*e[22]*e[34]+e[4]*e[32]*e[26]+e[4]*e[23]*e[35]-1.*e[7]*e[27]*e[18]+e[7]*e[33]*e[24]-1.*e[7]*e[30]*e[21]-1.*e[7]*e[29]*e[20]+e[7]*e[35]*e[26]+e[7]*e[31]*e[22]-1.*e[7]*e[32]*e[23]-1.*e[25]*e[27]*e[0]-1.*e[25]*e[32]*e[5]-1.*e[25]*e[30]*e[3]-1.*e[25]*e[29]*e[2]-1.*e[34]*e[21]*e[3]-1.*e[34]*e[20]*e[2]-1.*e[34]*e[18]*e[0]-1.*e[34]*e[23]*e[5]+e[22]*e[30]*e[6]+e[22]*e[3]*e[33]+e[22]*e[32]*e[8]+e[22]*e[5]*e[35]+e[31]*e[21]*e[6]+e[31]*e[3]*e[24]+e[31]*e[23]*e[8]+e[31]*e[5]*e[26]+e[34]*e[26]*e[8]+e[1]*e[27]*e[24]+e[1]*e[18]*e[33]+e[1]*e[28]*e[25]+e[1]*e[19]*e[34]+e[1]*e[29]*e[26]+e[34]*e[24]*e[6]+e[25]*e[33]*e[6]+3.*e[25]*e[34]*e[7]+e[25]*e[35]*e[8]; + A[62]=.5000000000*e[20]*ep2[27]+1.500000000*e[20]*ep2[29]+.5000000000*e[20]*ep2[28]+.5000000000*e[20]*ep2[32]+.5000000000*e[20]*ep2[35]-.5000000000*e[20]*ep2[31]-.5000000000*e[20]*ep2[33]-.5000000000*e[20]*ep2[30]-.5000000000*e[20]*ep2[34]+e[29]*e[27]*e[18]+e[29]*e[28]*e[19]+e[23]*e[27]*e[30]+e[23]*e[29]*e[32]+e[23]*e[28]*e[31]+e[32]*e[27]*e[21]+e[32]*e[18]*e[30]+e[32]*e[28]*e[22]+e[32]*e[19]*e[31]+e[26]*e[27]*e[33]+e[26]*e[29]*e[35]+e[26]*e[28]*e[34]+e[35]*e[27]*e[24]+e[35]*e[18]*e[33]+e[35]*e[28]*e[25]+e[35]*e[19]*e[34]-1.*e[29]*e[33]*e[24]-1.*e[29]*e[30]*e[21]-1.*e[29]*e[31]*e[22]-1.*e[29]*e[34]*e[25]; + A[172]=e[19]*e[1]*e[7]+e[19]*e[0]*e[6]+e[19]*e[2]*e[8]+e[4]*e[21]*e[6]+e[4]*e[3]*e[24]+e[4]*e[22]*e[7]+e[4]*e[23]*e[8]+e[4]*e[5]*e[26]+e[22]*e[3]*e[6]+e[22]*e[5]*e[8]+e[7]*e[24]*e[6]+e[7]*e[26]*e[8]+e[1]*e[18]*e[6]+e[1]*e[0]*e[24]+e[1]*e[20]*e[8]+e[1]*e[2]*e[26]-1.*e[7]*e[21]*e[3]-1.*e[7]*e[20]*e[2]-1.*e[7]*e[18]*e[0]-1.*e[7]*e[23]*e[5]+.5000000000*e[25]*ep2[4]-.5000000000*e[25]*ep2[0]+.5000000000*e[25]*ep2[6]-.5000000000*e[25]*ep2[5]+.5000000000*e[25]*ep2[1]+1.500000000*e[25]*ep2[7]-.5000000000*e[25]*ep2[3]-.5000000000*e[25]*ep2[2]+.5000000000*e[25]*ep2[8]; + A[61]=e[5]*e[27]*e[30]+e[5]*e[29]*e[32]+e[5]*e[28]*e[31]+e[32]*e[27]*e[3]+e[32]*e[0]*e[30]+e[32]*e[28]*e[4]+e[32]*e[1]*e[31]+e[8]*e[27]*e[33]+e[8]*e[29]*e[35]+e[8]*e[28]*e[34]+e[29]*e[27]*e[0]+e[29]*e[28]*e[1]+e[35]*e[27]*e[6]+e[35]*e[0]*e[33]+e[35]*e[28]*e[7]+e[35]*e[1]*e[34]-1.*e[29]*e[34]*e[7]-1.*e[29]*e[33]*e[6]-1.*e[29]*e[30]*e[3]-1.*e[29]*e[31]*e[4]+.5000000000*e[2]*ep2[27]+1.500000000*e[2]*ep2[29]+.5000000000*e[2]*ep2[28]+.5000000000*e[2]*ep2[32]-.5000000000*e[2]*ep2[31]-.5000000000*e[2]*ep2[33]-.5000000000*e[2]*ep2[30]-.5000000000*e[2]*ep2[34]+.5000000000*e[2]*ep2[35]; + A[175]=e[13]*e[12]*e[6]+e[13]*e[3]*e[15]+e[13]*e[4]*e[16]+e[13]*e[14]*e[8]+e[13]*e[5]*e[17]+e[16]*e[15]*e[6]+e[16]*e[17]*e[8]+e[1]*e[11]*e[17]+e[1]*e[9]*e[15]+e[1]*e[10]*e[16]+e[4]*e[14]*e[17]+e[4]*e[12]*e[15]+e[10]*e[9]*e[6]+e[10]*e[0]*e[15]+e[10]*e[11]*e[8]+e[10]*e[2]*e[17]-1.*e[16]*e[11]*e[2]-1.*e[16]*e[9]*e[0]-1.*e[16]*e[14]*e[5]-1.*e[16]*e[12]*e[3]+.5000000000*ep2[13]*e[7]+1.500000000*ep2[16]*e[7]+.5000000000*e[7]*ep2[17]+.5000000000*e[7]*ep2[15]-.5000000000*e[7]*ep2[9]-.5000000000*e[7]*ep2[11]-.5000000000*e[7]*ep2[12]+.5000000000*e[7]*ep2[10]-.5000000000*e[7]*ep2[14]; + A[60]=.5000000000*e[29]*ep2[32]+.5000000000*e[29]*ep2[35]-.5000000000*e[29]*ep2[31]-.5000000000*e[29]*ep2[33]-.5000000000*e[29]*ep2[30]-.5000000000*e[29]*ep2[34]+e[32]*e[27]*e[30]+.5000000000*ep3[29]+.5000000000*e[29]*ep2[28]+e[35]*e[28]*e[34]+.5000000000*e[29]*ep2[27]+e[35]*e[27]*e[33]+e[32]*e[28]*e[31]; + A[174]=-1.*e[16]*e[21]*e[12]+e[10]*e[18]*e[15]+e[10]*e[9]*e[24]+e[10]*e[20]*e[17]+e[10]*e[11]*e[26]+e[19]*e[11]*e[17]+e[19]*e[9]*e[15]+e[19]*e[10]*e[16]+e[13]*e[21]*e[15]+e[13]*e[12]*e[24]+e[13]*e[23]*e[17]+e[13]*e[14]*e[26]+e[13]*e[22]*e[16]+e[22]*e[14]*e[17]+e[22]*e[12]*e[15]+e[16]*e[24]*e[15]+e[16]*e[26]*e[17]-1.*e[16]*e[23]*e[14]-1.*e[16]*e[20]*e[11]-1.*e[16]*e[18]*e[9]+.5000000000*ep2[13]*e[25]+1.500000000*e[25]*ep2[16]+.5000000000*e[25]*ep2[17]+.5000000000*e[25]*ep2[15]+.5000000000*ep2[10]*e[25]-.5000000000*e[25]*ep2[9]-.5000000000*e[25]*ep2[11]-.5000000000*e[25]*ep2[12]-.5000000000*e[25]*ep2[14]; + A[59]=e[19]*e[20]*e[2]+e[22]*e[18]*e[3]+e[22]*e[0]*e[21]+e[22]*e[19]*e[4]+e[22]*e[20]*e[5]+e[22]*e[2]*e[23]-1.*e[19]*e[21]*e[3]-1.*e[19]*e[26]*e[8]+e[19]*e[25]*e[7]-1.*e[19]*e[23]*e[5]-1.*e[19]*e[24]*e[6]+e[4]*e[18]*e[21]+e[4]*e[20]*e[23]+e[25]*e[18]*e[6]+e[25]*e[0]*e[24]+e[25]*e[20]*e[8]+e[25]*e[2]*e[26]+e[7]*e[18]*e[24]+e[7]*e[20]*e[26]+e[19]*e[18]*e[0]+1.500000000*ep2[19]*e[1]+.5000000000*e[1]*ep2[22]+.5000000000*e[1]*ep2[18]+.5000000000*e[1]*ep2[20]+.5000000000*e[1]*ep2[25]-.5000000000*e[1]*ep2[26]-.5000000000*e[1]*ep2[23]-.5000000000*e[1]*ep2[24]-.5000000000*e[1]*ep2[21]; + A[169]=e[19]*e[27]*e[24]+e[19]*e[18]*e[33]+e[19]*e[28]*e[25]+e[19]*e[29]*e[26]+e[19]*e[20]*e[35]+e[28]*e[18]*e[24]+e[28]*e[20]*e[26]+e[22]*e[30]*e[24]+e[22]*e[21]*e[33]+e[22]*e[31]*e[25]+e[22]*e[32]*e[26]+e[22]*e[23]*e[35]+e[31]*e[21]*e[24]+e[31]*e[23]*e[26]+e[25]*e[33]*e[24]+e[25]*e[35]*e[26]-1.*e[25]*e[27]*e[18]-1.*e[25]*e[30]*e[21]-1.*e[25]*e[29]*e[20]-1.*e[25]*e[32]*e[23]-.5000000000*e[34]*ep2[18]-.5000000000*e[34]*ep2[23]-.5000000000*e[34]*ep2[20]-.5000000000*e[34]*ep2[21]+.5000000000*ep2[19]*e[34]+.5000000000*ep2[22]*e[34]+1.500000000*e[34]*ep2[25]+.5000000000*e[34]*ep2[24]+.5000000000*e[34]*ep2[26]; + A[58]=e[16]*e[0]*e[6]+e[16]*e[2]*e[8]+e[1]*e[11]*e[2]-1.*e[1]*e[15]*e[6]+e[1]*e[9]*e[0]-1.*e[1]*e[14]*e[5]-1.*e[1]*e[12]*e[3]-1.*e[1]*e[17]*e[8]+e[4]*e[9]*e[3]+e[4]*e[0]*e[12]+e[4]*e[1]*e[13]+e[4]*e[11]*e[5]+e[4]*e[2]*e[14]+e[13]*e[0]*e[3]+e[13]*e[2]*e[5]+e[7]*e[9]*e[6]+e[7]*e[0]*e[15]+e[7]*e[1]*e[16]+e[7]*e[11]*e[8]+e[7]*e[2]*e[17]-.5000000000*e[10]*ep2[6]-.5000000000*e[10]*ep2[5]-.5000000000*e[10]*ep2[3]-.5000000000*e[10]*ep2[8]+1.500000000*e[10]*ep2[1]+.5000000000*e[10]*ep2[0]+.5000000000*e[10]*ep2[2]+.5000000000*e[10]*ep2[4]+.5000000000*e[10]*ep2[7]; + A[168]=e[13]*e[14]*e[17]+e[13]*e[12]*e[15]+e[10]*e[9]*e[15]+.5000000000*e[16]*ep2[15]-.5000000000*e[16]*ep2[11]-.5000000000*e[16]*ep2[12]-.5000000000*e[16]*ep2[14]+e[10]*e[11]*e[17]+.5000000000*ep2[10]*e[16]+.5000000000*ep3[16]-.5000000000*e[16]*ep2[9]+.5000000000*e[16]*ep2[17]+.5000000000*ep2[13]*e[16]; + A[57]=e[10]*e[29]*e[20]+e[22]*e[27]*e[12]+e[22]*e[9]*e[30]+e[22]*e[29]*e[14]+e[22]*e[11]*e[32]+e[22]*e[10]*e[31]+e[31]*e[18]*e[12]+e[31]*e[9]*e[21]+e[31]*e[20]*e[14]+e[31]*e[11]*e[23]-1.*e[10]*e[33]*e[24]-1.*e[10]*e[30]*e[21]-1.*e[10]*e[35]*e[26]-1.*e[10]*e[32]*e[23]+e[10]*e[34]*e[25]+e[19]*e[27]*e[9]+e[19]*e[29]*e[11]+e[28]*e[18]*e[9]+e[28]*e[20]*e[11]+e[16]*e[27]*e[24]+e[16]*e[18]*e[33]+e[16]*e[28]*e[25]+e[16]*e[19]*e[34]+e[16]*e[29]*e[26]+e[16]*e[20]*e[35]-1.*e[19]*e[30]*e[12]-1.*e[19]*e[32]*e[14]-1.*e[19]*e[33]*e[15]-1.*e[19]*e[35]*e[17]-1.*e[28]*e[23]*e[14]-1.*e[28]*e[24]*e[15]-1.*e[28]*e[26]*e[17]-1.*e[28]*e[21]*e[12]+e[25]*e[27]*e[15]+e[25]*e[9]*e[33]+e[25]*e[29]*e[17]+e[25]*e[11]*e[35]+e[34]*e[18]*e[15]+e[34]*e[9]*e[24]+e[34]*e[20]*e[17]+e[34]*e[11]*e[26]+e[13]*e[27]*e[21]+e[13]*e[18]*e[30]+e[13]*e[28]*e[22]+e[13]*e[19]*e[31]+e[13]*e[29]*e[23]+e[13]*e[20]*e[32]+e[10]*e[27]*e[18]+3.*e[10]*e[28]*e[19]; + A[171]=e[4]*e[30]*e[15]+e[4]*e[12]*e[33]+e[4]*e[32]*e[17]+e[4]*e[14]*e[35]+e[4]*e[31]*e[16]+e[4]*e[13]*e[34]+e[7]*e[33]*e[15]+e[7]*e[35]*e[17]+3.*e[7]*e[34]*e[16]+e[1]*e[27]*e[15]+e[1]*e[9]*e[33]+e[1]*e[29]*e[17]+e[1]*e[11]*e[35]+e[1]*e[28]*e[16]+e[1]*e[10]*e[34]-1.*e[16]*e[27]*e[0]-1.*e[16]*e[32]*e[5]+e[16]*e[33]*e[6]-1.*e[16]*e[30]*e[3]+e[16]*e[35]*e[8]-1.*e[16]*e[29]*e[2]+e[13]*e[30]*e[6]+e[13]*e[3]*e[33]+e[13]*e[31]*e[7]+e[13]*e[32]*e[8]+e[13]*e[5]*e[35]-1.*e[34]*e[11]*e[2]+e[34]*e[15]*e[6]-1.*e[34]*e[9]*e[0]-1.*e[34]*e[14]*e[5]-1.*e[34]*e[12]*e[3]+e[34]*e[17]*e[8]+e[31]*e[12]*e[6]+e[31]*e[3]*e[15]+e[31]*e[14]*e[8]+e[31]*e[5]*e[17]-1.*e[7]*e[27]*e[9]-1.*e[7]*e[30]*e[12]+e[7]*e[28]*e[10]-1.*e[7]*e[32]*e[14]+e[10]*e[27]*e[6]+e[10]*e[0]*e[33]+e[10]*e[29]*e[8]+e[10]*e[2]*e[35]+e[28]*e[9]*e[6]+e[28]*e[0]*e[15]+e[28]*e[11]*e[8]+e[28]*e[2]*e[17]-1.*e[7]*e[29]*e[11]; + A[56]=e[22]*e[18]*e[12]+e[22]*e[9]*e[21]+e[22]*e[20]*e[14]+e[22]*e[11]*e[23]+e[22]*e[19]*e[13]+e[25]*e[18]*e[15]+e[25]*e[9]*e[24]+e[25]*e[20]*e[17]+e[25]*e[11]*e[26]+e[25]*e[19]*e[16]+e[16]*e[18]*e[24]+e[16]*e[20]*e[26]+e[13]*e[18]*e[21]+e[13]*e[20]*e[23]+e[19]*e[18]*e[9]+e[19]*e[20]*e[11]-1.*e[19]*e[23]*e[14]-1.*e[19]*e[24]*e[15]-1.*e[19]*e[26]*e[17]-1.*e[19]*e[21]*e[12]+.5000000000*e[10]*ep2[22]+.5000000000*e[10]*ep2[25]+1.500000000*e[10]*ep2[19]+.5000000000*e[10]*ep2[18]+.5000000000*e[10]*ep2[20]-.5000000000*e[10]*ep2[26]-.5000000000*e[10]*ep2[23]-.5000000000*e[10]*ep2[24]-.5000000000*e[10]*ep2[21]; + A[170]=e[19]*e[20]*e[26]-.5000000000*e[25]*ep2[20]+e[22]*e[21]*e[24]+e[19]*e[18]*e[24]+.5000000000*ep2[22]*e[25]-.5000000000*e[25]*ep2[21]-.5000000000*e[25]*ep2[23]+.5000000000*ep2[19]*e[25]-.5000000000*e[25]*ep2[18]+.5000000000*e[25]*ep2[24]+.5000000000*e[25]*ep2[26]+.5000000000*ep3[25]+e[22]*e[23]*e[26]; + A[73]=-1.*e[20]*e[33]*e[6]-1.*e[20]*e[30]*e[3]-1.*e[20]*e[31]*e[4]-1.*e[29]*e[21]*e[3]-1.*e[29]*e[22]*e[4]-1.*e[29]*e[25]*e[7]-1.*e[29]*e[24]*e[6]+e[8]*e[27]*e[24]+e[8]*e[18]*e[33]+e[8]*e[28]*e[25]+e[8]*e[19]*e[34]+e[23]*e[27]*e[3]+e[23]*e[0]*e[30]+e[23]*e[28]*e[4]+e[23]*e[1]*e[31]+e[32]*e[18]*e[3]+e[32]*e[0]*e[21]+e[32]*e[19]*e[4]+e[32]*e[1]*e[22]+e[26]*e[27]*e[6]+e[26]*e[0]*e[33]+e[26]*e[28]*e[7]+e[26]*e[1]*e[34]+e[26]*e[29]*e[8]+e[26]*e[2]*e[35]+e[35]*e[18]*e[6]+e[35]*e[0]*e[24]+e[35]*e[19]*e[7]+e[35]*e[1]*e[25]+e[35]*e[20]*e[8]+e[2]*e[27]*e[18]+e[2]*e[28]*e[19]+3.*e[2]*e[29]*e[20]+e[20]*e[27]*e[0]+e[20]*e[28]*e[1]+e[29]*e[18]*e[0]+e[29]*e[19]*e[1]+e[5]*e[27]*e[21]+e[5]*e[18]*e[30]+e[5]*e[28]*e[22]+e[5]*e[19]*e[31]+e[5]*e[29]*e[23]+e[5]*e[20]*e[32]-1.*e[2]*e[33]*e[24]-1.*e[2]*e[30]*e[21]-1.*e[2]*e[31]*e[22]+e[2]*e[32]*e[23]-1.*e[2]*e[34]*e[25]-1.*e[20]*e[34]*e[7]; + A[72]=e[5]*e[18]*e[3]+e[5]*e[0]*e[21]+e[5]*e[19]*e[4]+e[5]*e[1]*e[22]+e[5]*e[2]*e[23]+e[23]*e[1]*e[4]+e[23]*e[0]*e[3]+e[8]*e[18]*e[6]+e[8]*e[0]*e[24]+e[8]*e[19]*e[7]+e[8]*e[1]*e[25]+e[8]*e[2]*e[26]+e[26]*e[1]*e[7]+e[26]*e[0]*e[6]+e[2]*e[18]*e[0]+e[2]*e[19]*e[1]-1.*e[2]*e[21]*e[3]-1.*e[2]*e[22]*e[4]-1.*e[2]*e[25]*e[7]-1.*e[2]*e[24]*e[6]-.5000000000*e[20]*ep2[4]+.5000000000*e[20]*ep2[0]-.5000000000*e[20]*ep2[6]+.5000000000*e[20]*ep2[5]+.5000000000*e[20]*ep2[1]-.5000000000*e[20]*ep2[7]-.5000000000*e[20]*ep2[3]+1.500000000*e[20]*ep2[2]+.5000000000*e[20]*ep2[8]; + A[75]=e[14]*e[9]*e[3]+e[14]*e[0]*e[12]+e[14]*e[10]*e[4]+e[14]*e[1]*e[13]+e[14]*e[11]*e[5]+e[17]*e[9]*e[6]+e[17]*e[0]*e[15]+e[17]*e[10]*e[7]+e[17]*e[1]*e[16]+e[17]*e[11]*e[8]+e[8]*e[9]*e[15]+e[8]*e[10]*e[16]+e[5]*e[9]*e[12]+e[5]*e[10]*e[13]+e[11]*e[9]*e[0]+e[11]*e[10]*e[1]-1.*e[11]*e[13]*e[4]-1.*e[11]*e[16]*e[7]-1.*e[11]*e[15]*e[6]-1.*e[11]*e[12]*e[3]+.5000000000*e[2]*ep2[14]+.5000000000*e[2]*ep2[17]+1.500000000*e[2]*ep2[11]+.5000000000*e[2]*ep2[9]+.5000000000*e[2]*ep2[10]-.5000000000*e[2]*ep2[16]-.5000000000*e[2]*ep2[12]-.5000000000*e[2]*ep2[15]-.5000000000*e[2]*ep2[13]; + A[74]=e[14]*e[18]*e[12]+e[14]*e[9]*e[21]+e[14]*e[11]*e[23]+e[14]*e[19]*e[13]+e[14]*e[10]*e[22]+e[23]*e[9]*e[12]+e[23]*e[10]*e[13]+e[17]*e[18]*e[15]+e[17]*e[9]*e[24]+e[17]*e[11]*e[26]+e[17]*e[19]*e[16]+e[17]*e[10]*e[25]+e[26]*e[9]*e[15]+e[26]*e[10]*e[16]-1.*e[11]*e[24]*e[15]-1.*e[11]*e[25]*e[16]+e[11]*e[18]*e[9]-1.*e[11]*e[21]*e[12]+e[11]*e[19]*e[10]-1.*e[11]*e[22]*e[13]+1.500000000*e[20]*ep2[11]+.5000000000*e[20]*ep2[9]+.5000000000*e[20]*ep2[10]+.5000000000*e[20]*ep2[14]+.5000000000*e[20]*ep2[17]-.5000000000*e[20]*ep2[16]-.5000000000*e[20]*ep2[12]-.5000000000*e[20]*ep2[15]-.5000000000*e[20]*ep2[13]; + A[77]=e[23]*e[10]*e[31]+e[32]*e[18]*e[12]+e[32]*e[9]*e[21]+e[32]*e[19]*e[13]+e[32]*e[10]*e[22]-1.*e[11]*e[33]*e[24]-1.*e[11]*e[30]*e[21]+e[11]*e[35]*e[26]-1.*e[11]*e[31]*e[22]-1.*e[11]*e[34]*e[25]+e[20]*e[27]*e[9]+e[20]*e[28]*e[10]+e[29]*e[18]*e[9]+e[29]*e[19]*e[10]+e[17]*e[27]*e[24]+e[17]*e[18]*e[33]+e[17]*e[28]*e[25]+e[17]*e[19]*e[34]+e[17]*e[29]*e[26]+e[17]*e[20]*e[35]-1.*e[20]*e[30]*e[12]-1.*e[20]*e[31]*e[13]-1.*e[20]*e[33]*e[15]-1.*e[20]*e[34]*e[16]-1.*e[29]*e[24]*e[15]-1.*e[29]*e[25]*e[16]-1.*e[29]*e[21]*e[12]-1.*e[29]*e[22]*e[13]+e[26]*e[27]*e[15]+e[26]*e[9]*e[33]+e[26]*e[28]*e[16]+e[26]*e[10]*e[34]+e[35]*e[18]*e[15]+e[35]*e[9]*e[24]+e[35]*e[19]*e[16]+e[35]*e[10]*e[25]+e[14]*e[27]*e[21]+e[14]*e[18]*e[30]+e[14]*e[28]*e[22]+e[14]*e[19]*e[31]+e[14]*e[29]*e[23]+e[14]*e[20]*e[32]+e[11]*e[27]*e[18]+e[11]*e[28]*e[19]+3.*e[11]*e[29]*e[20]+e[23]*e[27]*e[12]+e[23]*e[9]*e[30]+e[23]*e[11]*e[32]+e[23]*e[28]*e[13]; + A[76]=e[23]*e[18]*e[12]+e[23]*e[9]*e[21]+e[23]*e[20]*e[14]+e[23]*e[19]*e[13]+e[23]*e[10]*e[22]+e[26]*e[18]*e[15]+e[26]*e[9]*e[24]+e[26]*e[20]*e[17]+e[26]*e[19]*e[16]+e[26]*e[10]*e[25]+e[17]*e[19]*e[25]+e[17]*e[18]*e[24]+e[14]*e[19]*e[22]+e[14]*e[18]*e[21]+e[20]*e[18]*e[9]+e[20]*e[19]*e[10]-1.*e[20]*e[24]*e[15]-1.*e[20]*e[25]*e[16]-1.*e[20]*e[21]*e[12]-1.*e[20]*e[22]*e[13]+.5000000000*e[11]*ep2[23]+.5000000000*e[11]*ep2[26]+.5000000000*e[11]*ep2[19]+.5000000000*e[11]*ep2[18]+1.500000000*e[11]*ep2[20]-.5000000000*e[11]*ep2[22]-.5000000000*e[11]*ep2[24]-.5000000000*e[11]*ep2[21]-.5000000000*e[11]*ep2[25]; + A[79]=-1.*e[20]*e[21]*e[3]+e[20]*e[26]*e[8]-1.*e[20]*e[22]*e[4]-1.*e[20]*e[25]*e[7]-1.*e[20]*e[24]*e[6]+e[5]*e[19]*e[22]+e[5]*e[18]*e[21]+e[26]*e[18]*e[6]+e[26]*e[0]*e[24]+e[26]*e[19]*e[7]+e[26]*e[1]*e[25]+e[8]*e[19]*e[25]+e[8]*e[18]*e[24]+e[20]*e[18]*e[0]+e[20]*e[19]*e[1]+e[23]*e[18]*e[3]+e[23]*e[0]*e[21]+e[23]*e[19]*e[4]+e[23]*e[1]*e[22]+e[23]*e[20]*e[5]+1.500000000*ep2[20]*e[2]+.5000000000*e[2]*ep2[23]+.5000000000*e[2]*ep2[19]+.5000000000*e[2]*ep2[18]+.5000000000*e[2]*ep2[26]-.5000000000*e[2]*ep2[22]-.5000000000*e[2]*ep2[24]-.5000000000*e[2]*ep2[21]-.5000000000*e[2]*ep2[25]; + A[78]=-1.*e[2]*e[15]*e[6]+e[2]*e[9]*e[0]-1.*e[2]*e[12]*e[3]+e[5]*e[9]*e[3]+e[5]*e[0]*e[12]+e[5]*e[10]*e[4]+e[5]*e[1]*e[13]+e[5]*e[2]*e[14]+e[14]*e[1]*e[4]+e[14]*e[0]*e[3]+e[8]*e[9]*e[6]+e[8]*e[0]*e[15]+e[8]*e[10]*e[7]+e[8]*e[1]*e[16]+e[8]*e[2]*e[17]+e[17]*e[1]*e[7]+e[17]*e[0]*e[6]+e[2]*e[10]*e[1]-1.*e[2]*e[13]*e[4]-1.*e[2]*e[16]*e[7]+.5000000000*e[11]*ep2[1]+.5000000000*e[11]*ep2[0]+1.500000000*e[11]*ep2[2]+.5000000000*e[11]*ep2[5]+.5000000000*e[11]*ep2[8]-.5000000000*e[11]*ep2[4]-.5000000000*e[11]*ep2[6]-.5000000000*e[11]*ep2[7]-.5000000000*e[11]*ep2[3]; + A[64]=e[5]*e[19]*e[13]+e[5]*e[10]*e[22]+e[8]*e[18]*e[15]+e[8]*e[9]*e[24]+e[8]*e[20]*e[17]+e[8]*e[11]*e[26]+e[8]*e[19]*e[16]+e[8]*e[10]*e[25]+e[2]*e[18]*e[9]+e[2]*e[19]*e[10]-1.*e[11]*e[21]*e[3]-1.*e[11]*e[22]*e[4]-1.*e[11]*e[25]*e[7]-1.*e[11]*e[24]*e[6]+e[14]*e[18]*e[3]+e[14]*e[0]*e[21]+e[14]*e[19]*e[4]+e[14]*e[1]*e[22]+e[14]*e[2]*e[23]-1.*e[20]*e[13]*e[4]-1.*e[20]*e[16]*e[7]-1.*e[20]*e[15]*e[6]-1.*e[20]*e[12]*e[3]+e[23]*e[9]*e[3]+e[23]*e[0]*e[12]+e[23]*e[10]*e[4]+e[23]*e[1]*e[13]+e[17]*e[18]*e[6]+e[17]*e[0]*e[24]+e[17]*e[19]*e[7]+e[17]*e[1]*e[25]+e[17]*e[2]*e[26]-1.*e[2]*e[24]*e[15]-1.*e[2]*e[25]*e[16]-1.*e[2]*e[21]*e[12]-1.*e[2]*e[22]*e[13]+e[26]*e[9]*e[6]+e[26]*e[0]*e[15]+e[26]*e[10]*e[7]+e[26]*e[1]*e[16]+e[11]*e[18]*e[0]+e[11]*e[19]*e[1]+3.*e[11]*e[20]*e[2]+e[20]*e[9]*e[0]+e[20]*e[10]*e[1]+e[5]*e[18]*e[12]+e[5]*e[9]*e[21]+e[5]*e[20]*e[14]+e[5]*e[11]*e[23]; + A[65]=e[32]*e[1]*e[4]+e[32]*e[0]*e[3]+e[8]*e[27]*e[6]+e[8]*e[0]*e[33]+e[8]*e[28]*e[7]+e[8]*e[1]*e[34]+e[35]*e[1]*e[7]+e[35]*e[0]*e[6]+e[2]*e[27]*e[0]+e[2]*e[28]*e[1]-1.*e[2]*e[34]*e[7]+e[2]*e[32]*e[5]-1.*e[2]*e[33]*e[6]-1.*e[2]*e[30]*e[3]+e[2]*e[35]*e[8]-1.*e[2]*e[31]*e[4]+e[5]*e[27]*e[3]+e[5]*e[0]*e[30]+e[5]*e[28]*e[4]+e[5]*e[1]*e[31]+1.500000000*e[29]*ep2[2]-.5000000000*e[29]*ep2[4]+.5000000000*e[29]*ep2[0]-.5000000000*e[29]*ep2[6]+.5000000000*e[29]*ep2[5]+.5000000000*e[29]*ep2[1]-.5000000000*e[29]*ep2[7]-.5000000000*e[29]*ep2[3]+.5000000000*e[29]*ep2[8]; + A[66]=e[5]*e[0]*e[3]+e[8]*e[1]*e[7]+e[8]*e[0]*e[6]+e[5]*e[1]*e[4]-.5000000000*e[2]*ep2[4]+.5000000000*ep3[2]+.5000000000*e[2]*ep2[1]-.5000000000*e[2]*ep2[3]+.5000000000*e[2]*ep2[0]+.5000000000*e[2]*ep2[8]+.5000000000*e[2]*ep2[5]-.5000000000*e[2]*ep2[6]-.5000000000*e[2]*ep2[7]; + A[67]=e[35]*e[9]*e[15]+e[35]*e[10]*e[16]-1.*e[11]*e[30]*e[12]-1.*e[11]*e[31]*e[13]-1.*e[11]*e[33]*e[15]-1.*e[11]*e[34]*e[16]+e[11]*e[27]*e[9]+e[11]*e[28]*e[10]+e[14]*e[27]*e[12]+e[14]*e[9]*e[30]+e[14]*e[11]*e[32]+e[14]*e[28]*e[13]+e[14]*e[10]*e[31]+e[32]*e[9]*e[12]+e[32]*e[10]*e[13]+e[17]*e[27]*e[15]+e[17]*e[9]*e[33]+e[17]*e[11]*e[35]+e[17]*e[28]*e[16]+e[17]*e[10]*e[34]+1.500000000*e[29]*ep2[11]-.5000000000*e[29]*ep2[16]+.5000000000*e[29]*ep2[9]-.5000000000*e[29]*ep2[12]-.5000000000*e[29]*ep2[15]+.5000000000*e[29]*ep2[17]+.5000000000*e[29]*ep2[10]+.5000000000*e[29]*ep2[14]-.5000000000*e[29]*ep2[13]; + A[68]=e[14]*e[9]*e[12]+e[17]*e[10]*e[16]+e[17]*e[9]*e[15]+.5000000000*ep3[11]+e[14]*e[10]*e[13]+.5000000000*e[11]*ep2[10]-.5000000000*e[11]*ep2[15]+.5000000000*e[11]*ep2[14]-.5000000000*e[11]*ep2[13]-.5000000000*e[11]*ep2[12]+.5000000000*e[11]*ep2[9]-.5000000000*e[11]*ep2[16]+.5000000000*e[11]*ep2[17]; + A[69]=e[20]*e[27]*e[18]+e[20]*e[28]*e[19]+e[23]*e[27]*e[21]+e[23]*e[18]*e[30]+e[23]*e[28]*e[22]+e[23]*e[19]*e[31]+e[23]*e[20]*e[32]+e[32]*e[19]*e[22]+e[32]*e[18]*e[21]+e[26]*e[27]*e[24]+e[26]*e[18]*e[33]+e[26]*e[28]*e[25]+e[26]*e[19]*e[34]+e[26]*e[20]*e[35]+e[35]*e[19]*e[25]+e[35]*e[18]*e[24]-1.*e[20]*e[33]*e[24]-1.*e[20]*e[30]*e[21]-1.*e[20]*e[31]*e[22]-1.*e[20]*e[34]*e[25]+.5000000000*e[29]*ep2[23]+.5000000000*e[29]*ep2[26]-.5000000000*e[29]*ep2[22]-.5000000000*e[29]*ep2[24]-.5000000000*e[29]*ep2[21]-.5000000000*e[29]*ep2[25]+1.500000000*e[29]*ep2[20]+.5000000000*e[29]*ep2[19]+.5000000000*e[29]*ep2[18]; + A[70]=.5000000000*e[20]*ep2[26]+.5000000000*e[20]*ep2[18]+.5000000000*ep3[20]+.5000000000*e[20]*ep2[19]+e[26]*e[18]*e[24]+.5000000000*e[20]*ep2[23]-.5000000000*e[20]*ep2[25]+e[23]*e[19]*e[22]-.5000000000*e[20]*ep2[24]-.5000000000*e[20]*ep2[21]-.5000000000*e[20]*ep2[22]+e[23]*e[18]*e[21]+e[26]*e[19]*e[25]; + A[71]=e[8]*e[28]*e[16]+e[8]*e[10]*e[34]+e[2]*e[27]*e[9]+3.*e[2]*e[29]*e[11]+e[2]*e[28]*e[10]+e[11]*e[27]*e[0]-1.*e[11]*e[34]*e[7]-1.*e[11]*e[33]*e[6]-1.*e[11]*e[30]*e[3]+e[11]*e[28]*e[1]-1.*e[11]*e[31]*e[4]+e[14]*e[27]*e[3]+e[14]*e[0]*e[30]+e[14]*e[28]*e[4]+e[14]*e[1]*e[31]+e[14]*e[2]*e[32]+e[29]*e[10]*e[1]-1.*e[29]*e[13]*e[4]-1.*e[29]*e[16]*e[7]-1.*e[29]*e[15]*e[6]+e[29]*e[9]*e[0]-1.*e[29]*e[12]*e[3]+e[32]*e[9]*e[3]+e[32]*e[0]*e[12]+e[32]*e[10]*e[4]+e[32]*e[1]*e[13]+e[17]*e[27]*e[6]+e[17]*e[0]*e[33]+e[17]*e[28]*e[7]+e[17]*e[1]*e[34]+e[17]*e[2]*e[35]-1.*e[2]*e[30]*e[12]-1.*e[2]*e[31]*e[13]-1.*e[2]*e[33]*e[15]-1.*e[2]*e[34]*e[16]+e[35]*e[9]*e[6]+e[35]*e[0]*e[15]+e[35]*e[10]*e[7]+e[35]*e[1]*e[16]+e[5]*e[27]*e[12]+e[5]*e[9]*e[30]+e[5]*e[29]*e[14]+e[5]*e[11]*e[32]+e[5]*e[28]*e[13]+e[5]*e[10]*e[31]+e[8]*e[27]*e[15]+e[8]*e[9]*e[33]+e[8]*e[29]*e[17]+e[8]*e[11]*e[35]; + A[91]=-1.*e[12]*e[34]*e[7]+e[12]*e[32]*e[5]-1.*e[12]*e[35]*e[8]-1.*e[12]*e[29]*e[2]-1.*e[12]*e[28]*e[1]+e[12]*e[31]*e[4]-1.*e[30]*e[11]*e[2]-1.*e[30]*e[10]*e[1]+e[30]*e[13]*e[4]-1.*e[30]*e[16]*e[7]+e[30]*e[14]*e[5]-1.*e[30]*e[17]*e[8]+e[15]*e[3]*e[33]+e[15]*e[31]*e[7]+e[15]*e[4]*e[34]+e[15]*e[32]*e[8]+e[15]*e[5]*e[35]+e[3]*e[27]*e[9]-1.*e[3]*e[28]*e[10]-1.*e[3]*e[34]*e[16]-1.*e[3]*e[35]*e[17]-1.*e[3]*e[29]*e[11]+e[33]*e[13]*e[7]+e[33]*e[4]*e[16]+e[33]*e[14]*e[8]+e[33]*e[5]*e[17]+e[9]*e[28]*e[4]+e[9]*e[1]*e[31]+e[9]*e[29]*e[5]+e[9]*e[2]*e[32]+e[27]*e[10]*e[4]+e[27]*e[1]*e[13]+e[27]*e[11]*e[5]+e[27]*e[2]*e[14]+3.*e[3]*e[30]*e[12]+e[3]*e[32]*e[14]+e[3]*e[31]*e[13]+e[6]*e[30]*e[15]+e[6]*e[12]*e[33]+e[6]*e[32]*e[17]+e[6]*e[14]*e[35]+e[6]*e[31]*e[16]+e[6]*e[13]*e[34]+e[0]*e[27]*e[12]+e[0]*e[9]*e[30]+e[0]*e[29]*e[14]+e[0]*e[11]*e[32]+e[0]*e[28]*e[13]+e[0]*e[10]*e[31]; + A[90]=.5000000000*e[21]*ep2[24]-.5000000000*e[21]*ep2[25]+.5000000000*e[21]*ep2[23]-.5000000000*e[21]*ep2[26]+.5000000000*ep2[18]*e[21]+.5000000000*e[21]*ep2[22]-.5000000000*e[21]*ep2[20]+e[24]*e[22]*e[25]+e[24]*e[23]*e[26]-.5000000000*e[21]*ep2[19]+e[18]*e[19]*e[22]+e[18]*e[20]*e[23]+.5000000000*ep3[21]; + A[89]=-.5000000000*e[30]*ep2[26]-.5000000000*e[30]*ep2[19]-.5000000000*e[30]*ep2[20]-.5000000000*e[30]*ep2[25]+.5000000000*ep2[18]*e[30]+1.500000000*e[30]*ep2[21]+.5000000000*e[30]*ep2[22]+.5000000000*e[30]*ep2[23]+.5000000000*e[30]*ep2[24]+e[18]*e[27]*e[21]+e[18]*e[28]*e[22]+e[18]*e[19]*e[31]+e[18]*e[29]*e[23]+e[18]*e[20]*e[32]+e[27]*e[19]*e[22]+e[27]*e[20]*e[23]+e[21]*e[31]*e[22]+e[21]*e[32]*e[23]+e[24]*e[21]*e[33]+e[24]*e[31]*e[25]+e[24]*e[22]*e[34]+e[24]*e[32]*e[26]+e[24]*e[23]*e[35]+e[33]*e[22]*e[25]+e[33]*e[23]*e[26]-1.*e[21]*e[29]*e[20]-1.*e[21]*e[35]*e[26]-1.*e[21]*e[28]*e[19]-1.*e[21]*e[34]*e[25]; + A[88]=.5000000000*e[12]*ep2[15]-.5000000000*e[12]*ep2[17]+e[15]*e[13]*e[16]-.5000000000*e[12]*ep2[10]+e[15]*e[14]*e[17]-.5000000000*e[12]*ep2[16]-.5000000000*e[12]*ep2[11]+e[9]*e[10]*e[13]+.5000000000*e[12]*ep2[13]+.5000000000*ep2[9]*e[12]+.5000000000*ep3[12]+e[9]*e[11]*e[14]+.5000000000*e[12]*ep2[14]; + A[95]=e[12]*e[13]*e[4]+e[12]*e[14]*e[5]+e[15]*e[12]*e[6]+e[15]*e[13]*e[7]+e[15]*e[4]*e[16]+e[15]*e[14]*e[8]+e[15]*e[5]*e[17]+e[6]*e[14]*e[17]+e[6]*e[13]*e[16]+e[0]*e[11]*e[14]+e[0]*e[9]*e[12]+e[0]*e[10]*e[13]+e[9]*e[10]*e[4]+e[9]*e[1]*e[13]+e[9]*e[11]*e[5]+e[9]*e[2]*e[14]-1.*e[12]*e[11]*e[2]-1.*e[12]*e[10]*e[1]-1.*e[12]*e[16]*e[7]-1.*e[12]*e[17]*e[8]+1.500000000*ep2[12]*e[3]+.5000000000*e[3]*ep2[15]-.5000000000*e[3]*ep2[16]+.5000000000*e[3]*ep2[9]-.5000000000*e[3]*ep2[11]-.5000000000*e[3]*ep2[17]-.5000000000*e[3]*ep2[10]+.5000000000*e[3]*ep2[14]+.5000000000*e[3]*ep2[13]; + A[94]=e[18]*e[11]*e[14]+e[18]*e[9]*e[12]+e[18]*e[10]*e[13]+e[12]*e[23]*e[14]+e[12]*e[22]*e[13]+e[15]*e[12]*e[24]+e[15]*e[23]*e[17]+e[15]*e[14]*e[26]+e[15]*e[22]*e[16]+e[15]*e[13]*e[25]+e[24]*e[14]*e[17]+e[24]*e[13]*e[16]-1.*e[12]*e[25]*e[16]-1.*e[12]*e[26]*e[17]-1.*e[12]*e[20]*e[11]-1.*e[12]*e[19]*e[10]+e[9]*e[20]*e[14]+e[9]*e[11]*e[23]+e[9]*e[19]*e[13]+e[9]*e[10]*e[22]+.5000000000*ep2[9]*e[21]-.5000000000*e[21]*ep2[16]-.5000000000*e[21]*ep2[11]-.5000000000*e[21]*ep2[17]-.5000000000*e[21]*ep2[10]+1.500000000*e[21]*ep2[12]+.5000000000*e[21]*ep2[14]+.5000000000*e[21]*ep2[13]+.5000000000*e[21]*ep2[15]; + A[93]=-1.*e[21]*e[35]*e[8]-1.*e[21]*e[29]*e[2]-1.*e[21]*e[28]*e[1]+e[21]*e[31]*e[4]-1.*e[30]*e[26]*e[8]-1.*e[30]*e[20]*e[2]-1.*e[30]*e[19]*e[1]+e[30]*e[22]*e[4]-1.*e[30]*e[25]*e[7]+e[30]*e[23]*e[5]+e[6]*e[31]*e[25]+e[6]*e[22]*e[34]+e[6]*e[32]*e[26]+e[6]*e[23]*e[35]+e[24]*e[30]*e[6]+e[24]*e[3]*e[33]+e[24]*e[31]*e[7]+e[24]*e[4]*e[34]+e[24]*e[32]*e[8]+e[24]*e[5]*e[35]+e[33]*e[21]*e[6]+e[33]*e[22]*e[7]+e[33]*e[4]*e[25]+e[33]*e[23]*e[8]+e[33]*e[5]*e[26]+e[0]*e[27]*e[21]+e[0]*e[18]*e[30]+e[0]*e[28]*e[22]+e[0]*e[19]*e[31]+e[0]*e[29]*e[23]+e[0]*e[20]*e[32]+e[18]*e[27]*e[3]+e[18]*e[28]*e[4]+e[18]*e[1]*e[31]+e[18]*e[29]*e[5]+e[18]*e[2]*e[32]+e[27]*e[19]*e[4]+e[27]*e[1]*e[22]+e[27]*e[20]*e[5]+e[27]*e[2]*e[23]+3.*e[3]*e[30]*e[21]+e[3]*e[31]*e[22]+e[3]*e[32]*e[23]-1.*e[3]*e[29]*e[20]-1.*e[3]*e[35]*e[26]-1.*e[3]*e[28]*e[19]-1.*e[3]*e[34]*e[25]-1.*e[21]*e[34]*e[7]+e[21]*e[32]*e[5]; + A[92]=e[18]*e[1]*e[4]+e[18]*e[0]*e[3]+e[18]*e[2]*e[5]+e[3]*e[22]*e[4]+e[3]*e[23]*e[5]+e[6]*e[3]*e[24]+e[6]*e[22]*e[7]+e[6]*e[4]*e[25]+e[6]*e[23]*e[8]+e[6]*e[5]*e[26]+e[24]*e[4]*e[7]+e[24]*e[5]*e[8]+e[0]*e[19]*e[4]+e[0]*e[1]*e[22]+e[0]*e[20]*e[5]+e[0]*e[2]*e[23]-1.*e[3]*e[26]*e[8]-1.*e[3]*e[20]*e[2]-1.*e[3]*e[19]*e[1]-1.*e[3]*e[25]*e[7]+.5000000000*e[21]*ep2[4]+.5000000000*e[21]*ep2[0]+.5000000000*e[21]*ep2[6]+.5000000000*e[21]*ep2[5]-.5000000000*e[21]*ep2[1]-.5000000000*e[21]*ep2[7]+1.500000000*e[21]*ep2[3]-.5000000000*e[21]*ep2[2]-.5000000000*e[21]*ep2[8]; + A[82]=.5000000000*ep2[27]*e[21]+1.500000000*e[21]*ep2[30]+.5000000000*e[21]*ep2[32]+.5000000000*e[21]*ep2[31]+.5000000000*e[21]*ep2[33]-.5000000000*e[21]*ep2[28]-.5000000000*e[21]*ep2[29]-.5000000000*e[21]*ep2[34]-.5000000000*e[21]*ep2[35]+e[18]*e[27]*e[30]+e[18]*e[29]*e[32]+e[18]*e[28]*e[31]+e[27]*e[28]*e[22]+e[27]*e[19]*e[31]+e[27]*e[29]*e[23]+e[27]*e[20]*e[32]+e[30]*e[31]*e[22]+e[30]*e[32]*e[23]+e[24]*e[30]*e[33]+e[24]*e[32]*e[35]+e[24]*e[31]*e[34]+e[33]*e[31]*e[25]+e[33]*e[22]*e[34]+e[33]*e[32]*e[26]+e[33]*e[23]*e[35]-1.*e[30]*e[29]*e[20]-1.*e[30]*e[35]*e[26]-1.*e[30]*e[28]*e[19]-1.*e[30]*e[34]*e[25]; + A[192]=-.5000000000*e[26]*ep2[4]-.5000000000*e[26]*ep2[0]+.5000000000*e[26]*ep2[6]+.5000000000*e[26]*ep2[5]-.5000000000*e[26]*ep2[1]+.5000000000*e[26]*ep2[7]-.5000000000*e[26]*ep2[3]+.5000000000*e[26]*ep2[2]+1.500000000*e[26]*ep2[8]+e[20]*e[0]*e[6]+e[20]*e[2]*e[8]+e[5]*e[21]*e[6]+e[5]*e[3]*e[24]+e[5]*e[22]*e[7]+e[5]*e[4]*e[25]+e[5]*e[23]*e[8]+e[23]*e[4]*e[7]+e[23]*e[3]*e[6]+e[8]*e[24]*e[6]+e[8]*e[25]*e[7]+e[2]*e[18]*e[6]+e[2]*e[0]*e[24]+e[2]*e[19]*e[7]+e[2]*e[1]*e[25]-1.*e[8]*e[21]*e[3]-1.*e[8]*e[19]*e[1]-1.*e[8]*e[22]*e[4]-1.*e[8]*e[18]*e[0]+e[20]*e[1]*e[7]; + A[83]=e[9]*e[27]*e[30]+e[9]*e[29]*e[32]+e[9]*e[28]*e[31]+e[33]*e[30]*e[15]+e[33]*e[32]*e[17]+e[33]*e[14]*e[35]+e[33]*e[31]*e[16]+e[33]*e[13]*e[34]+e[27]*e[29]*e[14]+e[27]*e[11]*e[32]+e[27]*e[28]*e[13]+e[27]*e[10]*e[31]-1.*e[30]*e[28]*e[10]+e[30]*e[31]*e[13]+e[30]*e[32]*e[14]-1.*e[30]*e[34]*e[16]-1.*e[30]*e[35]*e[17]-1.*e[30]*e[29]*e[11]+e[15]*e[32]*e[35]+e[15]*e[31]*e[34]-.5000000000*e[12]*ep2[34]-.5000000000*e[12]*ep2[35]+.5000000000*e[12]*ep2[27]+.5000000000*e[12]*ep2[32]-.5000000000*e[12]*ep2[28]-.5000000000*e[12]*ep2[29]+.5000000000*e[12]*ep2[31]+.5000000000*e[12]*ep2[33]+1.500000000*e[12]*ep2[30]; + A[193]=e[23]*e[30]*e[6]+e[23]*e[3]*e[33]+e[23]*e[31]*e[7]+e[23]*e[4]*e[34]+e[32]*e[21]*e[6]+e[32]*e[3]*e[24]+e[32]*e[22]*e[7]+e[32]*e[4]*e[25]+e[26]*e[33]*e[6]+e[26]*e[34]*e[7]+3.*e[26]*e[35]*e[8]+e[35]*e[24]*e[6]+e[35]*e[25]*e[7]+e[2]*e[27]*e[24]+e[2]*e[18]*e[33]+e[2]*e[28]*e[25]+e[2]*e[19]*e[34]+e[2]*e[29]*e[26]+e[2]*e[20]*e[35]+e[20]*e[27]*e[6]+e[20]*e[0]*e[33]+e[20]*e[28]*e[7]+e[20]*e[1]*e[34]+e[20]*e[29]*e[8]+e[29]*e[18]*e[6]+e[29]*e[0]*e[24]+e[29]*e[19]*e[7]+e[29]*e[1]*e[25]+e[5]*e[30]*e[24]+e[5]*e[21]*e[33]+e[5]*e[31]*e[25]+e[5]*e[22]*e[34]+e[5]*e[32]*e[26]+e[5]*e[23]*e[35]-1.*e[8]*e[27]*e[18]+e[8]*e[33]*e[24]-1.*e[8]*e[30]*e[21]-1.*e[8]*e[31]*e[22]+e[8]*e[32]*e[23]-1.*e[8]*e[28]*e[19]+e[8]*e[34]*e[25]-1.*e[26]*e[27]*e[0]-1.*e[26]*e[30]*e[3]-1.*e[26]*e[28]*e[1]-1.*e[26]*e[31]*e[4]-1.*e[35]*e[21]*e[3]-1.*e[35]*e[19]*e[1]-1.*e[35]*e[22]*e[4]-1.*e[35]*e[18]*e[0]; + A[80]=e[27]*e[29]*e[32]+e[27]*e[28]*e[31]+e[33]*e[32]*e[35]+e[33]*e[31]*e[34]+.5000000000*ep3[30]-.5000000000*e[30]*ep2[28]-.5000000000*e[30]*ep2[29]-.5000000000*e[30]*ep2[34]+.5000000000*e[30]*ep2[33]+.5000000000*ep2[27]*e[30]+.5000000000*e[30]*ep2[32]+.5000000000*e[30]*ep2[31]-.5000000000*e[30]*ep2[35]; + A[194]=.5000000000*ep2[14]*e[26]+1.500000000*e[26]*ep2[17]+.5000000000*e[26]*ep2[15]+.5000000000*e[26]*ep2[16]+.5000000000*ep2[11]*e[26]-.5000000000*e[26]*ep2[9]-.5000000000*e[26]*ep2[12]-.5000000000*e[26]*ep2[10]-.5000000000*e[26]*ep2[13]+e[20]*e[11]*e[17]+e[20]*e[9]*e[15]+e[20]*e[10]*e[16]+e[14]*e[21]*e[15]+e[14]*e[12]*e[24]+e[14]*e[23]*e[17]+e[14]*e[22]*e[16]+e[14]*e[13]*e[25]+e[23]*e[12]*e[15]+e[23]*e[13]*e[16]+e[17]*e[24]*e[15]+e[17]*e[25]*e[16]-1.*e[17]*e[18]*e[9]-1.*e[17]*e[21]*e[12]-1.*e[17]*e[19]*e[10]-1.*e[17]*e[22]*e[13]+e[11]*e[18]*e[15]+e[11]*e[9]*e[24]+e[11]*e[19]*e[16]+e[11]*e[10]*e[25]; + A[81]=e[0]*e[27]*e[30]+e[0]*e[29]*e[32]+e[0]*e[28]*e[31]+e[30]*e[31]*e[4]+e[30]*e[32]*e[5]+e[6]*e[30]*e[33]+e[6]*e[32]*e[35]+e[6]*e[31]*e[34]+e[27]*e[28]*e[4]+e[27]*e[1]*e[31]+e[27]*e[29]*e[5]+e[27]*e[2]*e[32]+e[33]*e[31]*e[7]+e[33]*e[4]*e[34]+e[33]*e[32]*e[8]+e[33]*e[5]*e[35]-1.*e[30]*e[34]*e[7]-1.*e[30]*e[35]*e[8]-1.*e[30]*e[29]*e[2]-1.*e[30]*e[28]*e[1]+1.500000000*e[3]*ep2[30]+.5000000000*e[3]*ep2[32]+.5000000000*e[3]*ep2[31]+.5000000000*e[3]*ep2[27]-.5000000000*e[3]*ep2[28]-.5000000000*e[3]*ep2[29]+.5000000000*e[3]*ep2[33]-.5000000000*e[3]*ep2[34]-.5000000000*e[3]*ep2[35]; + A[195]=.5000000000*ep2[14]*e[8]+1.500000000*ep2[17]*e[8]+.5000000000*e[8]*ep2[15]+.5000000000*e[8]*ep2[16]-.5000000000*e[8]*ep2[9]+.5000000000*e[8]*ep2[11]-.5000000000*e[8]*ep2[12]-.5000000000*e[8]*ep2[10]-.5000000000*e[8]*ep2[13]+e[14]*e[12]*e[6]+e[14]*e[3]*e[15]+e[14]*e[13]*e[7]+e[14]*e[4]*e[16]+e[14]*e[5]*e[17]+e[17]*e[15]*e[6]+e[17]*e[16]*e[7]+e[2]*e[11]*e[17]+e[2]*e[9]*e[15]+e[2]*e[10]*e[16]+e[5]*e[12]*e[15]+e[5]*e[13]*e[16]+e[11]*e[9]*e[6]+e[11]*e[0]*e[15]+e[11]*e[10]*e[7]+e[11]*e[1]*e[16]-1.*e[17]*e[10]*e[1]-1.*e[17]*e[13]*e[4]-1.*e[17]*e[9]*e[0]-1.*e[17]*e[12]*e[3]; + A[86]=-.5000000000*e[3]*ep2[1]-.5000000000*e[3]*ep2[7]+.5000000000*ep3[3]-.5000000000*e[3]*ep2[8]+e[0]*e[2]*e[5]+.5000000000*e[3]*ep2[6]+.5000000000*e[3]*ep2[4]-.5000000000*e[3]*ep2[2]+e[0]*e[1]*e[4]+e[6]*e[4]*e[7]+.5000000000*ep2[0]*e[3]+.5000000000*e[3]*ep2[5]+e[6]*e[5]*e[8]; + A[196]=.5000000000*ep2[23]*e[17]+1.500000000*ep2[26]*e[17]+.5000000000*e[17]*ep2[25]+.5000000000*e[17]*ep2[24]-.5000000000*e[17]*ep2[18]-.5000000000*e[17]*ep2[19]+.5000000000*e[17]*ep2[20]-.5000000000*e[17]*ep2[22]-.5000000000*e[17]*ep2[21]+e[23]*e[21]*e[15]+e[23]*e[12]*e[24]+e[23]*e[14]*e[26]+e[23]*e[22]*e[16]+e[23]*e[13]*e[25]+e[26]*e[24]*e[15]+e[26]*e[25]*e[16]+e[11]*e[19]*e[25]+e[11]*e[18]*e[24]+e[11]*e[20]*e[26]+e[14]*e[22]*e[25]+e[14]*e[21]*e[24]+e[20]*e[18]*e[15]+e[20]*e[9]*e[24]+e[20]*e[19]*e[16]+e[20]*e[10]*e[25]-1.*e[26]*e[18]*e[9]-1.*e[26]*e[21]*e[12]-1.*e[26]*e[19]*e[10]-1.*e[26]*e[22]*e[13]; + A[87]=-1.*e[12]*e[34]*e[16]-1.*e[12]*e[35]*e[17]-1.*e[12]*e[29]*e[11]+e[9]*e[27]*e[12]+e[9]*e[29]*e[14]+e[9]*e[11]*e[32]+e[9]*e[28]*e[13]+e[9]*e[10]*e[31]+e[27]*e[11]*e[14]+e[27]*e[10]*e[13]+e[12]*e[32]*e[14]+e[12]*e[31]*e[13]+e[15]*e[12]*e[33]+e[15]*e[32]*e[17]+e[15]*e[14]*e[35]+e[15]*e[31]*e[16]+e[15]*e[13]*e[34]+e[33]*e[14]*e[17]+e[33]*e[13]*e[16]-1.*e[12]*e[28]*e[10]+.5000000000*ep2[9]*e[30]-.5000000000*e[30]*ep2[16]-.5000000000*e[30]*ep2[11]+1.500000000*e[30]*ep2[12]+.5000000000*e[30]*ep2[15]-.5000000000*e[30]*ep2[17]-.5000000000*e[30]*ep2[10]+.5000000000*e[30]*ep2[14]+.5000000000*e[30]*ep2[13]; + A[197]=e[32]*e[22]*e[16]+e[32]*e[13]*e[25]-1.*e[17]*e[27]*e[18]+e[17]*e[33]*e[24]-1.*e[17]*e[30]*e[21]+e[17]*e[29]*e[20]+3.*e[17]*e[35]*e[26]-1.*e[17]*e[31]*e[22]-1.*e[17]*e[28]*e[19]+e[17]*e[34]*e[25]+e[20]*e[27]*e[15]+e[20]*e[9]*e[33]+e[20]*e[28]*e[16]+e[20]*e[10]*e[34]+e[29]*e[18]*e[15]+e[29]*e[9]*e[24]+e[29]*e[19]*e[16]+e[29]*e[10]*e[25]-1.*e[26]*e[27]*e[9]-1.*e[26]*e[30]*e[12]-1.*e[26]*e[28]*e[10]-1.*e[26]*e[31]*e[13]+e[26]*e[33]*e[15]+e[26]*e[34]*e[16]+e[35]*e[24]*e[15]+e[35]*e[25]*e[16]-1.*e[35]*e[18]*e[9]-1.*e[35]*e[21]*e[12]-1.*e[35]*e[19]*e[10]-1.*e[35]*e[22]*e[13]+e[14]*e[30]*e[24]+e[14]*e[21]*e[33]+e[14]*e[31]*e[25]+e[14]*e[22]*e[34]+e[14]*e[32]*e[26]+e[14]*e[23]*e[35]+e[11]*e[27]*e[24]+e[11]*e[18]*e[33]+e[11]*e[28]*e[25]+e[11]*e[19]*e[34]+e[11]*e[29]*e[26]+e[11]*e[20]*e[35]+e[23]*e[30]*e[15]+e[23]*e[12]*e[33]+e[23]*e[32]*e[17]+e[23]*e[31]*e[16]+e[23]*e[13]*e[34]+e[32]*e[21]*e[15]+e[32]*e[12]*e[24]; + A[84]=e[6]*e[23]*e[17]+e[6]*e[14]*e[26]+e[6]*e[22]*e[16]+e[6]*e[13]*e[25]+e[0]*e[20]*e[14]+e[0]*e[11]*e[23]+e[0]*e[19]*e[13]+e[0]*e[10]*e[22]-1.*e[12]*e[26]*e[8]-1.*e[12]*e[20]*e[2]-1.*e[12]*e[19]*e[1]+e[12]*e[22]*e[4]-1.*e[12]*e[25]*e[7]+e[12]*e[23]*e[5]-1.*e[21]*e[11]*e[2]-1.*e[21]*e[10]*e[1]+e[21]*e[13]*e[4]-1.*e[21]*e[16]*e[7]+e[21]*e[14]*e[5]-1.*e[21]*e[17]*e[8]+e[15]*e[3]*e[24]+e[15]*e[22]*e[7]+e[15]*e[4]*e[25]+e[15]*e[23]*e[8]+e[15]*e[5]*e[26]-1.*e[3]*e[25]*e[16]-1.*e[3]*e[26]*e[17]-1.*e[3]*e[20]*e[11]-1.*e[3]*e[19]*e[10]+e[24]*e[13]*e[7]+e[24]*e[4]*e[16]+e[24]*e[14]*e[8]+e[24]*e[5]*e[17]+e[9]*e[18]*e[3]+e[9]*e[0]*e[21]+e[9]*e[19]*e[4]+e[9]*e[1]*e[22]+e[9]*e[20]*e[5]+e[9]*e[2]*e[23]+e[18]*e[0]*e[12]+e[18]*e[10]*e[4]+e[18]*e[1]*e[13]+e[18]*e[11]*e[5]+e[18]*e[2]*e[14]+3.*e[3]*e[21]*e[12]+e[3]*e[23]*e[14]+e[3]*e[22]*e[13]+e[6]*e[21]*e[15]+e[6]*e[12]*e[24]; + A[198]=.5000000000*ep2[5]*e[17]+1.500000000*e[17]*ep2[8]+.5000000000*e[17]*ep2[7]+.5000000000*e[17]*ep2[6]+.5000000000*ep2[2]*e[17]-.5000000000*e[17]*ep2[4]-.5000000000*e[17]*ep2[0]-.5000000000*e[17]*ep2[1]-.5000000000*e[17]*ep2[3]+e[11]*e[1]*e[7]+e[11]*e[0]*e[6]+e[11]*e[2]*e[8]+e[5]*e[12]*e[6]+e[5]*e[3]*e[15]+e[5]*e[13]*e[7]+e[5]*e[4]*e[16]+e[5]*e[14]*e[8]+e[14]*e[4]*e[7]+e[14]*e[3]*e[6]+e[8]*e[15]*e[6]+e[8]*e[16]*e[7]-1.*e[8]*e[10]*e[1]-1.*e[8]*e[13]*e[4]-1.*e[8]*e[9]*e[0]-1.*e[8]*e[12]*e[3]+e[2]*e[9]*e[6]+e[2]*e[0]*e[15]+e[2]*e[10]*e[7]+e[2]*e[1]*e[16]; + A[85]=e[6]*e[4]*e[34]+e[6]*e[32]*e[8]+e[6]*e[5]*e[35]+e[33]*e[4]*e[7]+e[33]*e[5]*e[8]+e[0]*e[27]*e[3]+e[0]*e[28]*e[4]+e[0]*e[1]*e[31]+e[0]*e[29]*e[5]+e[0]*e[2]*e[32]-1.*e[3]*e[34]*e[7]+e[3]*e[32]*e[5]+e[3]*e[33]*e[6]-1.*e[3]*e[35]*e[8]-1.*e[3]*e[29]*e[2]-1.*e[3]*e[28]*e[1]+e[3]*e[31]*e[4]+e[27]*e[1]*e[4]+e[27]*e[2]*e[5]+e[6]*e[31]*e[7]+.5000000000*e[30]*ep2[4]+.5000000000*e[30]*ep2[6]+.5000000000*e[30]*ep2[5]-.5000000000*e[30]*ep2[1]-.5000000000*e[30]*ep2[7]-.5000000000*e[30]*ep2[2]-.5000000000*e[30]*ep2[8]+.5000000000*ep2[0]*e[30]+1.500000000*e[30]*ep2[3]; + A[199]=.5000000000*ep2[23]*e[8]+1.500000000*ep2[26]*e[8]-.5000000000*e[8]*ep2[18]-.5000000000*e[8]*ep2[19]-.5000000000*e[8]*ep2[22]+.5000000000*e[8]*ep2[24]-.5000000000*e[8]*ep2[21]+.5000000000*e[8]*ep2[25]+.5000000000*ep2[20]*e[8]+e[20]*e[18]*e[6]+e[20]*e[0]*e[24]+e[20]*e[19]*e[7]+e[20]*e[1]*e[25]+e[20]*e[2]*e[26]+e[23]*e[21]*e[6]+e[23]*e[3]*e[24]+e[23]*e[22]*e[7]+e[23]*e[4]*e[25]+e[23]*e[5]*e[26]-1.*e[26]*e[21]*e[3]-1.*e[26]*e[19]*e[1]-1.*e[26]*e[22]*e[4]-1.*e[26]*e[18]*e[0]+e[26]*e[25]*e[7]+e[26]*e[24]*e[6]+e[2]*e[19]*e[25]+e[2]*e[18]*e[24]+e[5]*e[22]*e[25]+e[5]*e[21]*e[24]; + A[109]=e[19]*e[27]*e[21]+e[19]*e[18]*e[30]+e[19]*e[28]*e[22]+e[19]*e[29]*e[23]+e[19]*e[20]*e[32]+e[28]*e[18]*e[21]+e[28]*e[20]*e[23]+e[22]*e[30]*e[21]+e[22]*e[32]*e[23]+e[25]*e[30]*e[24]+e[25]*e[21]*e[33]+e[25]*e[22]*e[34]+e[25]*e[32]*e[26]+e[25]*e[23]*e[35]+e[34]*e[21]*e[24]+e[34]*e[23]*e[26]-1.*e[22]*e[27]*e[18]-1.*e[22]*e[33]*e[24]-1.*e[22]*e[29]*e[20]-1.*e[22]*e[35]*e[26]+.5000000000*ep2[19]*e[31]+1.500000000*e[31]*ep2[22]+.5000000000*e[31]*ep2[21]+.5000000000*e[31]*ep2[23]+.5000000000*e[31]*ep2[25]-.5000000000*e[31]*ep2[26]-.5000000000*e[31]*ep2[18]-.5000000000*e[31]*ep2[20]-.5000000000*e[31]*ep2[24]; + A[108]=-.5000000000*e[13]*ep2[15]+.5000000000*e[13]*ep2[16]+.5000000000*e[13]*ep2[12]+e[16]*e[12]*e[15]+.5000000000*ep3[13]+e[10]*e[11]*e[14]+.5000000000*e[13]*ep2[14]-.5000000000*e[13]*ep2[17]-.5000000000*e[13]*ep2[11]-.5000000000*e[13]*ep2[9]+.5000000000*ep2[10]*e[13]+e[10]*e[9]*e[12]+e[16]*e[14]*e[17]; + A[111]=-1.*e[13]*e[29]*e[2]-1.*e[31]*e[11]*e[2]-1.*e[31]*e[15]*e[6]-1.*e[31]*e[9]*e[0]+e[31]*e[14]*e[5]+e[31]*e[12]*e[3]-1.*e[31]*e[17]*e[8]+e[16]*e[30]*e[6]+e[16]*e[3]*e[33]+e[16]*e[4]*e[34]+e[16]*e[32]*e[8]+e[16]*e[5]*e[35]-1.*e[4]*e[27]*e[9]+e[4]*e[28]*e[10]-1.*e[4]*e[33]*e[15]-1.*e[4]*e[35]*e[17]-1.*e[4]*e[29]*e[11]+e[34]*e[12]*e[6]+e[34]*e[3]*e[15]+e[34]*e[14]*e[8]+e[34]*e[5]*e[17]+e[10]*e[27]*e[3]+e[10]*e[0]*e[30]+e[10]*e[29]*e[5]+e[10]*e[2]*e[32]+e[28]*e[9]*e[3]+e[28]*e[0]*e[12]+e[28]*e[11]*e[5]+e[28]*e[2]*e[14]+e[4]*e[30]*e[12]+e[4]*e[32]*e[14]+3.*e[4]*e[31]*e[13]+e[7]*e[30]*e[15]+e[7]*e[12]*e[33]+e[7]*e[32]*e[17]+e[7]*e[14]*e[35]+e[7]*e[31]*e[16]+e[7]*e[13]*e[34]+e[1]*e[27]*e[12]+e[1]*e[9]*e[30]+e[1]*e[29]*e[14]+e[1]*e[11]*e[32]+e[1]*e[28]*e[13]+e[1]*e[10]*e[31]-1.*e[13]*e[27]*e[0]+e[13]*e[32]*e[5]-1.*e[13]*e[33]*e[6]+e[13]*e[30]*e[3]-1.*e[13]*e[35]*e[8]; + A[110]=e[25]*e[23]*e[26]+e[19]*e[20]*e[23]+e[19]*e[18]*e[21]+e[25]*e[21]*e[24]+.5000000000*ep3[22]+.5000000000*e[22]*ep2[23]+.5000000000*ep2[19]*e[22]-.5000000000*e[22]*ep2[18]-.5000000000*e[22]*ep2[24]+.5000000000*e[22]*ep2[21]+.5000000000*e[22]*ep2[25]-.5000000000*e[22]*ep2[20]-.5000000000*e[22]*ep2[26]; + A[105]=e[34]*e[5]*e[8]+e[1]*e[27]*e[3]+e[1]*e[0]*e[30]+e[1]*e[28]*e[4]+e[1]*e[29]*e[5]+e[1]*e[2]*e[32]-1.*e[4]*e[27]*e[0]+e[4]*e[34]*e[7]+e[4]*e[32]*e[5]-1.*e[4]*e[33]*e[6]+e[4]*e[30]*e[3]-1.*e[4]*e[35]*e[8]-1.*e[4]*e[29]*e[2]+e[28]*e[0]*e[3]+e[28]*e[2]*e[5]+e[7]*e[30]*e[6]+e[7]*e[3]*e[33]+e[7]*e[32]*e[8]+e[7]*e[5]*e[35]+e[34]*e[3]*e[6]+.5000000000*ep2[1]*e[31]+1.500000000*e[31]*ep2[4]-.5000000000*e[31]*ep2[0]-.5000000000*e[31]*ep2[6]+.5000000000*e[31]*ep2[5]+.5000000000*e[31]*ep2[7]+.5000000000*e[31]*ep2[3]-.5000000000*e[31]*ep2[2]-.5000000000*e[31]*ep2[8]; + A[104]=e[1]*e[20]*e[14]+e[1]*e[11]*e[23]+e[13]*e[21]*e[3]-1.*e[13]*e[26]*e[8]-1.*e[13]*e[20]*e[2]-1.*e[13]*e[18]*e[0]+e[13]*e[23]*e[5]-1.*e[13]*e[24]*e[6]-1.*e[22]*e[11]*e[2]-1.*e[22]*e[15]*e[6]-1.*e[22]*e[9]*e[0]+e[22]*e[14]*e[5]+e[22]*e[12]*e[3]-1.*e[22]*e[17]*e[8]+e[16]*e[21]*e[6]+e[16]*e[3]*e[24]+e[16]*e[4]*e[25]+e[16]*e[23]*e[8]+e[16]*e[5]*e[26]-1.*e[4]*e[24]*e[15]-1.*e[4]*e[26]*e[17]-1.*e[4]*e[20]*e[11]-1.*e[4]*e[18]*e[9]+e[25]*e[12]*e[6]+e[25]*e[3]*e[15]+e[25]*e[14]*e[8]+e[25]*e[5]*e[17]+e[10]*e[18]*e[3]+e[10]*e[0]*e[21]+e[10]*e[19]*e[4]+e[10]*e[1]*e[22]+e[10]*e[20]*e[5]+e[10]*e[2]*e[23]+e[19]*e[9]*e[3]+e[19]*e[0]*e[12]+e[19]*e[1]*e[13]+e[19]*e[11]*e[5]+e[19]*e[2]*e[14]+e[4]*e[21]*e[12]+e[4]*e[23]*e[14]+3.*e[4]*e[22]*e[13]+e[7]*e[21]*e[15]+e[7]*e[12]*e[24]+e[7]*e[23]*e[17]+e[7]*e[14]*e[26]+e[7]*e[22]*e[16]+e[7]*e[13]*e[25]+e[1]*e[18]*e[12]+e[1]*e[9]*e[21]; + A[107]=e[10]*e[27]*e[12]+e[10]*e[9]*e[30]+e[10]*e[29]*e[14]+e[10]*e[11]*e[32]+e[10]*e[28]*e[13]+e[28]*e[11]*e[14]+e[28]*e[9]*e[12]+e[13]*e[30]*e[12]+e[13]*e[32]*e[14]+e[16]*e[30]*e[15]+e[16]*e[12]*e[33]+e[16]*e[32]*e[17]+e[16]*e[14]*e[35]+e[16]*e[13]*e[34]+e[34]*e[14]*e[17]+e[34]*e[12]*e[15]-1.*e[13]*e[27]*e[9]-1.*e[13]*e[33]*e[15]-1.*e[13]*e[35]*e[17]-1.*e[13]*e[29]*e[11]+.5000000000*ep2[10]*e[31]+.5000000000*e[31]*ep2[16]-.5000000000*e[31]*ep2[9]-.5000000000*e[31]*ep2[11]+.5000000000*e[31]*ep2[12]-.5000000000*e[31]*ep2[15]-.5000000000*e[31]*ep2[17]+.5000000000*e[31]*ep2[14]+1.500000000*e[31]*ep2[13]; + A[106]=-.5000000000*e[4]*ep2[6]-.5000000000*e[4]*ep2[0]+e[1]*e[2]*e[5]+.5000000000*e[4]*ep2[7]+e[1]*e[0]*e[3]+e[7]*e[5]*e[8]-.5000000000*e[4]*ep2[8]+.5000000000*e[4]*ep2[3]+.5000000000*e[4]*ep2[5]+e[7]*e[3]*e[6]-.5000000000*e[4]*ep2[2]+.5000000000*ep3[4]+.5000000000*ep2[1]*e[4]; + A[100]=e[34]*e[32]*e[35]-.5000000000*e[31]*ep2[35]+.5000000000*e[31]*ep2[34]+.5000000000*ep2[28]*e[31]+.5000000000*ep3[31]+.5000000000*e[31]*ep2[32]+e[34]*e[30]*e[33]-.5000000000*e[31]*ep2[27]+.5000000000*e[31]*ep2[30]-.5000000000*e[31]*ep2[33]-.5000000000*e[31]*ep2[29]+e[28]*e[29]*e[32]+e[28]*e[27]*e[30]; + A[101]=e[1]*e[27]*e[30]+e[1]*e[29]*e[32]+e[1]*e[28]*e[31]+e[31]*e[30]*e[3]+e[31]*e[32]*e[5]+e[7]*e[30]*e[33]+e[7]*e[32]*e[35]+e[7]*e[31]*e[34]+e[28]*e[27]*e[3]+e[28]*e[0]*e[30]+e[28]*e[29]*e[5]+e[28]*e[2]*e[32]+e[34]*e[30]*e[6]+e[34]*e[3]*e[33]+e[34]*e[32]*e[8]+e[34]*e[5]*e[35]-1.*e[31]*e[27]*e[0]-1.*e[31]*e[33]*e[6]-1.*e[31]*e[35]*e[8]-1.*e[31]*e[29]*e[2]+.5000000000*e[4]*ep2[30]+.5000000000*e[4]*ep2[32]+1.500000000*e[4]*ep2[31]-.5000000000*e[4]*ep2[27]+.5000000000*e[4]*ep2[28]-.5000000000*e[4]*ep2[29]-.5000000000*e[4]*ep2[33]+.5000000000*e[4]*ep2[34]-.5000000000*e[4]*ep2[35]; + A[102]=.5000000000*e[22]*ep2[30]+.5000000000*e[22]*ep2[32]+1.500000000*e[22]*ep2[31]+.5000000000*e[22]*ep2[34]-.5000000000*e[22]*ep2[27]-.5000000000*e[22]*ep2[29]-.5000000000*e[22]*ep2[33]-.5000000000*e[22]*ep2[35]+e[28]*e[18]*e[30]+e[28]*e[29]*e[23]+e[28]*e[20]*e[32]+e[31]*e[30]*e[21]+e[31]*e[32]*e[23]+e[25]*e[30]*e[33]+e[25]*e[32]*e[35]+e[25]*e[31]*e[34]+e[34]*e[30]*e[24]+e[34]*e[21]*e[33]+e[34]*e[32]*e[26]+e[34]*e[23]*e[35]-1.*e[31]*e[27]*e[18]-1.*e[31]*e[33]*e[24]-1.*e[31]*e[29]*e[20]-1.*e[31]*e[35]*e[26]+e[19]*e[27]*e[30]+e[19]*e[29]*e[32]+e[19]*e[28]*e[31]+e[28]*e[27]*e[21]+.5000000000*ep2[28]*e[22]; + A[103]=e[16]*e[30]*e[33]+e[16]*e[32]*e[35]+e[10]*e[27]*e[30]+e[10]*e[29]*e[32]+e[10]*e[28]*e[31]+e[34]*e[30]*e[15]+e[34]*e[12]*e[33]+e[34]*e[32]*e[17]+e[34]*e[14]*e[35]+e[34]*e[31]*e[16]+e[28]*e[27]*e[12]+e[28]*e[9]*e[30]+e[28]*e[29]*e[14]+e[28]*e[11]*e[32]-1.*e[31]*e[27]*e[9]+e[31]*e[30]*e[12]+e[31]*e[32]*e[14]-1.*e[31]*e[33]*e[15]-1.*e[31]*e[35]*e[17]-1.*e[31]*e[29]*e[11]-.5000000000*e[13]*ep2[27]+.5000000000*e[13]*ep2[32]+.5000000000*e[13]*ep2[28]-.5000000000*e[13]*ep2[29]+1.500000000*e[13]*ep2[31]-.5000000000*e[13]*ep2[33]+.5000000000*e[13]*ep2[30]+.5000000000*e[13]*ep2[34]-.5000000000*e[13]*ep2[35]; + A[96]=e[21]*e[23]*e[14]+e[21]*e[22]*e[13]+e[24]*e[21]*e[15]+e[24]*e[23]*e[17]+e[24]*e[14]*e[26]+e[24]*e[22]*e[16]+e[24]*e[13]*e[25]+e[15]*e[22]*e[25]+e[15]*e[23]*e[26]+e[9]*e[19]*e[22]+e[9]*e[18]*e[21]+e[9]*e[20]*e[23]+e[18]*e[20]*e[14]+e[18]*e[11]*e[23]+e[18]*e[19]*e[13]+e[18]*e[10]*e[22]-1.*e[21]*e[25]*e[16]-1.*e[21]*e[26]*e[17]-1.*e[21]*e[20]*e[11]-1.*e[21]*e[19]*e[10]+1.500000000*ep2[21]*e[12]+.5000000000*e[12]*ep2[24]-.5000000000*e[12]*ep2[26]+.5000000000*e[12]*ep2[18]+.5000000000*e[12]*ep2[23]-.5000000000*e[12]*ep2[19]-.5000000000*e[12]*ep2[20]+.5000000000*e[12]*ep2[22]-.5000000000*e[12]*ep2[25]; + A[97]=-1.*e[12]*e[29]*e[20]-1.*e[12]*e[35]*e[26]-1.*e[12]*e[28]*e[19]-1.*e[12]*e[34]*e[25]+e[18]*e[29]*e[14]+e[18]*e[11]*e[32]+e[18]*e[28]*e[13]+e[18]*e[10]*e[31]+e[27]*e[20]*e[14]+e[27]*e[11]*e[23]+e[27]*e[19]*e[13]+e[27]*e[10]*e[22]+e[15]*e[30]*e[24]+e[15]*e[21]*e[33]+e[15]*e[31]*e[25]+e[15]*e[22]*e[34]+e[15]*e[32]*e[26]+e[15]*e[23]*e[35]-1.*e[21]*e[28]*e[10]-1.*e[21]*e[34]*e[16]-1.*e[21]*e[35]*e[17]-1.*e[21]*e[29]*e[11]-1.*e[30]*e[25]*e[16]-1.*e[30]*e[26]*e[17]-1.*e[30]*e[20]*e[11]-1.*e[30]*e[19]*e[10]+e[24]*e[32]*e[17]+e[24]*e[14]*e[35]+e[24]*e[31]*e[16]+e[24]*e[13]*e[34]+e[33]*e[23]*e[17]+e[33]*e[14]*e[26]+e[33]*e[22]*e[16]+e[33]*e[13]*e[25]+3.*e[12]*e[30]*e[21]+e[12]*e[31]*e[22]+e[12]*e[32]*e[23]+e[9]*e[27]*e[21]+e[9]*e[18]*e[30]+e[9]*e[28]*e[22]+e[9]*e[19]*e[31]+e[9]*e[29]*e[23]+e[9]*e[20]*e[32]+e[21]*e[32]*e[14]+e[21]*e[31]*e[13]+e[30]*e[23]*e[14]+e[30]*e[22]*e[13]+e[12]*e[27]*e[18]+e[12]*e[33]*e[24]; + A[98]=e[0]*e[11]*e[5]+e[0]*e[2]*e[14]+e[9]*e[1]*e[4]+e[9]*e[0]*e[3]+e[9]*e[2]*e[5]+e[3]*e[13]*e[4]+e[3]*e[14]*e[5]+e[6]*e[3]*e[15]+e[6]*e[13]*e[7]+e[6]*e[4]*e[16]+e[6]*e[14]*e[8]+e[6]*e[5]*e[17]+e[15]*e[4]*e[7]+e[15]*e[5]*e[8]-1.*e[3]*e[11]*e[2]-1.*e[3]*e[10]*e[1]-1.*e[3]*e[16]*e[7]-1.*e[3]*e[17]*e[8]+e[0]*e[10]*e[4]+e[0]*e[1]*e[13]+1.500000000*e[12]*ep2[3]+.5000000000*e[12]*ep2[4]+.5000000000*e[12]*ep2[5]+.5000000000*e[12]*ep2[6]+.5000000000*ep2[0]*e[12]-.5000000000*e[12]*ep2[1]-.5000000000*e[12]*ep2[7]-.5000000000*e[12]*ep2[2]-.5000000000*e[12]*ep2[8]; + A[99]=e[21]*e[24]*e[6]+e[0]*e[19]*e[22]+e[0]*e[20]*e[23]+e[24]*e[22]*e[7]+e[24]*e[4]*e[25]+e[24]*e[23]*e[8]+e[24]*e[5]*e[26]+e[6]*e[22]*e[25]+e[6]*e[23]*e[26]+e[18]*e[0]*e[21]+e[18]*e[19]*e[4]+e[18]*e[1]*e[22]+e[18]*e[20]*e[5]+e[18]*e[2]*e[23]+e[21]*e[22]*e[4]+e[21]*e[23]*e[5]-1.*e[21]*e[26]*e[8]-1.*e[21]*e[20]*e[2]-1.*e[21]*e[19]*e[1]-1.*e[21]*e[25]*e[7]+1.500000000*ep2[21]*e[3]+.5000000000*e[3]*ep2[22]+.5000000000*e[3]*ep2[23]+.5000000000*e[3]*ep2[24]-.5000000000*e[3]*ep2[26]-.5000000000*e[3]*ep2[19]-.5000000000*e[3]*ep2[20]-.5000000000*e[3]*ep2[25]+.5000000000*ep2[18]*e[3]; + A[127]=e[11]*e[27]*e[12]+e[11]*e[9]*e[30]+e[11]*e[29]*e[14]+e[11]*e[28]*e[13]+e[11]*e[10]*e[31]+e[29]*e[9]*e[12]+e[29]*e[10]*e[13]+e[14]*e[30]*e[12]+e[14]*e[31]*e[13]+e[17]*e[30]*e[15]+e[17]*e[12]*e[33]+e[17]*e[14]*e[35]+e[17]*e[31]*e[16]+e[17]*e[13]*e[34]+e[35]*e[12]*e[15]+e[35]*e[13]*e[16]-1.*e[14]*e[27]*e[9]-1.*e[14]*e[28]*e[10]-1.*e[14]*e[33]*e[15]-1.*e[14]*e[34]*e[16]+.5000000000*ep2[11]*e[32]-.5000000000*e[32]*ep2[16]-.5000000000*e[32]*ep2[9]+.5000000000*e[32]*ep2[12]-.5000000000*e[32]*ep2[15]+.5000000000*e[32]*ep2[17]-.5000000000*e[32]*ep2[10]+1.500000000*e[32]*ep2[14]+.5000000000*e[32]*ep2[13]; + A[126]=e[8]*e[3]*e[6]+.5000000000*ep2[2]*e[5]-.5000000000*e[5]*ep2[0]+.5000000000*e[5]*ep2[4]-.5000000000*e[5]*ep2[6]+.5000000000*e[5]*ep2[8]+e[8]*e[4]*e[7]+.5000000000*ep3[5]+e[2]*e[0]*e[3]+.5000000000*e[5]*ep2[3]-.5000000000*e[5]*ep2[7]+e[2]*e[1]*e[4]-.5000000000*e[5]*ep2[1]; + A[125]=e[2]*e[27]*e[3]+e[2]*e[0]*e[30]+e[2]*e[28]*e[4]+e[2]*e[1]*e[31]+e[2]*e[29]*e[5]-1.*e[5]*e[27]*e[0]-1.*e[5]*e[34]*e[7]-1.*e[5]*e[33]*e[6]+e[5]*e[30]*e[3]+e[5]*e[35]*e[8]-1.*e[5]*e[28]*e[1]+e[5]*e[31]*e[4]+e[29]*e[1]*e[4]+e[29]*e[0]*e[3]+e[8]*e[30]*e[6]+e[8]*e[3]*e[33]+e[8]*e[31]*e[7]+e[8]*e[4]*e[34]+e[35]*e[4]*e[7]+e[35]*e[3]*e[6]+.5000000000*ep2[2]*e[32]+1.500000000*e[32]*ep2[5]+.5000000000*e[32]*ep2[4]-.5000000000*e[32]*ep2[0]-.5000000000*e[32]*ep2[6]-.5000000000*e[32]*ep2[1]-.5000000000*e[32]*ep2[7]+.5000000000*e[32]*ep2[3]+.5000000000*e[32]*ep2[8]; + A[124]=-1.*e[14]*e[19]*e[1]+e[14]*e[22]*e[4]-1.*e[14]*e[18]*e[0]-1.*e[14]*e[25]*e[7]-1.*e[14]*e[24]*e[6]-1.*e[23]*e[10]*e[1]+e[23]*e[13]*e[4]-1.*e[23]*e[16]*e[7]-1.*e[23]*e[15]*e[6]-1.*e[23]*e[9]*e[0]+e[23]*e[12]*e[3]+e[17]*e[21]*e[6]+e[17]*e[3]*e[24]+e[17]*e[22]*e[7]+e[17]*e[4]*e[25]+e[17]*e[5]*e[26]-1.*e[5]*e[24]*e[15]-1.*e[5]*e[25]*e[16]-1.*e[5]*e[18]*e[9]-1.*e[5]*e[19]*e[10]+e[26]*e[12]*e[6]+e[26]*e[3]*e[15]+e[26]*e[13]*e[7]+e[26]*e[4]*e[16]+e[11]*e[18]*e[3]+e[11]*e[0]*e[21]+e[11]*e[19]*e[4]+e[11]*e[1]*e[22]+e[11]*e[20]*e[5]+e[11]*e[2]*e[23]+e[20]*e[9]*e[3]+e[20]*e[0]*e[12]+e[20]*e[10]*e[4]+e[20]*e[1]*e[13]+e[20]*e[2]*e[14]+e[5]*e[21]*e[12]+3.*e[5]*e[23]*e[14]+e[5]*e[22]*e[13]+e[8]*e[21]*e[15]+e[8]*e[12]*e[24]+e[8]*e[23]*e[17]+e[8]*e[14]*e[26]+e[8]*e[22]*e[16]+e[8]*e[13]*e[25]+e[2]*e[18]*e[12]+e[2]*e[9]*e[21]+e[2]*e[19]*e[13]+e[2]*e[10]*e[22]+e[14]*e[21]*e[3]; + A[123]=-.5000000000*e[14]*ep2[27]+1.500000000*e[14]*ep2[32]-.5000000000*e[14]*ep2[28]+.5000000000*e[14]*ep2[29]+.5000000000*e[14]*ep2[31]-.5000000000*e[14]*ep2[33]+.5000000000*e[14]*ep2[30]-.5000000000*e[14]*ep2[34]+.5000000000*e[14]*ep2[35]+e[11]*e[27]*e[30]+e[11]*e[29]*e[32]+e[11]*e[28]*e[31]+e[35]*e[30]*e[15]+e[35]*e[12]*e[33]+e[35]*e[32]*e[17]+e[35]*e[31]*e[16]+e[35]*e[13]*e[34]+e[29]*e[27]*e[12]+e[29]*e[9]*e[30]+e[29]*e[28]*e[13]+e[29]*e[10]*e[31]-1.*e[32]*e[27]*e[9]+e[32]*e[30]*e[12]-1.*e[32]*e[28]*e[10]+e[32]*e[31]*e[13]-1.*e[32]*e[33]*e[15]-1.*e[32]*e[34]*e[16]+e[17]*e[30]*e[33]+e[17]*e[31]*e[34]; + A[122]=-.5000000000*e[23]*ep2[33]-.5000000000*e[23]*ep2[34]+.5000000000*ep2[29]*e[23]+.5000000000*e[23]*ep2[30]+1.500000000*e[23]*ep2[32]+.5000000000*e[23]*ep2[31]+.5000000000*e[23]*ep2[35]-.5000000000*e[23]*ep2[27]-.5000000000*e[23]*ep2[28]+e[32]*e[30]*e[21]+e[32]*e[31]*e[22]+e[26]*e[30]*e[33]+e[26]*e[32]*e[35]+e[26]*e[31]*e[34]+e[35]*e[30]*e[24]+e[35]*e[21]*e[33]+e[35]*e[31]*e[25]+e[35]*e[22]*e[34]-1.*e[32]*e[27]*e[18]-1.*e[32]*e[33]*e[24]-1.*e[32]*e[28]*e[19]-1.*e[32]*e[34]*e[25]+e[20]*e[27]*e[30]+e[20]*e[29]*e[32]+e[20]*e[28]*e[31]+e[29]*e[27]*e[21]+e[29]*e[18]*e[30]+e[29]*e[28]*e[22]+e[29]*e[19]*e[31]; + A[121]=e[2]*e[27]*e[30]+e[2]*e[29]*e[32]+e[2]*e[28]*e[31]+e[32]*e[30]*e[3]+e[32]*e[31]*e[4]+e[8]*e[30]*e[33]+e[8]*e[32]*e[35]+e[8]*e[31]*e[34]+e[29]*e[27]*e[3]+e[29]*e[0]*e[30]+e[29]*e[28]*e[4]+e[29]*e[1]*e[31]+e[35]*e[30]*e[6]+e[35]*e[3]*e[33]+e[35]*e[31]*e[7]+e[35]*e[4]*e[34]-1.*e[32]*e[27]*e[0]-1.*e[32]*e[34]*e[7]-1.*e[32]*e[33]*e[6]-1.*e[32]*e[28]*e[1]+.5000000000*e[5]*ep2[30]+1.500000000*e[5]*ep2[32]+.5000000000*e[5]*ep2[31]-.5000000000*e[5]*ep2[27]-.5000000000*e[5]*ep2[28]+.5000000000*e[5]*ep2[29]-.5000000000*e[5]*ep2[33]-.5000000000*e[5]*ep2[34]+.5000000000*e[5]*ep2[35]; + A[120]=.5000000000*e[32]*ep2[31]+.5000000000*e[32]*ep2[35]-.5000000000*e[32]*ep2[27]+e[29]*e[27]*e[30]+e[29]*e[28]*e[31]+e[35]*e[30]*e[33]+e[35]*e[31]*e[34]+.5000000000*ep2[29]*e[32]+.5000000000*ep3[32]-.5000000000*e[32]*ep2[33]-.5000000000*e[32]*ep2[34]+.5000000000*e[32]*ep2[30]-.5000000000*e[32]*ep2[28]; + A[118]=e[10]*e[1]*e[4]+e[10]*e[0]*e[3]+e[10]*e[2]*e[5]+e[4]*e[12]*e[3]+e[4]*e[14]*e[5]+e[7]*e[12]*e[6]+e[7]*e[3]*e[15]+e[7]*e[4]*e[16]+e[7]*e[14]*e[8]+e[7]*e[5]*e[17]+e[16]*e[3]*e[6]+e[16]*e[5]*e[8]-1.*e[4]*e[11]*e[2]-1.*e[4]*e[15]*e[6]-1.*e[4]*e[9]*e[0]-1.*e[4]*e[17]*e[8]+e[1]*e[9]*e[3]+e[1]*e[0]*e[12]+e[1]*e[11]*e[5]+e[1]*e[2]*e[14]+1.500000000*e[13]*ep2[4]+.5000000000*e[13]*ep2[3]+.5000000000*e[13]*ep2[5]+.5000000000*e[13]*ep2[7]+.5000000000*ep2[1]*e[13]-.5000000000*e[13]*ep2[0]-.5000000000*e[13]*ep2[6]-.5000000000*e[13]*ep2[2]-.5000000000*e[13]*ep2[8]; + A[119]=e[25]*e[21]*e[6]+e[25]*e[3]*e[24]+e[25]*e[23]*e[8]+e[25]*e[5]*e[26]+e[7]*e[21]*e[24]+e[7]*e[23]*e[26]+e[19]*e[18]*e[3]+e[19]*e[0]*e[21]+e[19]*e[1]*e[22]+e[19]*e[20]*e[5]+e[19]*e[2]*e[23]+e[22]*e[21]*e[3]+e[22]*e[23]*e[5]-1.*e[22]*e[26]*e[8]-1.*e[22]*e[20]*e[2]-1.*e[22]*e[18]*e[0]+e[22]*e[25]*e[7]-1.*e[22]*e[24]*e[6]+e[1]*e[18]*e[21]+e[1]*e[20]*e[23]+.5000000000*e[4]*ep2[25]-.5000000000*e[4]*ep2[26]-.5000000000*e[4]*ep2[18]-.5000000000*e[4]*ep2[20]-.5000000000*e[4]*ep2[24]+.5000000000*ep2[19]*e[4]+1.500000000*ep2[22]*e[4]+.5000000000*e[4]*ep2[21]+.5000000000*e[4]*ep2[23]; + A[116]=e[22]*e[21]*e[12]+e[22]*e[23]*e[14]+e[25]*e[21]*e[15]+e[25]*e[12]*e[24]+e[25]*e[23]*e[17]+e[25]*e[14]*e[26]+e[25]*e[22]*e[16]+e[16]*e[21]*e[24]+e[16]*e[23]*e[26]+e[10]*e[19]*e[22]+e[10]*e[18]*e[21]+e[10]*e[20]*e[23]+e[19]*e[18]*e[12]+e[19]*e[9]*e[21]+e[19]*e[20]*e[14]+e[19]*e[11]*e[23]-1.*e[22]*e[24]*e[15]-1.*e[22]*e[26]*e[17]-1.*e[22]*e[20]*e[11]-1.*e[22]*e[18]*e[9]-.5000000000*e[13]*ep2[26]-.5000000000*e[13]*ep2[18]+.5000000000*e[13]*ep2[23]+.5000000000*e[13]*ep2[19]-.5000000000*e[13]*ep2[20]-.5000000000*e[13]*ep2[24]+.5000000000*e[13]*ep2[21]+1.500000000*ep2[22]*e[13]+.5000000000*e[13]*ep2[25]; + A[117]=e[13]*e[30]*e[21]+3.*e[13]*e[31]*e[22]+e[13]*e[32]*e[23]+e[10]*e[27]*e[21]+e[10]*e[18]*e[30]+e[10]*e[28]*e[22]+e[10]*e[19]*e[31]+e[10]*e[29]*e[23]+e[10]*e[20]*e[32]+e[22]*e[30]*e[12]+e[22]*e[32]*e[14]+e[31]*e[21]*e[12]+e[31]*e[23]*e[14]-1.*e[13]*e[27]*e[18]-1.*e[13]*e[33]*e[24]-1.*e[13]*e[29]*e[20]-1.*e[13]*e[35]*e[26]+e[13]*e[28]*e[19]+e[13]*e[34]*e[25]+e[19]*e[27]*e[12]+e[19]*e[9]*e[30]+e[19]*e[29]*e[14]+e[19]*e[11]*e[32]+e[28]*e[18]*e[12]+e[28]*e[9]*e[21]+e[28]*e[20]*e[14]+e[28]*e[11]*e[23]+e[16]*e[30]*e[24]+e[16]*e[21]*e[33]+e[16]*e[31]*e[25]+e[16]*e[22]*e[34]+e[16]*e[32]*e[26]+e[16]*e[23]*e[35]-1.*e[22]*e[27]*e[9]-1.*e[22]*e[33]*e[15]-1.*e[22]*e[35]*e[17]-1.*e[22]*e[29]*e[11]-1.*e[31]*e[24]*e[15]-1.*e[31]*e[26]*e[17]-1.*e[31]*e[20]*e[11]-1.*e[31]*e[18]*e[9]+e[25]*e[30]*e[15]+e[25]*e[12]*e[33]+e[25]*e[32]*e[17]+e[25]*e[14]*e[35]+e[34]*e[21]*e[15]+e[34]*e[12]*e[24]+e[34]*e[23]*e[17]+e[34]*e[14]*e[26]; + A[114]=e[19]*e[11]*e[14]+e[19]*e[9]*e[12]+e[19]*e[10]*e[13]+e[13]*e[21]*e[12]+e[13]*e[23]*e[14]+e[16]*e[21]*e[15]+e[16]*e[12]*e[24]+e[16]*e[23]*e[17]+e[16]*e[14]*e[26]+e[16]*e[13]*e[25]+e[25]*e[14]*e[17]+e[25]*e[12]*e[15]-1.*e[13]*e[24]*e[15]-1.*e[13]*e[26]*e[17]-1.*e[13]*e[20]*e[11]-1.*e[13]*e[18]*e[9]+e[10]*e[18]*e[12]+e[10]*e[9]*e[21]+e[10]*e[20]*e[14]+e[10]*e[11]*e[23]+1.500000000*e[22]*ep2[13]+.5000000000*e[22]*ep2[14]+.5000000000*e[22]*ep2[12]+.5000000000*e[22]*ep2[16]+.5000000000*ep2[10]*e[22]-.5000000000*e[22]*ep2[9]-.5000000000*e[22]*ep2[11]-.5000000000*e[22]*ep2[15]-.5000000000*e[22]*ep2[17]; + A[115]=e[13]*e[12]*e[3]+e[13]*e[14]*e[5]+e[16]*e[12]*e[6]+e[16]*e[3]*e[15]+e[16]*e[13]*e[7]+e[16]*e[14]*e[8]+e[16]*e[5]*e[17]+e[7]*e[14]*e[17]+e[7]*e[12]*e[15]+e[1]*e[11]*e[14]+e[1]*e[9]*e[12]+e[1]*e[10]*e[13]+e[10]*e[9]*e[3]+e[10]*e[0]*e[12]+e[10]*e[11]*e[5]+e[10]*e[2]*e[14]-1.*e[13]*e[11]*e[2]-1.*e[13]*e[15]*e[6]-1.*e[13]*e[9]*e[0]-1.*e[13]*e[17]*e[8]+1.500000000*ep2[13]*e[4]+.5000000000*e[4]*ep2[16]-.5000000000*e[4]*ep2[9]-.5000000000*e[4]*ep2[11]+.5000000000*e[4]*ep2[12]-.5000000000*e[4]*ep2[15]-.5000000000*e[4]*ep2[17]+.5000000000*e[4]*ep2[10]+.5000000000*e[4]*ep2[14]; + A[112]=e[19]*e[1]*e[4]+e[19]*e[0]*e[3]+e[19]*e[2]*e[5]+e[4]*e[21]*e[3]+e[4]*e[23]*e[5]+e[7]*e[21]*e[6]+e[7]*e[3]*e[24]+e[7]*e[4]*e[25]+e[7]*e[23]*e[8]+e[7]*e[5]*e[26]+e[25]*e[3]*e[6]+e[25]*e[5]*e[8]+e[1]*e[18]*e[3]+e[1]*e[0]*e[21]+e[1]*e[20]*e[5]+e[1]*e[2]*e[23]-1.*e[4]*e[26]*e[8]-1.*e[4]*e[20]*e[2]-1.*e[4]*e[18]*e[0]-1.*e[4]*e[24]*e[6]+1.500000000*e[22]*ep2[4]-.5000000000*e[22]*ep2[0]-.5000000000*e[22]*ep2[6]+.5000000000*e[22]*ep2[5]+.5000000000*e[22]*ep2[1]+.5000000000*e[22]*ep2[7]+.5000000000*e[22]*ep2[3]-.5000000000*e[22]*ep2[2]-.5000000000*e[22]*ep2[8]; + A[113]=-1.*e[31]*e[20]*e[2]-1.*e[31]*e[18]*e[0]+e[31]*e[23]*e[5]-1.*e[31]*e[24]*e[6]+e[7]*e[30]*e[24]+e[7]*e[21]*e[33]+e[7]*e[32]*e[26]+e[7]*e[23]*e[35]+e[25]*e[30]*e[6]+e[25]*e[3]*e[33]+e[25]*e[31]*e[7]+e[25]*e[4]*e[34]+e[25]*e[32]*e[8]+e[25]*e[5]*e[35]+e[34]*e[21]*e[6]+e[34]*e[3]*e[24]+e[34]*e[22]*e[7]+e[34]*e[23]*e[8]+e[34]*e[5]*e[26]+e[1]*e[27]*e[21]+e[1]*e[18]*e[30]+e[1]*e[28]*e[22]+e[1]*e[19]*e[31]+e[1]*e[29]*e[23]+e[1]*e[20]*e[32]+e[19]*e[27]*e[3]+e[19]*e[0]*e[30]+e[19]*e[28]*e[4]+e[19]*e[29]*e[5]+e[19]*e[2]*e[32]+e[28]*e[18]*e[3]+e[28]*e[0]*e[21]+e[28]*e[20]*e[5]+e[28]*e[2]*e[23]+e[4]*e[30]*e[21]+3.*e[4]*e[31]*e[22]+e[4]*e[32]*e[23]-1.*e[4]*e[27]*e[18]-1.*e[4]*e[33]*e[24]-1.*e[4]*e[29]*e[20]-1.*e[4]*e[35]*e[26]-1.*e[22]*e[27]*e[0]+e[22]*e[32]*e[5]-1.*e[22]*e[33]*e[6]+e[22]*e[30]*e[3]-1.*e[22]*e[35]*e[8]-1.*e[22]*e[29]*e[2]+e[31]*e[21]*e[3]-1.*e[31]*e[26]*e[8]; + + int perm[20] = {6, 8, 18, 15, 12, 5, 14, 7, 4, 11, 19, 13, 1, 16, 17, 3, 10, 9, 2, 0}; + double AA[200]; + for (int i = 0; i < 20; i++) + { + for (int j = 0; j < 10; j++) AA[i + j * 20] = A[perm[i] + j * 20]; + } + + for (int i = 0; i < 200; i++) + { + A[i] = AA[i]; + } } + void computeError( InputArray _m1, InputArray _m2, InputArray _model, OutputArray _err ) const { Mat X1 = _m1.getMat(), X2 = _m2.getMat(), model = _model.getMat(); From 28256209b015892ecd4add7966df736c65ef535b Mon Sep 17 00:00:00 2001 From: Bo Li Date: Fri, 15 Mar 2013 21:30:22 +0100 Subject: [PATCH 0022/1333] updated doc --- .../calib3d/doc/camera_calibration_and_3d_reconstruction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst b/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst index 1759dc584b..f44572d929 100644 --- a/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst +++ b/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst @@ -715,7 +715,7 @@ Calculates an essential matrix from the corresponding points in two images. :param mask: Output array of N elements, every element of which is set to 0 for outliers and to 1 for the other points. The array is computed only in the RANSAC and LMedS methods. -This function estimates essential matrix based on an implementation of five-point algorithm [Nister03]_ [SteweniusCFS]_. +This function estimates essential matrix based on the five-point algorithm solver in [Nister03]_. [SteweniusCFS]_ is also a related. The epipolar geometry is described by the following equation: .. math:: From 2bf3104ee515e4f70afd3e29921b6d3edfbe2195 Mon Sep 17 00:00:00 2001 From: Anatoly Baksheev Date: Sun, 17 Mar 2013 18:43:55 +0400 Subject: [PATCH 0023/1333] bugfix in sample to support LBP classifier. To merge to master also. --- samples/gpu/cascadeclassifier.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/samples/gpu/cascadeclassifier.cpp b/samples/gpu/cascadeclassifier.cpp index 412183f107..dee9d16c72 100644 --- a/samples/gpu/cascadeclassifier.cpp +++ b/samples/gpu/cascadeclassifier.cpp @@ -216,7 +216,7 @@ int main(int argc, const char *argv[]) if (useGPU) { - cascade_gpu.visualizeInPlace = true; + //cascade_gpu.visualizeInPlace = true; cascade_gpu.findLargestObject = findLargestObject; detections_num = cascade_gpu.detectMultiScale(resized_gpu, facesBuf_gpu, 1.2, @@ -245,6 +245,11 @@ int main(int argc, const char *argv[]) if (useGPU) { resized_gpu.download(resized_cpu); + + for (int i = 0; i < detections_num; ++i) + { + rectangle(resized_cpu, faces_downloaded.ptr()[i], Scalar(255)); + } } tm.stop(); From e153f0631c2d212fbf8eb98ae7e038d5656a7861 Mon Sep 17 00:00:00 2001 From: Daniil Osokin Date: Thu, 14 Mar 2013 21:19:08 +0400 Subject: [PATCH 0024/1333] Added missing enums for cvtColor RGB to YUV420p --- .../imgproc/include/opencv2/imgproc/imgproc.hpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/modules/imgproc/include/opencv2/imgproc/imgproc.hpp b/modules/imgproc/include/opencv2/imgproc/imgproc.hpp index caa2d55b5c..5d6633087e 100644 --- a/modules/imgproc/include/opencv2/imgproc/imgproc.hpp +++ b/modules/imgproc/include/opencv2/imgproc/imgproc.hpp @@ -1050,7 +1050,21 @@ enum COLOR_RGBA2mRGBA = 125, COLOR_mRGBA2RGBA = 126, - COLOR_COLORCVT_MAX = 127 + COLOR_RGB2YUV_I420 = 127, + COLOR_BGR2YUV_I420 = 128, + COLOR_RGB2YUV_IYUV = COLOR_RGB2YUV_I420, + COLOR_BGR2YUV_IYUV = COLOR_BGR2YUV_I420, + + COLOR_RGBA2YUV_I420 = 129, + COLOR_BGRA2YUV_I420 = 130, + COLOR_RGBA2YUV_IYUV = COLOR_RGBA2YUV_I420, + COLOR_BGRA2YUV_IYUV = COLOR_BGRA2YUV_I420, + COLOR_RGB2YUV_YV12 = 131, + COLOR_BGR2YUV_YV12 = 132, + COLOR_RGBA2YUV_YV12 = 133, + COLOR_BGRA2YUV_YV12 = 134, + + COLOR_COLORCVT_MAX = 135 }; From 436d9bbcbb15220bd1305125d0d0f79ae95aa28f Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Mon, 4 Mar 2013 14:49:33 +0400 Subject: [PATCH 0025/1333] Base for Native Activity example added. --- cmake/OpenCVDetectAndroidSDK.cmake | 10 + samples/android/CMakeLists.txt | 4 + .../native-activity/AndroidManifest.xml | 28 +++ .../android/native-activity/jni/Android.mk | 12 + .../native-activity/jni/Application.mk | 2 + .../android/native-activity/jni/native.cpp | 222 ++++++++++++++++++ .../native-activity/res/drawable/icon.png | Bin 0 -> 1997 bytes .../native-activity/res/values/strings.xml | 4 + 8 files changed, 282 insertions(+) create mode 100644 samples/android/native-activity/AndroidManifest.xml create mode 100644 samples/android/native-activity/jni/Android.mk create mode 100644 samples/android/native-activity/jni/Application.mk create mode 100644 samples/android/native-activity/jni/native.cpp create mode 100644 samples/android/native-activity/res/drawable/icon.png create mode 100644 samples/android/native-activity/res/values/strings.xml diff --git a/cmake/OpenCVDetectAndroidSDK.cmake b/cmake/OpenCVDetectAndroidSDK.cmake index 0e0240ca86..b125561d4a 100644 --- a/cmake/OpenCVDetectAndroidSDK.cmake +++ b/cmake/OpenCVDetectAndroidSDK.cmake @@ -264,13 +264,23 @@ macro(add_android_project target path) ocv_list_filterout(android_proj_jni_files "\\\\.svn") if(android_proj_jni_files AND EXISTS ${path}/jni/Android.mk AND NOT DEFINED JNI_LIB_NAME) + # find local module name in Android.mk file to build native lib file(STRINGS "${path}/jni/Android.mk" JNI_LIB_NAME REGEX "LOCAL_MODULE[ ]*:=[ ]*.*" ) string(REGEX REPLACE "LOCAL_MODULE[ ]*:=[ ]*([a-zA-Z_][a-zA-Z_0-9]*)[ ]*" "\\1" JNI_LIB_NAME "${JNI_LIB_NAME}") + # find using of native app glue to determine native activity + file(STRINGS "${path}/jni/Android.mk" NATIVE_APP_GLUE REGEX ".*(call import-module,android/native_app_glue)" ) + if(JNI_LIB_NAME) ocv_include_modules_recurse(${android_proj_NATIVE_DEPS}) ocv_include_directories("${path}/jni") + if (NATIVE_APP_GLUE) + include_directories(${ANDROID_NDK}/sources/android/native_app_glue) + list(APPEND android_proj_jni_files ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c) + set(android_proj_NATIVE_DEPS ${android_proj_NATIVE_DEPS} android) + endif() + add_library(${JNI_LIB_NAME} MODULE ${android_proj_jni_files}) target_link_libraries(${JNI_LIB_NAME} ${OPENCV_LINKER_LIBS} ${android_proj_NATIVE_DEPS}) diff --git a/samples/android/CMakeLists.txt b/samples/android/CMakeLists.txt index a0794cb972..9d7b0cbf0f 100644 --- a/samples/android/CMakeLists.txt +++ b/samples/android/CMakeLists.txt @@ -11,6 +11,10 @@ add_subdirectory(face-detection) add_subdirectory(image-manipulations) add_subdirectory(color-blob-detection) +if (ANDROID_NATIVE_API_LEVEL GREATER 8) + add_subdirectory(native-activity) +endif() + add_subdirectory(tutorial-1-camerapreview) add_subdirectory(tutorial-2-mixedprocessing) add_subdirectory(tutorial-3-cameracontrol) diff --git a/samples/android/native-activity/AndroidManifest.xml b/samples/android/native-activity/AndroidManifest.xml new file mode 100644 index 0000000000..e7b1f1217d --- /dev/null +++ b/samples/android/native-activity/AndroidManifest.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/android/native-activity/jni/Android.mk b/samples/android/native-activity/jni/Android.mk new file mode 100644 index 0000000000..6b1564aa90 --- /dev/null +++ b/samples/android/native-activity/jni/Android.mk @@ -0,0 +1,12 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := native_activity +LOCAL_SRC_FILES := native.cpp +LOCAL_LDLIBS := -lm -llog -landroid +LOCAL_STATIC_LIBRARIES := android_native_app_glue + +include $(BUILD_SHARED_LIBRARY) + +$(call import-module,android/native_app_glue) diff --git a/samples/android/native-activity/jni/Application.mk b/samples/android/native-activity/jni/Application.mk new file mode 100644 index 0000000000..a89e12df19 --- /dev/null +++ b/samples/android/native-activity/jni/Application.mk @@ -0,0 +1,2 @@ +APP_ABI := armeabi-v7a +APP_PLATFORM := android-9 diff --git a/samples/android/native-activity/jni/native.cpp b/samples/android/native-activity/jni/native.cpp new file mode 100644 index 0000000000..494ad66bbe --- /dev/null +++ b/samples/android/native-activity/jni/native.cpp @@ -0,0 +1,222 @@ +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#define LOG_TAG "OCV:libnative_activity" +#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) +#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) +#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__) +#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) + +struct Engine +{ + android_app* app; + cv::Ptr capture; +}; + +cv::Size calcOptimalResolution(const char* supported, int width, int height) +{ + int frameWidth = 0; + int frameHeight = 0; + + size_t prev_idx = 0; + size_t idx = 0; + float minDiff = FLT_MAX; + + do + { + int tmp_width; + int tmp_height; + + prev_idx = idx; + while ((supported[idx] != '\0') && (supported[idx] != ',')) + idx++; + + sscanf(&supported[prev_idx], "%dx%d", &tmp_width, &tmp_height); + + int w_diff = width - tmp_width; + int h_diff = height - tmp_height; + if ((h_diff >= 0) && (w_diff >= 0)) + { + if ((h_diff <= minDiff) && (tmp_height <= 720)) + { + frameWidth = tmp_width; + frameHeight = tmp_height; + minDiff = h_diff; + } + } + + idx++; // to skip coma symbol + + } while(supported[idx-1] != '\0'); + + return cv::Size(frameWidth, frameHeight); +} + +static void engine_draw_frame(Engine* engine, const cv::Mat& frame) +{ + if (engine->app->window == NULL) + { + return; // No window. + } + + ANativeWindow_Buffer buffer; + if (ANativeWindow_lock(engine->app->window, &buffer, NULL) < 0) + { + LOGW("Unable to lock window buffer"); + return; + } + + void* pixels = buffer.bits; + + for (int yy = 0; yy < std::min(frame.rows, buffer.height); yy++) + { + unsigned char* line = (unsigned char*)pixels; + memcpy(line, frame.ptr(yy), + std::min(frame.cols, buffer.width)*4*sizeof(unsigned char)); + // go to next line + pixels = (int32_t*)pixels + buffer.stride; + } + ANativeWindow_unlockAndPost(engine->app->window); +} + +static void engine_handle_cmd(android_app* app, int32_t cmd) +{ + Engine* engine = (Engine*)app->userData; + switch (cmd) + { + case APP_CMD_INIT_WINDOW: + if (app->window != NULL) + { + LOGI("APP_CMD_INIT_WINDOW"); + + engine->capture = new cv::VideoCapture(0); + + union {double prop; const char* name;} u; + u.prop = engine->capture->get(CV_CAP_PROP_SUPPORTED_PREVIEW_SIZES_STRING); + + cv::Size resolution; + if (u.name) + resolution = calcOptimalResolution(u.name, + ANativeWindow_getWidth(app->window), + ANativeWindow_getHeight(app->window)); + else + { + LOGE("Cannot get supported camera resolutions"); + resolution = cv::Size(ANativeWindow_getWidth(app->window), + ANativeWindow_getHeight(app->window)); + } + + if ((resolution.width != 0) && (resolution.height != 0)) + { + engine->capture->set(CV_CAP_PROP_FRAME_WIDTH, resolution.width); + engine->capture->set(CV_CAP_PROP_FRAME_HEIGHT, resolution.height); + } + + if (ANativeWindow_setBuffersGeometry(app->window, resolution.width, + resolution.height, WINDOW_FORMAT_RGBA_8888) < 0) + { + LOGE("Cannot set pixel format!"); + return; + } + + LOGI("Camera initialized at resoution %dx%d", resolution.width, resolution.height); + } + break; + case APP_CMD_TERM_WINDOW: + LOGI("APP_CMD_TERM_WINDOW"); + + engine->capture->release(); + break; + } +} + +void android_main(android_app* app) +{ + Engine engine; + + // Make sure glue isn't stripped. + app_dummy(); + + memset(&engine, 0, sizeof(engine)); + app->userData = &engine; + app->onAppCmd = engine_handle_cmd; + engine.app = app; + + float fps = 0; + cv::Mat drawingFrame; + bool firstFrame = true; + std::queue timeQueue; + + // loop waiting for stuff to do. + while (1) + { + // Read all pending events. + int ident; + int events; + android_poll_source* source; + + // Process system events + while ((ident=ALooper_pollAll(0, NULL, &events, (void**)&source)) >= 0) + { + // Process this event. + if (source != NULL) + { + source->process(app, source); + } + + // Check if we are exiting. + if (app->destroyRequested != 0) + { + LOGI("Engine thread destroy requested!"); + return; + } + } + + int64 then; + int64 now = cv::getTickCount(); + timeQueue.push(now); + + // Capture frame from camera and draw it + if (!engine.capture.empty()) + { + if (engine.capture->grab()) + { + engine.capture->retrieve(drawingFrame, CV_CAP_ANDROID_COLOR_FRAME_RGBA); +// if (firstFrame) +// { +// firstFrame = false; +// engine.capture->set(CV_CAP_PROP_AUTOGRAB, 1); +// } + } + char buffer[256]; + sprintf(buffer, "Display performance: %dx%d @ %.3f", drawingFrame.cols, drawingFrame.rows, fps); + cv::putText(drawingFrame, std::string(buffer), cv::Point(8,64), cv::FONT_HERSHEY_COMPLEX_SMALL, 1, cv::Scalar(0,255,0,255)); + engine_draw_frame(&engine, drawingFrame); + } + + if (timeQueue.size() >= 2) + then = timeQueue.front(); + else + then = 0; + + if (timeQueue.size() >= 25) + timeQueue.pop(); + + fps = 1.f*timeQueue.size()*(float)cv::getTickFrequency()/(float)(now-then); + } +} diff --git a/samples/android/native-activity/res/drawable/icon.png b/samples/android/native-activity/res/drawable/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..630454927b592eb585c21527c430fc739c7970a6 GIT binary patch literal 1997 zcmV;;2Qv7HP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf00007bV*G`2iyk& z2s4Z(uWcvB1k+?B|HcZ5+p(*;Q^&-8AtzSnVCK7?)^Xiwf0*7z0ZN;t#z9i`sgtpqdV3hDNF*c2bKc!qcQaX zUny)Tz}^_l!dPca%!U9i64N>!i~1_h=?F58~*Mqs?aUag-wNp3eJ zaArHlobMV1PMO^yg*noOAUz|E0i{}8`nIiHOW|~F4mjoR_GH_vZVKN?bHNdXe;To> zxdyn_TnD>62p5lGlR~e9qrf7C+ui6sX@;J1@Mx>Yo=qMBRs~*)bDAoXUZYSHTab?f z_PACCXF@bcF}lW`X>mi~9D%@SGZ2{F%CTpbhLf>?v)%*vE3D~)z{*wz=t^t3pfEGA zffL(4AU5DX%yUkKoB_Jb(8oFW!NI-`j{z#&Z&^_sT-34vIXFYp`=GEPgYAu)4n9D4 z%K`*+8v7m2z|O!Kz|Xto?PB|!;VL`0G=ur`jDlQ$D=+i6dSt)j#Si?i#3rh3ZDkkx z+9TWVDcFEP;8fsZmts4LZyQ^=NS&&oMq^DBPd9*r!p~~YrdwMdQuxcK)CgcvlC7iQ z6m}XDL=_ke!d;S<2IvOy5aI>4B-sk!6i-qAqn6i#qR%}BH;aqaE~#zv6|u2ViZHn? z1hW8E8rkz`nyn$2WU0dhK4^p<)W{{jH|2^S^#FZ&jV&V)7;HC58VOgls*{S?bCuB! zgJG~P)&TrE+Oa9jPq^~G`MQI^ISDar1?}7f7D?&qi-Zc{Oivqep0%xlm22B7?$lt? zRDoZ$&ZSsjO2nE0ft%CR$aVrKp5WRX7^zue>Cw3+QGx=M@MFBYs{CEWmLZ zN*9hpz)s*B96QRjjj`Qi_;Vb>Z73h0DK9}$-axr}l%1BFSp9)x9Ky;`(^n%*$`F!V zkY*oPaAK+6&unXUeSit`5c;F3iU&9)kOVILi%-C3#za9jc>jUr;Wvs~#jZ#FaZ!2fi34Sb1N@BsFCj&@J zs;eb(o@Ffe=D?d6qPKGdXKQjn9~5j94Pu>ge`)`61V~3frX{l7>dTEi%6<8;N9K*(u}%^bWomltk*Vp@k|^lo)yA?qH}(jBlCHBo51XA|gNf(* zoeh<>k{r9Y4)pw$!k7FX&+PyB(?mq~(*^;K7{UQF&X#s!ILS zHX&7zhmyZ|_z=x$C7sRWW=r7+&daHU&gPWWQt)uC*X>tEFZ6J;H6WaAcCCQRo2VjP z>v8^kmJJ*U_eqdHY-p9+xixW&Umgf^mpLS>_nMj zvaJlD2pv8o7#@|SuT=D$XZ)5=GJyZFvEPhNoO#NE^Nc>q2{?8F#Z+({^MQk9zw9zH z=)VjA4HzfT(Fq(eDSwVGl!7_^3!$70OgHG7MYIxpx7Q{~Cgnag|7WoceAizs@IKwlGBBq*Ioi0qby4ylKkgqvR5BcLR&Vy39?8 + + OCV Native Activity + From dc2bca07720392c9a62026bbd5cd5d5a605f6a2d Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Thu, 7 Mar 2013 15:13:30 +0400 Subject: [PATCH 0026/1333] Initialization with Manager instead static link added. --- .../native-activity/AndroidManifest.xml | 21 +++++---- .../android/native-activity/jni/Android.mk | 2 + .../NativeActivity/CvNativeActivity.java | 44 +++++++++++++++++++ 3 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 samples/android/native-activity/src/org/opencv/samples/NativeActivity/CvNativeActivity.java diff --git a/samples/android/native-activity/AndroidManifest.xml b/samples/android/native-activity/AndroidManifest.xml index e7b1f1217d..369bc75027 100644 --- a/samples/android/native-activity/AndroidManifest.xml +++ b/samples/android/native-activity/AndroidManifest.xml @@ -1,28 +1,33 @@ + android:debuggable="true"> + + + + + + + - - - - - + - + diff --git a/samples/android/native-activity/jni/Android.mk b/samples/android/native-activity/jni/Android.mk index 6b1564aa90..720d38b40d 100644 --- a/samples/android/native-activity/jni/Android.mk +++ b/samples/android/native-activity/jni/Android.mk @@ -2,6 +2,8 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) +include ../../sdk/native/jni/OpenCV.mk + LOCAL_MODULE := native_activity LOCAL_SRC_FILES := native.cpp LOCAL_LDLIBS := -lm -llog -landroid diff --git a/samples/android/native-activity/src/org/opencv/samples/NativeActivity/CvNativeActivity.java b/samples/android/native-activity/src/org/opencv/samples/NativeActivity/CvNativeActivity.java new file mode 100644 index 0000000000..d8e437533e --- /dev/null +++ b/samples/android/native-activity/src/org/opencv/samples/NativeActivity/CvNativeActivity.java @@ -0,0 +1,44 @@ +package org.opencv.samples.NativeActivity; + +import org.opencv.android.BaseLoaderCallback; +import org.opencv.android.LoaderCallbackInterface; +import org.opencv.android.OpenCVLoader; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; + +public class CvNativeActivity extends Activity { + private static final String TAG = "OCVSample::Activity"; + + private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { + @Override + public void onManagerConnected(int status) { + switch (status) { + case LoaderCallbackInterface.SUCCESS: + { + Log.i(TAG, "OpenCV loaded successfully"); + System.loadLibrary("native_activity"); + Intent intent = new Intent(CvNativeActivity.this, android.app.NativeActivity.class); + CvNativeActivity.this.startActivity(intent); + } break; + default: + { + super.onManagerConnected(status); + } break; + } + } + }; + + public CvNativeActivity() { + Log.i(TAG, "Instantiated new " + this.getClass()); + } + + @Override + public void onResume() + { + super.onResume(); + OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback); + } +} \ No newline at end of file From fca1f006d833d966803341296522de0506127622 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Mon, 18 Mar 2013 12:12:17 +0400 Subject: [PATCH 0027/1333] Tegra4 support added. --- .../jni/BinderComponent/HardwareDetector.cpp | 15 +++---------- .../jni/BinderComponent/HardwareDetector.h | 1 + .../jni/BinderComponent/TegraDetector.cpp | 8 +++++++ .../NativeService/CommonPackageManager.cpp | 5 +++-- .../engine/jni/NativeService/PackageInfo.cpp | 9 ++++++++ .../engine/jni/NativeService/PackageInfo.h | 3 +-- .../engine/jni/Tests/OpenCVEngineTest.cpp | 18 +++++++++++++++ .../engine/jni/Tests/PackageInfoTest.cpp | 22 +++++++++++++++++++ .../engine/jni/Tests/PackageManagmentTest.cpp | 16 ++++++++++++++ .../org/opencv/engine/HardwareDetector.java | 2 ++ .../engine/manager/ManagerActivity.java | 10 ++++++--- 11 files changed, 90 insertions(+), 19 deletions(-) diff --git a/android/service/engine/jni/BinderComponent/HardwareDetector.cpp b/android/service/engine/jni/BinderComponent/HardwareDetector.cpp index b5e0fa6001..eab49ac5f3 100644 --- a/android/service/engine/jni/BinderComponent/HardwareDetector.cpp +++ b/android/service/engine/jni/BinderComponent/HardwareDetector.cpp @@ -163,22 +163,13 @@ int DetectKnownPlatforms() { int tegra_status = DetectTegra(); - if (3 == tegra_status) + // All Tegra platforms since Tegra3 + if (2 < tegra_status) { - return PLATFORM_TEGRA3; + return PLATFORM_TEGRA + tegra_status - 1; } else { return PLATFORM_UNKNOWN; } - - // NOTE: Uncomment when all Tegras will be supported - /*if (tegra_status > 0) - * { - * return PLATFORM_TEGRA + tegra_status - 1; - } - else - { - return PLATFORM_UNKNOWN; - }*/ } \ No newline at end of file diff --git a/android/service/engine/jni/BinderComponent/HardwareDetector.h b/android/service/engine/jni/BinderComponent/HardwareDetector.h index e049db9c5f..135684418b 100644 --- a/android/service/engine/jni/BinderComponent/HardwareDetector.h +++ b/android/service/engine/jni/BinderComponent/HardwareDetector.h @@ -27,6 +27,7 @@ #define PLATFORM_TEGRA 1L #define PLATFORM_TEGRA2 2L #define PLATFORM_TEGRA3 3L +#define PLATFORM_TEGRA4 4L int DetectKnownPlatforms(); int GetProcessorCount(); diff --git a/android/service/engine/jni/BinderComponent/TegraDetector.cpp b/android/service/engine/jni/BinderComponent/TegraDetector.cpp index f7db1fa85d..3933efe499 100644 --- a/android/service/engine/jni/BinderComponent/TegraDetector.cpp +++ b/android/service/engine/jni/BinderComponent/TegraDetector.cpp @@ -7,6 +7,7 @@ #define KERNEL_CONFIG_TEGRA_MAGIC "CONFIG_ARCH_TEGRA=y" #define KERNEL_CONFIG_TEGRA2_MAGIC "CONFIG_ARCH_TEGRA_2x_SOC=y" #define KERNEL_CONFIG_TEGRA3_MAGIC "CONFIG_ARCH_TEGRA_3x_SOC=y" +#define KERNEL_CONFIG_TEGRA4_MAGIC "CONFIG_ARCH_TEGRA_11x_SOC=y" #define MAX_DATA_LEN 4096 int DetectTegra() @@ -19,9 +20,11 @@ int DetectTegra() const char *tegra_config = KERNEL_CONFIG_TEGRA_MAGIC; const char *tegra2_config = KERNEL_CONFIG_TEGRA2_MAGIC; const char *tegra3_config = KERNEL_CONFIG_TEGRA3_MAGIC; + const char *tegra4_config = KERNEL_CONFIG_TEGRA4_MAGIC; int len = strlen(tegra_config); int len2 = strlen(tegra2_config); int len3 = strlen(tegra3_config); + int len4 = strlen(tegra4_config); while (0 != gzgets(kernelConfig, tmpbuf, KERNEL_CONFIG_MAX_LINE_WIDTH)) { if (0 == strncmp(tmpbuf, tegra_config, len)) @@ -41,6 +44,11 @@ int DetectTegra() break; } + if (0 == strncmp(tmpbuf, tegra4_config, len4)) + { + result = 4; + break; + } } gzclose(kernelConfig); } diff --git a/android/service/engine/jni/NativeService/CommonPackageManager.cpp b/android/service/engine/jni/NativeService/CommonPackageManager.cpp index dbcd8ff689..eaa03d4d82 100644 --- a/android/service/engine/jni/NativeService/CommonPackageManager.cpp +++ b/android/service/engine/jni/NativeService/CommonPackageManager.cpp @@ -197,6 +197,7 @@ std::vector > CommonPackageManager::InitArmRating() result.push_back(std::pair(PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON)); result.push_back(std::pair(PLATFORM_UNKNOWN, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_VFPv3d16 | FEATURES_HAS_NEON)); result.push_back(std::pair(PLATFORM_TEGRA3, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON)); + result.push_back(std::pair(PLATFORM_TEGRA4, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON)); return result; } @@ -218,8 +219,8 @@ std::vector > CommonPackageManager::InitMipsRating() } const std::vector > CommonPackageManager::ArchRatings[] = { - CommonPackageManager::InitArmRating(), - CommonPackageManager::InitIntelRating(), + CommonPackageManager::InitArmRating(), + CommonPackageManager::InitIntelRating(), CommonPackageManager::InitMipsRating() }; diff --git a/android/service/engine/jni/NativeService/PackageInfo.cpp b/android/service/engine/jni/NativeService/PackageInfo.cpp index 2eb8230739..2f8dde043a 100644 --- a/android/service/engine/jni/NativeService/PackageInfo.cpp +++ b/android/service/engine/jni/NativeService/PackageInfo.cpp @@ -18,6 +18,7 @@ map PackageInfo::InitPlatformNameMap() result[PLATFORM_TEGRA] = PLATFORM_TEGRA_NAME; result[PLATFORM_TEGRA2] = PLATFORM_TEGRA2_NAME; result[PLATFORM_TEGRA3] = PLATFORM_TEGRA3_NAME; + result[PLATFORM_TEGRA4] = PLATFORM_TEGRA4_NAME; return result; } @@ -186,6 +187,10 @@ inline int SplitPlatfrom(const vector& features) { result = PLATFORM_TEGRA3; } + else if (PLATFORM_TEGRA4_NAME == tmp) + { + result = PLATFORM_TEGRA4; + } } else { @@ -425,6 +430,10 @@ InstallPath(install_path) { CpuID = ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON; } break; + case PLATFORM_TEGRA4: + { + CpuID = ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON; + } break; } } else diff --git a/android/service/engine/jni/NativeService/PackageInfo.h b/android/service/engine/jni/NativeService/PackageInfo.h index b86ef7a92e..2ce561e2f3 100644 --- a/android/service/engine/jni/NativeService/PackageInfo.h +++ b/android/service/engine/jni/NativeService/PackageInfo.h @@ -12,7 +12,6 @@ #define ARCH_ARMv7_NAME "armv7a" #define ARCH_ARMv8_NAME "armv8" - #define FEATURES_HAS_VFPv3d16_NAME "vfpv3d16" #define FEATURES_HAS_VFPv3_NAME "vfpv3" #define FEATURES_HAS_NEON_NAME "neon" @@ -25,7 +24,7 @@ #define PLATFORM_TEGRA_NAME "tegra" #define PLATFORM_TEGRA2_NAME "tegra2" #define PLATFORM_TEGRA3_NAME "tegra3" - +#define PLATFORM_TEGRA4_NAME "tegra4" class PackageInfo { diff --git a/android/service/engine/jni/Tests/OpenCVEngineTest.cpp b/android/service/engine/jni/Tests/OpenCVEngineTest.cpp index 4e390386fe..ce5159f818 100644 --- a/android/service/engine/jni/Tests/OpenCVEngineTest.cpp +++ b/android/service/engine/jni/Tests/OpenCVEngineTest.cpp @@ -201,6 +201,24 @@ TEST(OpenCVEngineTest, GetPathForCompatiblePackage2) #endif } +TEST(OpenCVEngineTest, GetPathForCompatiblePackage3) +{ + sp Engine = InitConnect(); + Starter.PackageManager->InstalledPackages.clear(); + Starter.PackageManager->InstallVersion(2040400, PLATFORM_TEGRA4, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON); + EXPECT_FALSE(NULL == Engine.get()); + String16 result = Engine->GetLibPathByVersion(String16("2.4")); + #ifdef __SUPPORT_TEGRA3 + EXPECT_STREQ("/data/data/org.opencv.lib_v24_tegra4/lib", String8(result).string()); + #else + #ifdef __SUPPORT_ARMEABI_V7A_FEATURES + EXPECT_STREQ("/data/data/org.opencv.lib_v24_armv7a_neon/lib", String8(result).string()); + #else + EXPECT_STREQ("/data/data/org.opencv.lib_v24_armv7a/lib", String8(result).string()); + #endif + #endif +} + TEST(OpenCVEngineTest, InstallAndGetVersion) { sp Engine = InitConnect(); diff --git a/android/service/engine/jni/Tests/PackageInfoTest.cpp b/android/service/engine/jni/Tests/PackageInfoTest.cpp index 6bc84856ce..6cbb069431 100644 --- a/android/service/engine/jni/Tests/PackageInfoTest.cpp +++ b/android/service/engine/jni/Tests/PackageInfoTest.cpp @@ -85,6 +85,21 @@ TEST(PackageInfo, FullNameTegra3) #endif } +TEST(PackageInfo, FullNameTegra4) +{ + PackageInfo info(2040400, PLATFORM_TEGRA4, ARCH_ARMv7 | FEATURES_HAS_NEON); + string name = info.GetFullName(); + #ifdef __SUPPORT_TEGRA3 + EXPECT_STREQ("org.opencv.lib_v24_tegra4", name.c_str()); + #else + #ifdef __SUPPORT_ARMEABI_V7A_FEATURES + EXPECT_STREQ("org.opencv.lib_v24_armv7a_neon", name.c_str()); + #else + EXPECT_STREQ("org.opencv.lib_v24_armv7a", name.c_str()); + #endif + #endif +} + TEST(PackageInfo, FullNameX86SSE2) { PackageInfo info(2030000, PLATFORM_UNKNOWN, ARCH_X86 | FEATURES_HAS_SSE2); @@ -148,6 +163,13 @@ TEST(PackageInfo, Tegra3FromFullName) EXPECT_EQ(PLATFORM_TEGRA3, info.GetPlatform()); } +TEST(PackageInfo, Tegra4FromFullName) +{ + PackageInfo info("org.opencv.lib_v24_tegra4", "/data/data/org.opencv.lib_v24_tegra4"); + EXPECT_EQ(2040000, info.GetVersion()); + EXPECT_EQ(PLATFORM_TEGRA4, info.GetPlatform()); +} + #ifdef __SUPPORT_MIPS TEST(PackageInfo, MipsFromFullName) { diff --git a/android/service/engine/jni/Tests/PackageManagmentTest.cpp b/android/service/engine/jni/Tests/PackageManagmentTest.cpp index f9ccb74844..e21dcf7604 100644 --- a/android/service/engine/jni/Tests/PackageManagmentTest.cpp +++ b/android/service/engine/jni/Tests/PackageManagmentTest.cpp @@ -102,6 +102,22 @@ TEST(PackageManager, GetPackagePathForTegra3) #endif } +TEST(PackageManager, GetPackagePathForTegra4) +{ + PackageManagerStub pm; + EXPECT_TRUE(pm.InstallVersion(2040400, PLATFORM_TEGRA4, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON)); + string path = pm.GetPackagePathByVersion(2040400, PLATFORM_TEGRA4, ARCH_ARMv7 | FEATURES_HAS_VFPv3 | FEATURES_HAS_NEON); + #ifdef __SUPPORT_TEGRA3 + EXPECT_STREQ("/data/data/org.opencv.lib_v24_tegra4/lib", path.c_str()); + #else + #ifdef __SUPPORT_ARMEABI_V7A_FEATURES + EXPECT_STREQ("/data/data/org.opencv.lib_v24_armv7a_neon/lib", path.c_str()); + #else + EXPECT_STREQ("/data/data/org.opencv.lib_v24_armv7a/lib", path.c_str()); + #endif + #endif +} + #ifdef __SUPPORT_MIPS TEST(PackageManager, GetPackagePathForMips) { diff --git a/android/service/engine/src/org/opencv/engine/HardwareDetector.java b/android/service/engine/src/org/opencv/engine/HardwareDetector.java index 7e2a6135f9..67320865af 100644 --- a/android/service/engine/src/org/opencv/engine/HardwareDetector.java +++ b/android/service/engine/src/org/opencv/engine/HardwareDetector.java @@ -33,6 +33,8 @@ public class HardwareDetector public static final int PLATFORM_TEGRA = 1; public static final int PLATFORM_TEGRA2 = 2; public static final int PLATFORM_TEGRA3 = 3; + public static final int PLATFORM_TEGRA4 = 4; + public static final int PLATFORM_UNKNOWN = 0; diff --git a/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java b/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java index fad2797727..5213d91495 100644 --- a/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java +++ b/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java @@ -83,10 +83,14 @@ public class ManagerActivity extends Activity { HardwarePlatformView.setText("Tegra 2"); } - else + else if (HardwareDetector.PLATFORM_TEGRA3 == Platfrom) { HardwarePlatformView.setText("Tegra 3"); } + else + { + HardwarePlatformView.setText("Tegra 4"); + } } else { @@ -367,10 +371,10 @@ public class ManagerActivity extends Activity temp.put("Version", NormalizeVersion(OpenCVersion, VersionName)); // HACK: OpenCV Manager for Armv7-a Neon already has Tegra3 optimizations // that is enabled on proper hardware - if (HardwareDetector.DetectKnownPlatforms() == HardwareDetector.PLATFORM_TEGRA3 && + if (HardwareDetector.DetectKnownPlatforms() >= HardwareDetector.PLATFORM_TEGRA3 && HardwareName.equals("armv7a neon ") && Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { - temp.put("Hardware", "Tegra 3"); + temp.put("Hardware", "Tegra"); if (Tags == null) { Tags = "optimized"; From abc9ef68094d6d1b8118565b01f2dea79f47e170 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Fri, 15 Mar 2013 14:09:10 +0400 Subject: [PATCH 0028/1333] moved utility functions from gpu_perf_test and gpu_test to ts module --- modules/gpu/perf/perf_calib3d.cpp | 1 + modules/gpu/perf/perf_denoising.cpp | 1 + modules/gpu/perf/perf_features2d.cpp | 100 +---- modules/gpu/perf/perf_filters.cpp | 1 + modules/gpu/perf/perf_labeling.cpp | 1 + modules/gpu/perf/perf_main.cpp | 67 +-- modules/gpu/perf/perf_matop.cpp | 1 + modules/gpu/perf/perf_objdetect.cpp | 1 + modules/gpu/perf/perf_precomp.hpp | 4 +- modules/gpu/perf/utility.cpp | 184 -------- modules/gpu/perf/utility.hpp | 63 --- modules/gpu/perf4au/main.cpp | 56 +-- modules/gpu/test/main.cpp | 66 --- modules/gpu/test/test_bgfg.cpp | 2 + modules/gpu/test/test_calib3d.cpp | 2 + modules/gpu/test/test_color.cpp | 2 + modules/gpu/test/test_copy_make_border.cpp | 2 + modules/gpu/test/test_core.cpp | 2 + modules/gpu/test/test_denoising.cpp | 2 + modules/gpu/test/test_features2d.cpp | 301 +------------ modules/gpu/test/test_filters.cpp | 2 + modules/gpu/test/test_gpumat.cpp | 2 + modules/gpu/test/test_hough.cpp | 2 + modules/gpu/test/test_imgproc.cpp | 2 + modules/gpu/test/test_objdetect.cpp | 2 + modules/gpu/test/test_opengl.cpp | 2 + modules/gpu/test/test_optflow.cpp | 2 + modules/gpu/test/test_precomp.hpp | 8 +- modules/gpu/test/test_pyramids.cpp | 2 + modules/gpu/test/test_remap.cpp | 2 + modules/gpu/test/test_resize.cpp | 2 + modules/gpu/test/test_stream.cpp | 2 + modules/gpu/test/test_threshold.cpp | 2 + modules/gpu/test/test_warp_affine.cpp | 2 + modules/gpu/test/test_warp_perspective.cpp | 2 + modules/gpu/test/utility.cpp | 407 ----------------- modules/gpu/test/utility.hpp | 332 -------------- modules/superres/perf/perf_main.cpp | 4 +- modules/superres/perf/perf_precomp.hpp | 1 + modules/superres/perf/perf_superres.cpp | 12 - modules/ts/CMakeLists.txt | 4 + modules/ts/include/opencv2/ts/gpu_perf.hpp | 68 +++ modules/ts/include/opencv2/ts/gpu_test.hpp | 307 +++++++++++++ modules/ts/src/gpu_perf.cpp | 313 ++++++++++++++ modules/ts/src/gpu_test.cpp | 479 +++++++++++++++++++++ 45 files changed, 1232 insertions(+), 1590 deletions(-) delete mode 100644 modules/gpu/perf/utility.cpp delete mode 100644 modules/gpu/perf/utility.hpp delete mode 100644 modules/gpu/test/utility.cpp delete mode 100644 modules/gpu/test/utility.hpp create mode 100644 modules/ts/include/opencv2/ts/gpu_perf.hpp create mode 100644 modules/ts/include/opencv2/ts/gpu_test.hpp create mode 100644 modules/ts/src/gpu_perf.cpp create mode 100644 modules/ts/src/gpu_test.cpp diff --git a/modules/gpu/perf/perf_calib3d.cpp b/modules/gpu/perf/perf_calib3d.cpp index b174d9a12e..3631236feb 100644 --- a/modules/gpu/perf/perf_calib3d.cpp +++ b/modules/gpu/perf/perf_calib3d.cpp @@ -2,6 +2,7 @@ using namespace std; using namespace testing; +using namespace perf; ////////////////////////////////////////////////////////////////////// // StereoBM diff --git a/modules/gpu/perf/perf_denoising.cpp b/modules/gpu/perf/perf_denoising.cpp index 6f03994bd9..e4ce9f3c38 100644 --- a/modules/gpu/perf/perf_denoising.cpp +++ b/modules/gpu/perf/perf_denoising.cpp @@ -2,6 +2,7 @@ using namespace std; using namespace testing; +using namespace perf; #define GPU_DENOISING_IMAGE_SIZES testing::Values(perf::szVGA, perf::sz720p) diff --git a/modules/gpu/perf/perf_features2d.cpp b/modules/gpu/perf/perf_features2d.cpp index 480f582383..c6b1f598a4 100644 --- a/modules/gpu/perf/perf_features2d.cpp +++ b/modules/gpu/perf/perf_features2d.cpp @@ -2,105 +2,7 @@ using namespace std; using namespace testing; - -struct KeypointIdxCompare -{ - std::vector* keypoints; - - explicit KeypointIdxCompare(std::vector* _keypoints) : keypoints(_keypoints) {} - - bool operator ()(size_t i1, size_t i2) const - { - cv::KeyPoint kp1 = (*keypoints)[i1]; - cv::KeyPoint kp2 = (*keypoints)[i2]; - if (kp1.pt.x != kp2.pt.x) - return kp1.pt.x < kp2.pt.x; - if (kp1.pt.y != kp2.pt.y) - return kp1.pt.y < kp2.pt.y; - if (kp1.response != kp2.response) - return kp1.response < kp2.response; - return kp1.octave < kp2.octave; - } -}; - -static void sortKeyPoints(std::vector& keypoints, cv::InputOutputArray _descriptors = cv::noArray()) -{ - std::vector indexies(keypoints.size()); - for (size_t i = 0; i < indexies.size(); ++i) - indexies[i] = i; - - std::sort(indexies.begin(), indexies.end(), KeypointIdxCompare(&keypoints)); - - std::vector new_keypoints; - cv::Mat new_descriptors; - - new_keypoints.resize(keypoints.size()); - - cv::Mat descriptors; - if (_descriptors.needed()) - { - descriptors = _descriptors.getMat(); - new_descriptors.create(descriptors.size(), descriptors.type()); - } - - for (size_t i = 0; i < indexies.size(); ++i) - { - size_t new_idx = indexies[i]; - new_keypoints[i] = keypoints[new_idx]; - if (!new_descriptors.empty()) - descriptors.row((int) new_idx).copyTo(new_descriptors.row((int) i)); - } - - keypoints.swap(new_keypoints); - if (_descriptors.needed()) - new_descriptors.copyTo(_descriptors); -} - -////////////////////////////////////////////////////////////////////// -// SURF - -DEF_PARAM_TEST_1(Image, string); - -PERF_TEST_P(Image, Features2D_SURF, - Values("gpu/perf/aloe.png")) -{ - declare.time(50.0); - - const cv::Mat img = readImage(GetParam(), cv::IMREAD_GRAYSCALE); - ASSERT_FALSE(img.empty()); - - if (PERF_RUN_GPU()) - { - cv::gpu::SURF_GPU d_surf; - - const cv::gpu::GpuMat d_img(img); - cv::gpu::GpuMat d_keypoints, d_descriptors; - - TEST_CYCLE() d_surf(d_img, cv::gpu::GpuMat(), d_keypoints, d_descriptors); - - std::vector gpu_keypoints; - d_surf.downloadKeypoints(d_keypoints, gpu_keypoints); - - cv::Mat gpu_descriptors(d_descriptors); - - sortKeyPoints(gpu_keypoints, gpu_descriptors); - - SANITY_CHECK_KEYPOINTS(gpu_keypoints); - SANITY_CHECK(gpu_descriptors, 1e-3); - } - else - { - cv::SURF surf; - - std::vector cpu_keypoints; - cv::Mat cpu_descriptors; - - TEST_CYCLE() surf(img, cv::noArray(), cpu_keypoints, cpu_descriptors); - - SANITY_CHECK_KEYPOINTS(cpu_keypoints); - SANITY_CHECK(cpu_descriptors); - } -} +using namespace perf; ////////////////////////////////////////////////////////////////////// // FAST diff --git a/modules/gpu/perf/perf_filters.cpp b/modules/gpu/perf/perf_filters.cpp index 3516954a6c..a343d10570 100644 --- a/modules/gpu/perf/perf_filters.cpp +++ b/modules/gpu/perf/perf_filters.cpp @@ -2,6 +2,7 @@ using namespace std; using namespace testing; +using namespace perf; ////////////////////////////////////////////////////////////////////// // Blur diff --git a/modules/gpu/perf/perf_labeling.cpp b/modules/gpu/perf/perf_labeling.cpp index f3ad12c949..cbc9ff0a2f 100644 --- a/modules/gpu/perf/perf_labeling.cpp +++ b/modules/gpu/perf/perf_labeling.cpp @@ -2,6 +2,7 @@ using namespace std; using namespace testing; +using namespace perf; DEF_PARAM_TEST_1(Image, string); diff --git a/modules/gpu/perf/perf_main.cpp b/modules/gpu/perf/perf_main.cpp index 312b744482..07c1b519cc 100644 --- a/modules/gpu/perf/perf_main.cpp +++ b/modules/gpu/perf/perf_main.cpp @@ -1,70 +1,5 @@ #include "perf_precomp.hpp" -static void printOsInfo() -{ -#if defined _WIN32 -# if defined _WIN64 - printf("[----------]\n[ GPU INFO ] \tRun on OS Windows x64.\n[----------]\n"), fflush(stdout); -# else - printf("[----------]\n[ GPU INFO ] \tRun on OS Windows x32.\n[----------]\n"), fflush(stdout); -# endif -#elif defined linux -# if defined _LP64 - printf("[----------]\n[ GPU INFO ] \tRun on OS Linux x64.\n[----------]\n"), fflush(stdout); -# else - printf("[----------]\n[ GPU INFO ] \tRun on OS Linux x32.\n[----------]\n"), fflush(stdout); -# endif -#elif defined __APPLE__ -# if defined _LP64 - printf("[----------]\n[ GPU INFO ] \tRun on OS Apple x64.\n[----------]\n"), fflush(stdout); -# else - printf("[----------]\n[ GPU INFO ] \tRun on OS Apple x32.\n[----------]\n"), fflush(stdout); -# endif -#endif - -} - -static void printCudaInfo() -{ - printOsInfo(); -#ifndef HAVE_CUDA - printf("[----------]\n[ GPU INFO ] \tOpenCV was built without CUDA support.\n[----------]\n"), fflush(stdout); -#else - int driver; - cudaDriverGetVersion(&driver); - - printf("[----------]\n"), fflush(stdout); - printf("[ GPU INFO ] \tCUDA Driver version: %d.\n", driver), fflush(stdout); - printf("[ GPU INFO ] \tCUDA Runtime version: %d.\n", CUDART_VERSION), fflush(stdout); - printf("[----------]\n"), fflush(stdout); - - printf("[----------]\n"), fflush(stdout); - printf("[ GPU INFO ] \tGPU module was compiled for the following GPU archs.\n"), fflush(stdout); - printf("[ BIN ] \t%s.\n", CUDA_ARCH_BIN), fflush(stdout); - printf("[ PTX ] \t%s.\n", CUDA_ARCH_PTX), fflush(stdout); - printf("[----------]\n"), fflush(stdout); - - printf("[----------]\n"), fflush(stdout); - int deviceCount = cv::gpu::getCudaEnabledDeviceCount(); - printf("[ GPU INFO ] \tCUDA device count:: %d.\n", deviceCount), fflush(stdout); - printf("[----------]\n"), fflush(stdout); - - for (int i = 0; i < deviceCount; ++i) - { - cv::gpu::DeviceInfo info(i); - - printf("[----------]\n"), fflush(stdout); - printf("[ DEVICE ] \t# %d %s.\n", i, info.name().c_str()), fflush(stdout); - printf("[ ] \tCompute capability: %d.%d\n", (int)info.majorVersion(), (int)info.minorVersion()), fflush(stdout); - printf("[ ] \tMulti Processor Count: %d\n", info.multiProcessorCount()), fflush(stdout); - printf("[ ] \tTotal memory: %d Mb\n", static_cast(static_cast(info.totalMemory() / 1024.0) / 1024.0)), fflush(stdout); - printf("[ ] \tFree memory: %d Mb\n", static_cast(static_cast(info.freeMemory() / 1024.0) / 1024.0)), fflush(stdout); - if (!info.isCompatible()) - printf("[ GPU INFO ] \tThis device is NOT compatible with current GPU module build\n"); - printf("[----------]\n"), fflush(stdout); - } - -#endif -} +using namespace perf; CV_PERF_TEST_MAIN(gpu, printCudaInfo()) diff --git a/modules/gpu/perf/perf_matop.cpp b/modules/gpu/perf/perf_matop.cpp index 1696e3a7eb..f2803f0f2c 100644 --- a/modules/gpu/perf/perf_matop.cpp +++ b/modules/gpu/perf/perf_matop.cpp @@ -2,6 +2,7 @@ using namespace std; using namespace testing; +using namespace perf; ////////////////////////////////////////////////////////////////////// // SetTo diff --git a/modules/gpu/perf/perf_objdetect.cpp b/modules/gpu/perf/perf_objdetect.cpp index 969ac10762..51c8695d1f 100644 --- a/modules/gpu/perf/perf_objdetect.cpp +++ b/modules/gpu/perf/perf_objdetect.cpp @@ -2,6 +2,7 @@ using namespace std; using namespace testing; +using namespace perf; /////////////////////////////////////////////////////////////// // HOG diff --git a/modules/gpu/perf/perf_precomp.hpp b/modules/gpu/perf/perf_precomp.hpp index 4dca93c442..c1edaf4642 100644 --- a/modules/gpu/perf/perf_precomp.hpp +++ b/modules/gpu/perf/perf_precomp.hpp @@ -20,6 +20,7 @@ #include "opencv2/ts/ts.hpp" #include "opencv2/ts/ts_perf.hpp" +#include "opencv2/ts/gpu_perf.hpp" #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" @@ -27,12 +28,9 @@ #include "opencv2/calib3d/calib3d.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/video/video.hpp" -#include "opencv2/nonfree/nonfree.hpp" #include "opencv2/legacy/legacy.hpp" #include "opencv2/photo/photo.hpp" -#include "utility.hpp" - #ifdef GTEST_CREATE_SHARED_LIBRARY #error no modules except ts should have GTEST_CREATE_SHARED_LIBRARY defined #endif diff --git a/modules/gpu/perf/utility.cpp b/modules/gpu/perf/utility.cpp deleted file mode 100644 index 16c61e0c7d..0000000000 --- a/modules/gpu/perf/utility.cpp +++ /dev/null @@ -1,184 +0,0 @@ -#include "perf_precomp.hpp" - -using namespace std; -using namespace cv; - -Mat readImage(const string& fileName, int flags) -{ - return imread(perf::TestBase::getDataPath(fileName), flags); -} - -void PrintTo(const CvtColorInfo& info, ostream* os) -{ - static const char* str[] = - { - "BGR2BGRA", - "BGRA2BGR", - "BGR2RGBA", - "RGBA2BGR", - "BGR2RGB", - "BGRA2RGBA", - - "BGR2GRAY", - "RGB2GRAY", - "GRAY2BGR", - "GRAY2BGRA", - "BGRA2GRAY", - "RGBA2GRAY", - - "BGR2BGR565", - "RGB2BGR565", - "BGR5652BGR", - "BGR5652RGB", - "BGRA2BGR565", - "RGBA2BGR565", - "BGR5652BGRA", - "BGR5652RGBA", - - "GRAY2BGR565", - "BGR5652GRAY", - - "BGR2BGR555", - "RGB2BGR555", - "BGR5552BGR", - "BGR5552RGB", - "BGRA2BGR555", - "RGBA2BGR555", - "BGR5552BGRA", - "BGR5552RGBA", - - "GRAY2BGR555", - "BGR5552GRAY", - - "BGR2XYZ", - "RGB2XYZ", - "XYZ2BGR", - "XYZ2RGB", - - "BGR2YCrCb", - "RGB2YCrCb", - "YCrCb2BGR", - "YCrCb2RGB", - - "BGR2HSV", - "RGB2HSV", - - "", - "", - - "BGR2Lab", - "RGB2Lab", - - "BayerBG2BGR", - "BayerGB2BGR", - "BayerRG2BGR", - "BayerGR2BGR", - - "BGR2Luv", - "RGB2Luv", - - "BGR2HLS", - "RGB2HLS", - - "HSV2BGR", - "HSV2RGB", - - "Lab2BGR", - "Lab2RGB", - "Luv2BGR", - "Luv2RGB", - - "HLS2BGR", - "HLS2RGB", - - "BayerBG2BGR_VNG", - "BayerGB2BGR_VNG", - "BayerRG2BGR_VNG", - "BayerGR2BGR_VNG", - - "BGR2HSV_FULL", - "RGB2HSV_FULL", - "BGR2HLS_FULL", - "RGB2HLS_FULL", - - "HSV2BGR_FULL", - "HSV2RGB_FULL", - "HLS2BGR_FULL", - "HLS2RGB_FULL", - - "LBGR2Lab", - "LRGB2Lab", - "LBGR2Luv", - "LRGB2Luv", - - "Lab2LBGR", - "Lab2LRGB", - "Luv2LBGR", - "Luv2LRGB", - - "BGR2YUV", - "RGB2YUV", - "YUV2BGR", - "YUV2RGB", - - "BayerBG2GRAY", - "BayerGB2GRAY", - "BayerRG2GRAY", - "BayerGR2GRAY", - - //YUV 4:2:0 formats family - "YUV2RGB_NV12", - "YUV2BGR_NV12", - "YUV2RGB_NV21", - "YUV2BGR_NV21", - - "YUV2RGBA_NV12", - "YUV2BGRA_NV12", - "YUV2RGBA_NV21", - "YUV2BGRA_NV21", - - "YUV2RGB_YV12", - "YUV2BGR_YV12", - "YUV2RGB_IYUV", - "YUV2BGR_IYUV", - - "YUV2RGBA_YV12", - "YUV2BGRA_YV12", - "YUV2RGBA_IYUV", - "YUV2BGRA_IYUV", - - "YUV2GRAY_420", - - //YUV 4:2:2 formats family - "YUV2RGB_UYVY", - "YUV2BGR_UYVY", - "YUV2RGB_VYUY", - "YUV2BGR_VYUY", - - "YUV2RGBA_UYVY", - "YUV2BGRA_UYVY", - "YUV2RGBA_VYUY", - "YUV2BGRA_VYUY", - - "YUV2RGB_YUY2", - "YUV2BGR_YUY2", - "YUV2RGB_YVYU", - "YUV2BGR_YVYU", - - "YUV2RGBA_YUY2", - "YUV2BGRA_YUY2", - "YUV2RGBA_YVYU", - "YUV2BGRA_YVYU", - - "YUV2GRAY_UYVY", - "YUV2GRAY_YUY2", - - // alpha premultiplication - "RGBA2mRGBA", - "mRGBA2RGBA", - - "COLORCVT_MAX" - }; - - *os << str[info.code]; -} diff --git a/modules/gpu/perf/utility.hpp b/modules/gpu/perf/utility.hpp deleted file mode 100644 index cff4cdd77d..0000000000 --- a/modules/gpu/perf/utility.hpp +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef __OPENCV_PERF_GPU_UTILITY_HPP__ -#define __OPENCV_PERF_GPU_UTILITY_HPP__ - -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/ts/ts_perf.hpp" - -cv::Mat readImage(const std::string& fileName, int flags = cv::IMREAD_COLOR); - -using perf::MatType; -using perf::MatDepth; - -CV_ENUM(BorderMode, cv::BORDER_REFLECT101, cv::BORDER_REPLICATE, cv::BORDER_CONSTANT, cv::BORDER_REFLECT, cv::BORDER_WRAP) -#define ALL_BORDER_MODES testing::ValuesIn(BorderMode::all()) - -CV_ENUM(Interpolation, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC, cv::INTER_AREA) -#define ALL_INTERPOLATIONS testing::ValuesIn(Interpolation::all()) - -CV_ENUM(NormType, cv::NORM_INF, cv::NORM_L1, cv::NORM_L2, cv::NORM_HAMMING, cv::NORM_MINMAX) - -enum { Gray = 1, TwoChannel = 2, BGR = 3, BGRA = 4 }; -CV_ENUM(MatCn, Gray, TwoChannel, BGR, BGRA) -#define GPU_CHANNELS_1_3_4 testing::Values(MatCn(Gray), MatCn(BGR), MatCn(BGRA)) -#define GPU_CHANNELS_1_3 testing::Values(MatCn(Gray), MatCn(BGR)) - -struct CvtColorInfo -{ - int scn; - int dcn; - int code; - - CvtColorInfo() {} - explicit CvtColorInfo(int scn_, int dcn_, int code_) : scn(scn_), dcn(dcn_), code(code_) {} -}; -void PrintTo(const CvtColorInfo& info, std::ostream* os); - -#define GET_PARAM(k) std::tr1::get< k >(GetParam()) - -#define DEF_PARAM_TEST(name, ...) typedef ::perf::TestBaseWithParam< std::tr1::tuple< __VA_ARGS__ > > name -#define DEF_PARAM_TEST_1(name, param_type) typedef ::perf::TestBaseWithParam< param_type > name - -DEF_PARAM_TEST_1(Sz, cv::Size); -typedef perf::Size_MatType Sz_Type; -DEF_PARAM_TEST(Sz_Depth, cv::Size, MatDepth); -DEF_PARAM_TEST(Sz_Depth_Cn, cv::Size, MatDepth, MatCn); - -#define GPU_TYPICAL_MAT_SIZES testing::Values(perf::sz720p, perf::szSXGA, perf::sz1080p) - -#define FAIL_NO_CPU() FAIL() << "No such CPU implementation analogy" - -#define GPU_SANITY_CHECK(mat, ...) \ - do{ \ - cv::Mat gpu_##mat(mat); \ - SANITY_CHECK(gpu_##mat, ## __VA_ARGS__); \ - } while(0) - -#define CPU_SANITY_CHECK(mat, ...) \ - do{ \ - cv::Mat cpu_##mat(mat); \ - SANITY_CHECK(cpu_##mat, ## __VA_ARGS__); \ - } while(0) - -#endif // __OPENCV_PERF_GPU_UTILITY_HPP__ diff --git a/modules/gpu/perf4au/main.cpp b/modules/gpu/perf4au/main.cpp index 80d97ea806..f13349ecdd 100644 --- a/modules/gpu/perf4au/main.cpp +++ b/modules/gpu/perf4au/main.cpp @@ -9,69 +9,19 @@ #include "opencv2/legacy/legacy.hpp" #include "opencv2/ts/ts.hpp" #include "opencv2/ts/ts_perf.hpp" - -static void printOsInfo() -{ -#if defined _WIN32 -# if defined _WIN64 - printf("[----------]\n[ GPU INFO ] \tRun on OS Windows x64.\n[----------]\n"); fflush(stdout); -# else - printf("[----------]\n[ GPU INFO ] \tRun on OS Windows x32.\n[----------]\n"); fflush(stdout); -# endif -#elif defined linux -# if defined _LP64 - printf("[----------]\n[ GPU INFO ] \tRun on OS Linux x64.\n[----------]\n"); fflush(stdout); -# else - printf("[----------]\n[ GPU INFO ] \tRun on OS Linux x32.\n[----------]\n"); fflush(stdout); -# endif -#elif defined __APPLE__ -# if defined _LP64 - printf("[----------]\n[ GPU INFO ] \tRun on OS Apple x64.\n[----------]\n"); fflush(stdout); -# else - printf("[----------]\n[ GPU INFO ] \tRun on OS Apple x32.\n[----------]\n"); fflush(stdout); -# endif -#endif -} - -static void printCudaInfo() -{ - const int deviceCount = cv::gpu::getCudaEnabledDeviceCount(); - - printf("[----------]\n"); fflush(stdout); - printf("[ GPU INFO ] \tCUDA device count:: %d.\n", deviceCount); fflush(stdout); - printf("[----------]\n"); fflush(stdout); - - for (int i = 0; i < deviceCount; ++i) - { - cv::gpu::DeviceInfo info(i); - - printf("[----------]\n"); fflush(stdout); - printf("[ DEVICE ] \t# %d %s.\n", i, info.name().c_str()); fflush(stdout); - printf("[ ] \tCompute capability: %d.%d\n", info.majorVersion(), info.minorVersion()); fflush(stdout); - printf("[ ] \tMulti Processor Count: %d\n", info.multiProcessorCount()); fflush(stdout); - printf("[ ] \tTotal memory: %d Mb\n", static_cast(static_cast(info.totalMemory() / 1024.0) / 1024.0)); fflush(stdout); - printf("[ ] \tFree memory: %d Mb\n", static_cast(static_cast(info.freeMemory() / 1024.0) / 1024.0)); fflush(stdout); - if (!info.isCompatible()) - printf("[ GPU INFO ] \tThis device is NOT compatible with current GPU module build\n"); - printf("[----------]\n"); fflush(stdout); - } -} +#include "opencv2/ts/gpu_perf.hpp" int main(int argc, char* argv[]) { - printOsInfo(); - printCudaInfo(); + perf::printCudaInfo(); - perf::Regression::Init("nv_perf_test"); + perf::Regression::Init("gpu_perf4au"); perf::TestBase::Init(argc, argv); testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } -#define DEF_PARAM_TEST(name, ...) typedef ::perf::TestBaseWithParam< std::tr1::tuple< __VA_ARGS__ > > name -#define DEF_PARAM_TEST_1(name, param_type) typedef ::perf::TestBaseWithParam< param_type > name - ////////////////////////////////////////////////////////// // HoughLinesP diff --git a/modules/gpu/test/main.cpp b/modules/gpu/test/main.cpp index 63f891a19a..fbd24c50d8 100644 --- a/modules/gpu/test/main.cpp +++ b/modules/gpu/test/main.cpp @@ -49,71 +49,6 @@ using namespace cv::gpu; using namespace cvtest; using namespace testing; -void printOsInfo() -{ -#if defined _WIN32 -# if defined _WIN64 - cout << "OS: Windows x64 \n" << endl; -# else - cout << "OS: Windows x32 \n" << endl; -# endif -#elif defined linux -# if defined _LP64 - cout << "OS: Linux x64 \n" << endl; -# else - cout << "OS: Linux x32 \n" << endl; -# endif -#elif defined __APPLE__ -# if defined _LP64 - cout << "OS: Apple x64 \n" << endl; -# else - cout << "OS: Apple x32 \n" << endl; -# endif -#endif -} - -void printCudaInfo() -{ -#if !defined HAVE_CUDA || defined(CUDA_DISABLER) - cout << "OpenCV was built without CUDA support \n" << endl; -#else - int driver; - cudaDriverGetVersion(&driver); - - cout << "CUDA Driver version: " << driver << '\n'; - cout << "CUDA Runtime version: " << CUDART_VERSION << '\n'; - - cout << endl; - - cout << "GPU module was compiled for the following GPU archs:" << endl; - cout << " BIN: " << CUDA_ARCH_BIN << '\n'; - cout << " PTX: " << CUDA_ARCH_PTX << '\n'; - - cout << endl; - - int deviceCount = getCudaEnabledDeviceCount(); - cout << "CUDA device count: " << deviceCount << '\n'; - - cout << endl; - - for (int i = 0; i < deviceCount; ++i) - { - DeviceInfo info(i); - - cout << "Device [" << i << "] \n"; - cout << "\t Name: " << info.name() << '\n'; - cout << "\t Compute capability: " << info.majorVersion() << '.' << info.minorVersion()<< '\n'; - cout << "\t Multi Processor Count: " << info.multiProcessorCount() << '\n'; - cout << "\t Total memory: " << static_cast(static_cast(info.totalMemory() / 1024.0) / 1024.0) << " Mb \n"; - cout << "\t Free memory: " << static_cast(static_cast(info.freeMemory() / 1024.0) / 1024.0) << " Mb \n"; - if (!info.isCompatible()) - cout << "\t !!! This device is NOT compatible with current GPU module build \n"; - - cout << endl; - } -#endif -} - int main(int argc, char** argv) { try @@ -133,7 +68,6 @@ int main(int argc, char** argv) return 0; } - printOsInfo(); printCudaInfo(); if (cmd.get("info")) diff --git a/modules/gpu/test/test_bgfg.cpp b/modules/gpu/test/test_bgfg.cpp index ebf0a88afa..aea6eb7189 100644 --- a/modules/gpu/test/test_bgfg.cpp +++ b/modules/gpu/test/test_bgfg.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + ////////////////////////////////////////////////////// // FGDStatModel diff --git a/modules/gpu/test/test_calib3d.cpp b/modules/gpu/test/test_calib3d.cpp index 318de8d898..5a83662e6e 100644 --- a/modules/gpu/test/test_calib3d.cpp +++ b/modules/gpu/test/test_calib3d.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + ////////////////////////////////////////////////////////////////////////// // StereoBM diff --git a/modules/gpu/test/test_color.cpp b/modules/gpu/test/test_color.cpp index 3657107d93..112a749c61 100644 --- a/modules/gpu/test/test_color.cpp +++ b/modules/gpu/test/test_color.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + /////////////////////////////////////////////////////////////////////////////////////////////////////// // cvtColor diff --git a/modules/gpu/test/test_copy_make_border.cpp b/modules/gpu/test/test_copy_make_border.cpp index 0b59fe2d8a..99c565b38a 100644 --- a/modules/gpu/test/test_copy_make_border.cpp +++ b/modules/gpu/test/test_copy_make_border.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + namespace { IMPLEMENT_PARAM_CLASS(Border, int) diff --git a/modules/gpu/test/test_core.cpp b/modules/gpu/test/test_core.cpp index affc30610a..af86efc8ba 100644 --- a/modules/gpu/test/test_core.cpp +++ b/modules/gpu/test/test_core.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + //////////////////////////////////////////////////////////////////////////////// // Merge diff --git a/modules/gpu/test/test_denoising.cpp b/modules/gpu/test/test_denoising.cpp index fe0c548c71..df84817f84 100644 --- a/modules/gpu/test/test_denoising.cpp +++ b/modules/gpu/test/test_denoising.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + //////////////////////////////////////////////////////// // BilateralFilter diff --git a/modules/gpu/test/test_features2d.cpp b/modules/gpu/test/test_features2d.cpp index 3879ac0534..01741d8c6f 100644 --- a/modules/gpu/test/test_features2d.cpp +++ b/modules/gpu/test/test_features2d.cpp @@ -43,306 +43,7 @@ #ifdef HAVE_CUDA -namespace -{ - bool keyPointsEquals(const cv::KeyPoint& p1, const cv::KeyPoint& p2) - { - const double maxPtDif = 1.0; - const double maxSizeDif = 1.0; - const double maxAngleDif = 2.0; - const double maxResponseDif = 0.1; - - double dist = cv::norm(p1.pt - p2.pt); - - if (dist < maxPtDif && - fabs(p1.size - p2.size) < maxSizeDif && - abs(p1.angle - p2.angle) < maxAngleDif && - abs(p1.response - p2.response) < maxResponseDif && - p1.octave == p2.octave && - p1.class_id == p2.class_id) - { - return true; - } - - return false; - } - - struct KeyPointLess : std::binary_function - { - bool operator()(const cv::KeyPoint& kp1, const cv::KeyPoint& kp2) const - { - return kp1.pt.y < kp2.pt.y || (kp1.pt.y == kp2.pt.y && kp1.pt.x < kp2.pt.x); - } - }; - - testing::AssertionResult assertKeyPointsEquals(const char* gold_expr, const char* actual_expr, std::vector& gold, std::vector& actual) - { - if (gold.size() != actual.size()) - { - return testing::AssertionFailure() << "KeyPoints size mistmach\n" - << "\"" << gold_expr << "\" : " << gold.size() << "\n" - << "\"" << actual_expr << "\" : " << actual.size(); - } - - std::sort(actual.begin(), actual.end(), KeyPointLess()); - std::sort(gold.begin(), gold.end(), KeyPointLess()); - - for (size_t i = 0; i < gold.size(); ++i) - { - const cv::KeyPoint& p1 = gold[i]; - const cv::KeyPoint& p2 = actual[i]; - - if (!keyPointsEquals(p1, p2)) - { - return testing::AssertionFailure() << "KeyPoints differ at " << i << "\n" - << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n" - << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n" - << "size : " << p1.size << " vs " << p2.size << "\n" - << "angle : " << p1.angle << " vs " << p2.angle << "\n" - << "response : " << p1.response << " vs " << p2.response << "\n" - << "octave : " << p1.octave << " vs " << p2.octave << "\n" - << "class_id : " << p1.class_id << " vs " << p2.class_id; - } - } - - return ::testing::AssertionSuccess(); - } - - #define ASSERT_KEYPOINTS_EQ(gold, actual) EXPECT_PRED_FORMAT2(assertKeyPointsEquals, gold, actual); - - int getMatchedPointsCount(std::vector& gold, std::vector& actual) - { - std::sort(actual.begin(), actual.end(), KeyPointLess()); - std::sort(gold.begin(), gold.end(), KeyPointLess()); - - int validCount = 0; - - for (size_t i = 0; i < gold.size(); ++i) - { - const cv::KeyPoint& p1 = gold[i]; - const cv::KeyPoint& p2 = actual[i]; - - if (keyPointsEquals(p1, p2)) - ++validCount; - } - - return validCount; - } - - int getMatchedPointsCount(const std::vector& keypoints1, const std::vector& keypoints2, const std::vector& matches) - { - int validCount = 0; - - for (size_t i = 0; i < matches.size(); ++i) - { - const cv::DMatch& m = matches[i]; - - const cv::KeyPoint& p1 = keypoints1[m.queryIdx]; - const cv::KeyPoint& p2 = keypoints2[m.trainIdx]; - - if (keyPointsEquals(p1, p2)) - ++validCount; - } - - return validCount; - } -} - -///////////////////////////////////////////////////////////////////////////////////////////////// -// SURF - -namespace -{ - IMPLEMENT_PARAM_CLASS(SURF_HessianThreshold, double) - IMPLEMENT_PARAM_CLASS(SURF_Octaves, int) - IMPLEMENT_PARAM_CLASS(SURF_OctaveLayers, int) - IMPLEMENT_PARAM_CLASS(SURF_Extended, bool) - IMPLEMENT_PARAM_CLASS(SURF_Upright, bool) -} - -PARAM_TEST_CASE(SURF, cv::gpu::DeviceInfo, SURF_HessianThreshold, SURF_Octaves, SURF_OctaveLayers, SURF_Extended, SURF_Upright) -{ - cv::gpu::DeviceInfo devInfo; - double hessianThreshold; - int nOctaves; - int nOctaveLayers; - bool extended; - bool upright; - - virtual void SetUp() - { - devInfo = GET_PARAM(0); - hessianThreshold = GET_PARAM(1); - nOctaves = GET_PARAM(2); - nOctaveLayers = GET_PARAM(3); - extended = GET_PARAM(4); - upright = GET_PARAM(5); - - cv::gpu::setDevice(devInfo.deviceID()); - } -}; - -GPU_TEST_P(SURF, Detector) -{ - cv::Mat image = readImage("features2d/aloe.png", cv::IMREAD_GRAYSCALE); - ASSERT_FALSE(image.empty()); - - cv::gpu::SURF_GPU surf; - surf.hessianThreshold = hessianThreshold; - surf.nOctaves = nOctaves; - surf.nOctaveLayers = nOctaveLayers; - surf.extended = extended; - surf.upright = upright; - surf.keypointsRatio = 0.05f; - - if (!supportFeature(devInfo, cv::gpu::GLOBAL_ATOMICS)) - { - try - { - std::vector keypoints; - surf(loadMat(image), cv::gpu::GpuMat(), keypoints); - } - catch (const cv::Exception& e) - { - ASSERT_EQ(CV_StsNotImplemented, e.code); - } - } - else - { - std::vector keypoints; - surf(loadMat(image), cv::gpu::GpuMat(), keypoints); - - cv::SURF surf_gold; - surf_gold.hessianThreshold = hessianThreshold; - surf_gold.nOctaves = nOctaves; - surf_gold.nOctaveLayers = nOctaveLayers; - surf_gold.extended = extended; - surf_gold.upright = upright; - - std::vector keypoints_gold; - surf_gold(image, cv::noArray(), keypoints_gold); - - ASSERT_EQ(keypoints_gold.size(), keypoints.size()); - int matchedCount = getMatchedPointsCount(keypoints_gold, keypoints); - double matchedRatio = static_cast(matchedCount) / keypoints_gold.size(); - - EXPECT_GT(matchedRatio, 0.95); - } -} - -GPU_TEST_P(SURF, Detector_Masked) -{ - cv::Mat image = readImage("features2d/aloe.png", cv::IMREAD_GRAYSCALE); - ASSERT_FALSE(image.empty()); - - cv::Mat mask(image.size(), CV_8UC1, cv::Scalar::all(1)); - mask(cv::Range(0, image.rows / 2), cv::Range(0, image.cols / 2)).setTo(cv::Scalar::all(0)); - - cv::gpu::SURF_GPU surf; - surf.hessianThreshold = hessianThreshold; - surf.nOctaves = nOctaves; - surf.nOctaveLayers = nOctaveLayers; - surf.extended = extended; - surf.upright = upright; - surf.keypointsRatio = 0.05f; - - if (!supportFeature(devInfo, cv::gpu::GLOBAL_ATOMICS)) - { - try - { - std::vector keypoints; - surf(loadMat(image), loadMat(mask), keypoints); - } - catch (const cv::Exception& e) - { - ASSERT_EQ(CV_StsNotImplemented, e.code); - } - } - else - { - std::vector keypoints; - surf(loadMat(image), loadMat(mask), keypoints); - - cv::SURF surf_gold; - surf_gold.hessianThreshold = hessianThreshold; - surf_gold.nOctaves = nOctaves; - surf_gold.nOctaveLayers = nOctaveLayers; - surf_gold.extended = extended; - surf_gold.upright = upright; - - std::vector keypoints_gold; - surf_gold(image, mask, keypoints_gold); - - ASSERT_EQ(keypoints_gold.size(), keypoints.size()); - int matchedCount = getMatchedPointsCount(keypoints_gold, keypoints); - double matchedRatio = static_cast(matchedCount) / keypoints_gold.size(); - - EXPECT_GT(matchedRatio, 0.95); - } -} - -GPU_TEST_P(SURF, Descriptor) -{ - cv::Mat image = readImage("features2d/aloe.png", cv::IMREAD_GRAYSCALE); - ASSERT_FALSE(image.empty()); - - cv::gpu::SURF_GPU surf; - surf.hessianThreshold = hessianThreshold; - surf.nOctaves = nOctaves; - surf.nOctaveLayers = nOctaveLayers; - surf.extended = extended; - surf.upright = upright; - surf.keypointsRatio = 0.05f; - - cv::SURF surf_gold; - surf_gold.hessianThreshold = hessianThreshold; - surf_gold.nOctaves = nOctaves; - surf_gold.nOctaveLayers = nOctaveLayers; - surf_gold.extended = extended; - surf_gold.upright = upright; - - if (!supportFeature(devInfo, cv::gpu::GLOBAL_ATOMICS)) - { - try - { - std::vector keypoints; - cv::gpu::GpuMat descriptors; - surf(loadMat(image), cv::gpu::GpuMat(), keypoints, descriptors); - } - catch (const cv::Exception& e) - { - ASSERT_EQ(CV_StsNotImplemented, e.code); - } - } - else - { - std::vector keypoints; - surf_gold(image, cv::noArray(), keypoints); - - cv::gpu::GpuMat descriptors; - surf(loadMat(image), cv::gpu::GpuMat(), keypoints, descriptors, true); - - cv::Mat descriptors_gold; - surf_gold(image, cv::noArray(), keypoints, descriptors_gold, true); - - cv::BFMatcher matcher(cv::NORM_L2); - std::vector matches; - matcher.match(descriptors_gold, cv::Mat(descriptors), matches); - - int matchedCount = getMatchedPointsCount(keypoints, keypoints, matches); - double matchedRatio = static_cast(matchedCount) / keypoints.size(); - - EXPECT_GT(matchedRatio, 0.6); - } -} - -INSTANTIATE_TEST_CASE_P(GPU_Features2D, SURF, testing::Combine( - ALL_DEVICES, - testing::Values(SURF_HessianThreshold(100.0), SURF_HessianThreshold(500.0), SURF_HessianThreshold(1000.0)), - testing::Values(SURF_Octaves(3), SURF_Octaves(4)), - testing::Values(SURF_OctaveLayers(2), SURF_OctaveLayers(3)), - testing::Values(SURF_Extended(false), SURF_Extended(true)), - testing::Values(SURF_Upright(false), SURF_Upright(true)))); +using namespace cvtest; ///////////////////////////////////////////////////////////////////////////////////////////////// // FAST diff --git a/modules/gpu/test/test_filters.cpp b/modules/gpu/test/test_filters.cpp index f6ae4067aa..b854da07ae 100644 --- a/modules/gpu/test/test_filters.cpp +++ b/modules/gpu/test/test_filters.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + namespace { IMPLEMENT_PARAM_CLASS(KSize, cv::Size) diff --git a/modules/gpu/test/test_gpumat.cpp b/modules/gpu/test/test_gpumat.cpp index 9ece87caa3..a5c38da4f4 100644 --- a/modules/gpu/test/test_gpumat.cpp +++ b/modules/gpu/test/test_gpumat.cpp @@ -44,6 +44,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + //////////////////////////////////////////////////////////////////////////////// // SetTo diff --git a/modules/gpu/test/test_hough.cpp b/modules/gpu/test/test_hough.cpp index b348331a10..e4d5ad6cf5 100644 --- a/modules/gpu/test/test_hough.cpp +++ b/modules/gpu/test/test_hough.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + /////////////////////////////////////////////////////////////////////////////////////////////////////// // HoughLines diff --git a/modules/gpu/test/test_imgproc.cpp b/modules/gpu/test/test_imgproc.cpp index 41a94299bf..ca64edf178 100644 --- a/modules/gpu/test/test_imgproc.cpp +++ b/modules/gpu/test/test_imgproc.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + /////////////////////////////////////////////////////////////////////////////////////////////////////// // Integral diff --git a/modules/gpu/test/test_objdetect.cpp b/modules/gpu/test/test_objdetect.cpp index fd610d9b50..cc66d6a313 100644 --- a/modules/gpu/test/test_objdetect.cpp +++ b/modules/gpu/test/test_objdetect.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + //#define DUMP struct HOG : testing::TestWithParam, cv::gpu::HOGDescriptor diff --git a/modules/gpu/test/test_opengl.cpp b/modules/gpu/test/test_opengl.cpp index 626851e30e..c6aa945ac9 100644 --- a/modules/gpu/test/test_opengl.cpp +++ b/modules/gpu/test/test_opengl.cpp @@ -43,6 +43,8 @@ #if defined(HAVE_CUDA) && defined(HAVE_OPENGL) +using namespace cvtest; + ///////////////////////////////////////////// // Buffer diff --git a/modules/gpu/test/test_optflow.cpp b/modules/gpu/test/test_optflow.cpp index a97516f6d1..ee60a432f4 100644 --- a/modules/gpu/test/test_optflow.cpp +++ b/modules/gpu/test/test_optflow.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + ////////////////////////////////////////////////////// // BroxOpticalFlow diff --git a/modules/gpu/test/test_precomp.hpp b/modules/gpu/test/test_precomp.hpp index e7ade6aed7..9be9863ca8 100644 --- a/modules/gpu/test/test_precomp.hpp +++ b/modules/gpu/test/test_precomp.hpp @@ -69,19 +69,19 @@ #include #include + #include "opencv2/ts/ts.hpp" + #include "opencv2/ts/ts_perf.hpp" + #include "opencv2/ts/gpu_test.hpp" + #include "opencv2/core/core.hpp" #include "opencv2/core/opengl_interop.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/calib3d/calib3d.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/video/video.hpp" - #include "opencv2/ts/ts.hpp" - #include "opencv2/ts/ts_perf.hpp" #include "opencv2/gpu/gpu.hpp" - #include "opencv2/nonfree/nonfree.hpp" #include "opencv2/legacy/legacy.hpp" - #include "utility.hpp" #include "interpolation.hpp" #include "main_test_nvidia.h" #endif diff --git a/modules/gpu/test/test_pyramids.cpp b/modules/gpu/test/test_pyramids.cpp index c3d56b63a0..43665966ec 100644 --- a/modules/gpu/test/test_pyramids.cpp +++ b/modules/gpu/test/test_pyramids.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + //////////////////////////////////////////////////////// // pyrDown diff --git a/modules/gpu/test/test_remap.cpp b/modules/gpu/test/test_remap.cpp index a815ed0e0d..13c8a59b7b 100644 --- a/modules/gpu/test/test_remap.cpp +++ b/modules/gpu/test/test_remap.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + /////////////////////////////////////////////////////////////////// // Gold implementation diff --git a/modules/gpu/test/test_resize.cpp b/modules/gpu/test/test_resize.cpp index a34da54fdb..729dcc3208 100644 --- a/modules/gpu/test/test_resize.cpp +++ b/modules/gpu/test/test_resize.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + /////////////////////////////////////////////////////////////////// // Gold implementation diff --git a/modules/gpu/test/test_stream.cpp b/modules/gpu/test/test_stream.cpp index 4adac41292..1ac8ae8bd4 100644 --- a/modules/gpu/test/test_stream.cpp +++ b/modules/gpu/test/test_stream.cpp @@ -44,6 +44,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + #if CUDA_VERSION >= 5000 struct Async : testing::TestWithParam diff --git a/modules/gpu/test/test_threshold.cpp b/modules/gpu/test/test_threshold.cpp index 43e651ad81..e56975e873 100644 --- a/modules/gpu/test/test_threshold.cpp +++ b/modules/gpu/test/test_threshold.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + CV_ENUM(ThreshOp, cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV) #define ALL_THRESH_OPS testing::Values(ThreshOp(cv::THRESH_BINARY), ThreshOp(cv::THRESH_BINARY_INV), ThreshOp(cv::THRESH_TRUNC), ThreshOp(cv::THRESH_TOZERO), ThreshOp(cv::THRESH_TOZERO_INV)) diff --git a/modules/gpu/test/test_warp_affine.cpp b/modules/gpu/test/test_warp_affine.cpp index fe3a1353b1..892c5b7c62 100644 --- a/modules/gpu/test/test_warp_affine.cpp +++ b/modules/gpu/test/test_warp_affine.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + namespace { cv::Mat createTransfomMatrix(cv::Size srcSize, double angle) diff --git a/modules/gpu/test/test_warp_perspective.cpp b/modules/gpu/test/test_warp_perspective.cpp index dd2054a049..d421d94fc2 100644 --- a/modules/gpu/test/test_warp_perspective.cpp +++ b/modules/gpu/test/test_warp_perspective.cpp @@ -43,6 +43,8 @@ #ifdef HAVE_CUDA +using namespace cvtest; + namespace { cv::Mat createTransfomMatrix(cv::Size srcSize, double angle) diff --git a/modules/gpu/test/utility.cpp b/modules/gpu/test/utility.cpp deleted file mode 100644 index 88f7963242..0000000000 --- a/modules/gpu/test/utility.cpp +++ /dev/null @@ -1,407 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#include "test_precomp.hpp" - -#ifdef HAVE_CUDA - -using namespace std; -using namespace cv; -using namespace cv::gpu; -using namespace cvtest; -using namespace testing; -using namespace testing::internal; - -////////////////////////////////////////////////////////////////////// -// random generators - -int randomInt(int minVal, int maxVal) -{ - RNG& rng = TS::ptr()->get_rng(); - return rng.uniform(minVal, maxVal); -} - -double randomDouble(double minVal, double maxVal) -{ - RNG& rng = TS::ptr()->get_rng(); - return rng.uniform(minVal, maxVal); -} - -Size randomSize(int minVal, int maxVal) -{ - return Size(randomInt(minVal, maxVal), randomInt(minVal, maxVal)); -} - -Scalar randomScalar(double minVal, double maxVal) -{ - return Scalar(randomDouble(minVal, maxVal), randomDouble(minVal, maxVal), randomDouble(minVal, maxVal), randomDouble(minVal, maxVal)); -} - -Mat randomMat(Size size, int type, double minVal, double maxVal) -{ - return randomMat(TS::ptr()->get_rng(), size, type, minVal, maxVal, false); -} - -////////////////////////////////////////////////////////////////////// -// GpuMat create - -GpuMat createMat(Size size, int type, bool useRoi) -{ - Size size0 = size; - - if (useRoi) - { - size0.width += randomInt(5, 15); - size0.height += randomInt(5, 15); - } - - GpuMat d_m(size0, type); - - if (size0 != size) - d_m = d_m(Rect((size0.width - size.width) / 2, (size0.height - size.height) / 2, size.width, size.height)); - - return d_m; -} - -GpuMat loadMat(const Mat& m, bool useRoi) -{ - GpuMat d_m = createMat(m.size(), m.type(), useRoi); - d_m.upload(m); - return d_m; -} - -////////////////////////////////////////////////////////////////////// -// Image load - -Mat readImage(const std::string& fileName, int flags) -{ - return imread(TS::ptr()->get_data_path() + fileName, flags); -} - -Mat readImageType(const std::string& fname, int type) -{ - Mat src = readImage(fname, CV_MAT_CN(type) == 1 ? IMREAD_GRAYSCALE : IMREAD_COLOR); - if (CV_MAT_CN(type) == 4) - { - Mat temp; - cvtColor(src, temp, COLOR_BGR2BGRA); - swap(src, temp); - } - src.convertTo(src, CV_MAT_DEPTH(type), CV_MAT_DEPTH(type) == CV_32F ? 1.0 / 255.0 : 1.0); - return src; -} - -////////////////////////////////////////////////////////////////////// -// Gpu devices - -bool supportFeature(const DeviceInfo& info, FeatureSet feature) -{ - return TargetArchs::builtWith(feature) && info.supports(feature); -} - -DeviceManager& DeviceManager::instance() -{ - static DeviceManager obj; - return obj; -} - -void DeviceManager::load(int i) -{ - devices_.clear(); - devices_.reserve(1); - - std::ostringstream msg; - - if (i < 0 || i >= getCudaEnabledDeviceCount()) - { - msg << "Incorrect device number - " << i; - throw runtime_error(msg.str()); - } - - DeviceInfo info(i); - - if (!info.isCompatible()) - { - msg << "Device " << i << " [" << info.name() << "] is NOT compatible with current GPU module build"; - throw runtime_error(msg.str()); - } - - devices_.push_back(info); -} - -void DeviceManager::loadAll() -{ - int deviceCount = getCudaEnabledDeviceCount(); - - devices_.clear(); - devices_.reserve(deviceCount); - - for (int i = 0; i < deviceCount; ++i) - { - DeviceInfo info(i); - if (info.isCompatible()) - { - devices_.push_back(info); - } - } -} - -////////////////////////////////////////////////////////////////////// -// Additional assertion - -namespace -{ - template std::string printMatValImpl(const Mat& m, Point p) - { - const int cn = m.channels(); - - std::ostringstream ostr; - ostr << "("; - - p.x /= cn; - - ostr << static_cast(m.at(p.y, p.x * cn)); - for (int c = 1; c < m.channels(); ++c) - { - ostr << ", " << static_cast(m.at(p.y, p.x * cn + c)); - } - ostr << ")"; - - return ostr.str(); - } - - std::string printMatVal(const Mat& m, Point p) - { - typedef std::string (*func_t)(const Mat& m, Point p); - - static const func_t funcs[] = - { - printMatValImpl, printMatValImpl, printMatValImpl, printMatValImpl, - printMatValImpl, printMatValImpl, printMatValImpl - }; - - return funcs[m.depth()](m, p); - } -} - -void minMaxLocGold(const Mat& src, double* minVal_, double* maxVal_, Point* minLoc_, Point* maxLoc_, const Mat& mask) -{ - if (src.depth() != CV_8S) - { - minMaxLoc(src, minVal_, maxVal_, minLoc_, maxLoc_, mask); - return; - } - - // OpenCV's minMaxLoc doesn't support CV_8S type - double minVal = numeric_limits::max(); - Point minLoc(-1, -1); - - double maxVal = -numeric_limits::max(); - Point maxLoc(-1, -1); - - for (int y = 0; y < src.rows; ++y) - { - const schar* src_row = src.ptr(y); - const uchar* mask_row = mask.empty() ? 0 : mask.ptr(y); - - for (int x = 0; x < src.cols; ++x) - { - if (!mask_row || mask_row[x]) - { - schar val = src_row[x]; - - if (val < minVal) - { - minVal = val; - minLoc = cv::Point(x, y); - } - - if (val > maxVal) - { - maxVal = val; - maxLoc = cv::Point(x, y); - } - } - } - } - - if (minVal_) *minVal_ = minVal; - if (maxVal_) *maxVal_ = maxVal; - - if (minLoc_) *minLoc_ = minLoc; - if (maxLoc_) *maxLoc_ = maxLoc; -} - -Mat getMat(InputArray arr) -{ - if (arr.kind() == _InputArray::GPU_MAT) - { - Mat m; - arr.getGpuMat().download(m); - return m; - } - - return arr.getMat(); -} - -AssertionResult assertMatNear(const char* expr1, const char* expr2, const char* eps_expr, InputArray m1_, InputArray m2_, double eps) -{ - Mat m1 = getMat(m1_); - Mat m2 = getMat(m2_); - - if (m1.size() != m2.size()) - { - return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \"" - << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \"" - << expr2 << "\" [" << PrintToString(m2.size()) << "]"; - } - - if (m1.type() != m2.type()) - { - return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \"" - << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \"" - << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]"; - } - - Mat diff; - absdiff(m1.reshape(1), m2.reshape(1), diff); - - double maxVal = 0.0; - Point maxLoc; - minMaxLocGold(diff, 0, &maxVal, 0, &maxLoc); - - if (maxVal > eps) - { - return AssertionFailure() << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2 - << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")" - << ", which exceeds \"" << eps_expr << "\", where \"" - << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \"" - << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \"" - << eps_expr << "\" evaluates to " << eps; - } - - return AssertionSuccess(); -} - -double checkSimilarity(InputArray m1, InputArray m2) -{ - Mat diff; - matchTemplate(getMat(m1), getMat(m2), diff, CV_TM_CCORR_NORMED); - return std::abs(diff.at(0, 0) - 1.f); -} - -////////////////////////////////////////////////////////////////////// -// Helper structs for value-parameterized tests - -vector types(int depth_start, int depth_end, int cn_start, int cn_end) -{ - vector v; - - v.reserve((depth_end - depth_start + 1) * (cn_end - cn_start + 1)); - - for (int depth = depth_start; depth <= depth_end; ++depth) - { - for (int cn = cn_start; cn <= cn_end; ++cn) - { - v.push_back(MatType(CV_MAKE_TYPE(depth, cn))); - } - } - - return v; -} - -const vector& all_types() -{ - static vector v = types(CV_8U, CV_64F, 1, 4); - - return v; -} - -void cv::gpu::PrintTo(const DeviceInfo& info, ostream* os) -{ - (*os) << info.name(); -} - -void PrintTo(const UseRoi& useRoi, std::ostream* os) -{ - if (useRoi) - (*os) << "sub matrix"; - else - (*os) << "whole matrix"; -} - -void PrintTo(const Inverse& inverse, std::ostream* os) -{ - if (inverse) - (*os) << "inverse"; - else - (*os) << "direct"; -} - -////////////////////////////////////////////////////////////////////// -// Other - -void dumpImage(const std::string& fileName, const Mat& image) -{ - imwrite(TS::ptr()->get_data_path() + fileName, image); -} - -void showDiff(InputArray gold_, InputArray actual_, double eps) -{ - Mat gold = getMat(gold_); - Mat actual = getMat(actual_); - - Mat diff; - absdiff(gold, actual, diff); - threshold(diff, diff, eps, 255.0, cv::THRESH_BINARY); - - namedWindow("gold", WINDOW_NORMAL); - namedWindow("actual", WINDOW_NORMAL); - namedWindow("diff", WINDOW_NORMAL); - - imshow("gold", gold); - imshow("actual", actual); - imshow("diff", diff); - - waitKey(); -} - -#endif // HAVE_CUDA diff --git a/modules/gpu/test/utility.hpp b/modules/gpu/test/utility.hpp deleted file mode 100644 index 674e9a17ee..0000000000 --- a/modules/gpu/test/utility.hpp +++ /dev/null @@ -1,332 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef __OPENCV_GPU_TEST_UTILITY_HPP__ -#define __OPENCV_GPU_TEST_UTILITY_HPP__ - -#include "opencv2/core/core.hpp" -#include "opencv2/core/gpumat.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/ts/ts.hpp" -#include "opencv2/ts/ts_perf.hpp" - -////////////////////////////////////////////////////////////////////// -// random generators - -int randomInt(int minVal, int maxVal); -double randomDouble(double minVal, double maxVal); -cv::Size randomSize(int minVal, int maxVal); -cv::Scalar randomScalar(double minVal, double maxVal); -cv::Mat randomMat(cv::Size size, int type, double minVal = 0.0, double maxVal = 255.0); - -////////////////////////////////////////////////////////////////////// -// GpuMat create - -cv::gpu::GpuMat createMat(cv::Size size, int type, bool useRoi = false); -cv::gpu::GpuMat loadMat(const cv::Mat& m, bool useRoi = false); - -////////////////////////////////////////////////////////////////////// -// Image load - -//! read image from testdata folder -cv::Mat readImage(const std::string& fileName, int flags = cv::IMREAD_COLOR); - -//! read image from testdata folder and convert it to specified type -cv::Mat readImageType(const std::string& fname, int type); - -////////////////////////////////////////////////////////////////////// -// Gpu devices - -//! return true if device supports specified feature and gpu module was built with support the feature. -bool supportFeature(const cv::gpu::DeviceInfo& info, cv::gpu::FeatureSet feature); - -class DeviceManager -{ -public: - static DeviceManager& instance(); - - void load(int i); - void loadAll(); - - const std::vector& values() const { return devices_; } - -private: - std::vector devices_; -}; - -#define ALL_DEVICES testing::ValuesIn(DeviceManager::instance().values()) - -////////////////////////////////////////////////////////////////////// -// Additional assertion - -void minMaxLocGold(const cv::Mat& src, double* minVal_, double* maxVal_ = 0, cv::Point* minLoc_ = 0, cv::Point* maxLoc_ = 0, const cv::Mat& mask = cv::Mat()); - -cv::Mat getMat(cv::InputArray arr); - -testing::AssertionResult assertMatNear(const char* expr1, const char* expr2, const char* eps_expr, cv::InputArray m1, cv::InputArray m2, double eps); - -#define EXPECT_MAT_NEAR(m1, m2, eps) EXPECT_PRED_FORMAT3(assertMatNear, m1, m2, eps) -#define ASSERT_MAT_NEAR(m1, m2, eps) ASSERT_PRED_FORMAT3(assertMatNear, m1, m2, eps) - -#define EXPECT_SCALAR_NEAR(s1, s2, eps) \ - { \ - EXPECT_NEAR(s1[0], s2[0], eps); \ - EXPECT_NEAR(s1[1], s2[1], eps); \ - EXPECT_NEAR(s1[2], s2[2], eps); \ - EXPECT_NEAR(s1[3], s2[3], eps); \ - } -#define ASSERT_SCALAR_NEAR(s1, s2, eps) \ - { \ - ASSERT_NEAR(s1[0], s2[0], eps); \ - ASSERT_NEAR(s1[1], s2[1], eps); \ - ASSERT_NEAR(s1[2], s2[2], eps); \ - ASSERT_NEAR(s1[3], s2[3], eps); \ - } - -#define EXPECT_POINT2_NEAR(p1, p2, eps) \ - { \ - EXPECT_NEAR(p1.x, p2.x, eps); \ - EXPECT_NEAR(p1.y, p2.y, eps); \ - } -#define ASSERT_POINT2_NEAR(p1, p2, eps) \ - { \ - ASSERT_NEAR(p1.x, p2.x, eps); \ - ASSERT_NEAR(p1.y, p2.y, eps); \ - } - -#define EXPECT_POINT3_NEAR(p1, p2, eps) \ - { \ - EXPECT_NEAR(p1.x, p2.x, eps); \ - EXPECT_NEAR(p1.y, p2.y, eps); \ - EXPECT_NEAR(p1.z, p2.z, eps); \ - } -#define ASSERT_POINT3_NEAR(p1, p2, eps) \ - { \ - ASSERT_NEAR(p1.x, p2.x, eps); \ - ASSERT_NEAR(p1.y, p2.y, eps); \ - ASSERT_NEAR(p1.z, p2.z, eps); \ - } - -double checkSimilarity(cv::InputArray m1, cv::InputArray m2); - -#define EXPECT_MAT_SIMILAR(mat1, mat2, eps) \ - { \ - ASSERT_EQ(mat1.type(), mat2.type()); \ - ASSERT_EQ(mat1.size(), mat2.size()); \ - EXPECT_LE(checkSimilarity(mat1, mat2), eps); \ - } -#define ASSERT_MAT_SIMILAR(mat1, mat2, eps) \ - { \ - ASSERT_EQ(mat1.type(), mat2.type()); \ - ASSERT_EQ(mat1.size(), mat2.size()); \ - ASSERT_LE(checkSimilarity(mat1, mat2), eps); \ - } - -////////////////////////////////////////////////////////////////////// -// Helper structs for value-parameterized tests - -#define GPU_TEST_P(test_case_name, test_name) \ - class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ - : public test_case_name { \ - public: \ - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \ - virtual void TestBody(); \ - private: \ - void UnsafeTestBody(); \ - static int AddToRegistry() { \ - ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ - GetTestCasePatternHolder(\ - #test_case_name, __FILE__, __LINE__)->AddTestPattern(\ - #test_case_name, \ - #test_name, \ - new ::testing::internal::TestMetaFactory< \ - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \ - return 0; \ - } \ - static int gtest_registering_dummy_; \ - GTEST_DISALLOW_COPY_AND_ASSIGN_(\ - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ - }; \ - int GTEST_TEST_CLASS_NAME_(test_case_name, \ - test_name)::gtest_registering_dummy_ = \ - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ - void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() \ - { \ - try \ - { \ - UnsafeTestBody(); \ - } \ - catch (...) \ - { \ - cv::gpu::resetDevice(); \ - throw; \ - } \ - } \ - void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::UnsafeTestBody() - -#define PARAM_TEST_CASE(name, ...) struct name : testing::TestWithParam< std::tr1::tuple< __VA_ARGS__ > > -#define GET_PARAM(k) std::tr1::get< k >(GetParam()) - -namespace cv { namespace gpu -{ - void PrintTo(const DeviceInfo& info, std::ostream* os); -}} - -#define DIFFERENT_SIZES testing::Values(cv::Size(128, 128), cv::Size(113, 113)) - -// Depth - -using perf::MatDepth; - -#define ALL_DEPTH testing::Values(MatDepth(CV_8U), MatDepth(CV_8S), MatDepth(CV_16U), MatDepth(CV_16S), MatDepth(CV_32S), MatDepth(CV_32F), MatDepth(CV_64F)) - -#define DEPTH_PAIRS testing::Values(std::make_pair(MatDepth(CV_8U), MatDepth(CV_8U)), \ - std::make_pair(MatDepth(CV_8U), MatDepth(CV_16U)), \ - std::make_pair(MatDepth(CV_8U), MatDepth(CV_16S)), \ - std::make_pair(MatDepth(CV_8U), MatDepth(CV_32S)), \ - std::make_pair(MatDepth(CV_8U), MatDepth(CV_32F)), \ - std::make_pair(MatDepth(CV_8U), MatDepth(CV_64F)), \ - \ - std::make_pair(MatDepth(CV_16U), MatDepth(CV_16U)), \ - std::make_pair(MatDepth(CV_16U), MatDepth(CV_32S)), \ - std::make_pair(MatDepth(CV_16U), MatDepth(CV_32F)), \ - std::make_pair(MatDepth(CV_16U), MatDepth(CV_64F)), \ - \ - std::make_pair(MatDepth(CV_16S), MatDepth(CV_16S)), \ - std::make_pair(MatDepth(CV_16S), MatDepth(CV_32S)), \ - std::make_pair(MatDepth(CV_16S), MatDepth(CV_32F)), \ - std::make_pair(MatDepth(CV_16S), MatDepth(CV_64F)), \ - \ - std::make_pair(MatDepth(CV_32S), MatDepth(CV_32S)), \ - std::make_pair(MatDepth(CV_32S), MatDepth(CV_32F)), \ - std::make_pair(MatDepth(CV_32S), MatDepth(CV_64F)), \ - \ - std::make_pair(MatDepth(CV_32F), MatDepth(CV_32F)), \ - std::make_pair(MatDepth(CV_32F), MatDepth(CV_64F)), \ - \ - std::make_pair(MatDepth(CV_64F), MatDepth(CV_64F))) - -// Type - -using perf::MatType; - -//! return vector with types from specified range. -std::vector types(int depth_start, int depth_end, int cn_start, int cn_end); - -//! return vector with all types (depth: CV_8U-CV_64F, channels: 1-4). -const std::vector& all_types(); - -#define ALL_TYPES testing::ValuesIn(all_types()) -#define TYPES(depth_start, depth_end, cn_start, cn_end) testing::ValuesIn(types(depth_start, depth_end, cn_start, cn_end)) - -// ROI - -class UseRoi -{ -public: - inline UseRoi(bool val = false) : val_(val) {} - - inline operator bool() const { return val_; } - -private: - bool val_; -}; - -void PrintTo(const UseRoi& useRoi, std::ostream* os); - -#define WHOLE_SUBMAT testing::Values(UseRoi(false), UseRoi(true)) - -// Direct/Inverse - -class Inverse -{ -public: - inline Inverse(bool val = false) : val_(val) {} - - inline operator bool() const { return val_; } - -private: - bool val_; -}; - -void PrintTo(const Inverse& useRoi, std::ostream* os); - -#define DIRECT_INVERSE testing::Values(Inverse(false), Inverse(true)) - -// Param class - -#define IMPLEMENT_PARAM_CLASS(name, type) \ - class name \ - { \ - public: \ - name ( type arg = type ()) : val_(arg) {} \ - operator type () const {return val_;} \ - private: \ - type val_; \ - }; \ - inline void PrintTo( name param, std::ostream* os) \ - { \ - *os << #name << "(" << testing::PrintToString(static_cast< type >(param)) << ")"; \ - } - -IMPLEMENT_PARAM_CLASS(Channels, int) - -#define ALL_CHANNELS testing::Values(Channels(1), Channels(2), Channels(3), Channels(4)) -#define IMAGE_CHANNELS testing::Values(Channels(1), Channels(3), Channels(4)) - -// Flags and enums - -CV_ENUM(NormCode, cv::NORM_INF, cv::NORM_L1, cv::NORM_L2, cv::NORM_TYPE_MASK, cv::NORM_RELATIVE, cv::NORM_MINMAX) - -CV_ENUM(Interpolation, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC, cv::INTER_AREA) - -CV_ENUM(BorderType, cv::BORDER_REFLECT101, cv::BORDER_REPLICATE, cv::BORDER_CONSTANT, cv::BORDER_REFLECT, cv::BORDER_WRAP) -#define ALL_BORDER_TYPES testing::Values(BorderType(cv::BORDER_REFLECT101), BorderType(cv::BORDER_REPLICATE), BorderType(cv::BORDER_CONSTANT), BorderType(cv::BORDER_REFLECT), BorderType(cv::BORDER_WRAP)) - -CV_FLAGS(WarpFlags, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC, cv::WARP_INVERSE_MAP) - -////////////////////////////////////////////////////////////////////// -// Other - -void dumpImage(const std::string& fileName, const cv::Mat& image); -void showDiff(cv::InputArray gold, cv::InputArray actual, double eps); - -#endif // __OPENCV_GPU_TEST_UTILITY_HPP__ diff --git a/modules/superres/perf/perf_main.cpp b/modules/superres/perf/perf_main.cpp index 230df8190d..80575d89f0 100644 --- a/modules/superres/perf/perf_main.cpp +++ b/modules/superres/perf/perf_main.cpp @@ -1,3 +1,5 @@ #include "perf_precomp.hpp" -CV_PERF_TEST_MAIN(superres) +using namespace perf; + +CV_PERF_TEST_MAIN(superres, printCudaInfo()) diff --git a/modules/superres/perf/perf_precomp.hpp b/modules/superres/perf/perf_precomp.hpp index 732dd1118f..8232a26edb 100644 --- a/modules/superres/perf/perf_precomp.hpp +++ b/modules/superres/perf/perf_precomp.hpp @@ -16,6 +16,7 @@ #include "opencv2/core/core.hpp" #include "opencv2/core/gpumat.hpp" #include "opencv2/ts/ts_perf.hpp" +#include "opencv2/ts/gpu_perf.hpp" #include "opencv2/superres/superres.hpp" #include "opencv2/superres/optical_flow.hpp" diff --git a/modules/superres/perf/perf_superres.cpp b/modules/superres/perf/perf_superres.cpp index a0fa8e58d2..eec01a7853 100644 --- a/modules/superres/perf/perf_superres.cpp +++ b/modules/superres/perf/perf_superres.cpp @@ -8,18 +8,6 @@ using namespace cv; using namespace cv::superres; using namespace cv::gpu; -#define GPU_SANITY_CHECK(mat, ...) \ - do{ \ - Mat gpu_##mat(mat); \ - SANITY_CHECK(gpu_##mat, ## __VA_ARGS__); \ - } while(0) - -#define CPU_SANITY_CHECK(mat, ...) \ - do{ \ - Mat cpu_##mat(mat); \ - SANITY_CHECK(cpu_##mat, ## __VA_ARGS__); \ - } while(0) - namespace { class OneFrameSource_CPU : public FrameSource diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt index 455ef876bd..df4aeda19b 100644 --- a/modules/ts/CMakeLists.txt +++ b/modules/ts/CMakeLists.txt @@ -10,6 +10,10 @@ endif() set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE) +if(HAVE_CUDA) + ocv_include_directories(${CUDA_INCLUDE_DIRS}) +endif() + ocv_add_module(ts opencv_core opencv_features2d) ocv_glob_module_sources() diff --git a/modules/ts/include/opencv2/ts/gpu_perf.hpp b/modules/ts/include/opencv2/ts/gpu_perf.hpp new file mode 100644 index 0000000000..9fcf85db9a --- /dev/null +++ b/modules/ts/include/opencv2/ts/gpu_perf.hpp @@ -0,0 +1,68 @@ +#ifndef __OPENCV_GPU_PERF_UTILITY_HPP__ +#define __OPENCV_GPU_PERF_UTILITY_HPP__ + +#include "opencv2/core/core.hpp" +#include "opencv2/highgui/highgui.hpp" +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/ts/ts_perf.hpp" + +namespace perf +{ + CV_ENUM(BorderMode, cv::BORDER_REFLECT101, cv::BORDER_REPLICATE, cv::BORDER_CONSTANT, cv::BORDER_REFLECT, cv::BORDER_WRAP) + #define ALL_BORDER_MODES testing::ValuesIn(BorderMode::all()) + + CV_ENUM(Interpolation, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC, cv::INTER_AREA) + #define ALL_INTERPOLATIONS testing::ValuesIn(Interpolation::all()) + + CV_ENUM(NormType, cv::NORM_INF, cv::NORM_L1, cv::NORM_L2, cv::NORM_HAMMING, cv::NORM_MINMAX) + + enum { Gray = 1, TwoChannel = 2, BGR = 3, BGRA = 4 }; + CV_ENUM(MatCn, Gray, TwoChannel, BGR, BGRA) + #define GPU_CHANNELS_1_3_4 testing::Values(MatCn(Gray), MatCn(BGR), MatCn(BGRA)) + #define GPU_CHANNELS_1_3 testing::Values(MatCn(Gray), MatCn(BGR)) + + #define GET_PARAM(k) std::tr1::get< k >(GetParam()) + + #define DEF_PARAM_TEST(name, ...) typedef ::perf::TestBaseWithParam< std::tr1::tuple< __VA_ARGS__ > > name + #define DEF_PARAM_TEST_1(name, param_type) typedef ::perf::TestBaseWithParam< param_type > name + + DEF_PARAM_TEST_1(Sz, cv::Size); + typedef perf::Size_MatType Sz_Type; + DEF_PARAM_TEST(Sz_Depth, cv::Size, perf::MatDepth); + DEF_PARAM_TEST(Sz_Depth_Cn, cv::Size, perf::MatDepth, MatCn); + + #define GPU_TYPICAL_MAT_SIZES testing::Values(perf::sz720p, perf::szSXGA, perf::sz1080p) + + #define FAIL_NO_CPU() FAIL() << "No such CPU implementation analogy" + + #define GPU_SANITY_CHECK(mat, ...) \ + do{ \ + cv::Mat gpu_##mat(mat); \ + SANITY_CHECK(gpu_##mat, ## __VA_ARGS__); \ + } while(0) + + #define CPU_SANITY_CHECK(mat, ...) \ + do{ \ + cv::Mat cpu_##mat(mat); \ + SANITY_CHECK(cpu_##mat, ## __VA_ARGS__); \ + } while(0) + + CV_EXPORTS cv::Mat readImage(const std::string& fileName, int flags = cv::IMREAD_COLOR); + + struct CvtColorInfo + { + int scn; + int dcn; + int code; + + CvtColorInfo() {} + explicit CvtColorInfo(int scn_, int dcn_, int code_) : scn(scn_), dcn(dcn_), code(code_) {} + }; + CV_EXPORTS void PrintTo(const CvtColorInfo& info, std::ostream* os); + + CV_EXPORTS void printCudaInfo(); + + CV_EXPORTS void sortKeyPoints(std::vector& keypoints, cv::InputOutputArray _descriptors = cv::noArray()); +} + +#endif // __OPENCV_GPU_PERF_UTILITY_HPP__ diff --git a/modules/ts/include/opencv2/ts/gpu_test.hpp b/modules/ts/include/opencv2/ts/gpu_test.hpp new file mode 100644 index 0000000000..4743c3d585 --- /dev/null +++ b/modules/ts/include/opencv2/ts/gpu_test.hpp @@ -0,0 +1,307 @@ +#ifndef __OPENCV_GPU_TEST_UTILITY_HPP__ +#define __OPENCV_GPU_TEST_UTILITY_HPP__ + +#include "opencv2/core/core.hpp" +#include "opencv2/core/gpumat.hpp" +#include "opencv2/highgui/highgui.hpp" +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/ts/ts.hpp" +#include "opencv2/ts/ts_perf.hpp" + +namespace cvtest +{ + ////////////////////////////////////////////////////////////////////// + // random generators + + CV_EXPORTS int randomInt(int minVal, int maxVal); + CV_EXPORTS double randomDouble(double minVal, double maxVal); + CV_EXPORTS cv::Size randomSize(int minVal, int maxVal); + CV_EXPORTS cv::Scalar randomScalar(double minVal, double maxVal); + CV_EXPORTS cv::Mat randomMat(cv::Size size, int type, double minVal = 0.0, double maxVal = 255.0); + + ////////////////////////////////////////////////////////////////////// + // GpuMat create + + CV_EXPORTS cv::gpu::GpuMat createMat(cv::Size size, int type, bool useRoi = false); + CV_EXPORTS cv::gpu::GpuMat loadMat(const cv::Mat& m, bool useRoi = false); + + ////////////////////////////////////////////////////////////////////// + // Image load + + //! read image from testdata folder + CV_EXPORTS cv::Mat readImage(const std::string& fileName, int flags = cv::IMREAD_COLOR); + + //! read image from testdata folder and convert it to specified type + CV_EXPORTS cv::Mat readImageType(const std::string& fname, int type); + + ////////////////////////////////////////////////////////////////////// + // Gpu devices + + //! return true if device supports specified feature and gpu module was built with support the feature. + CV_EXPORTS bool supportFeature(const cv::gpu::DeviceInfo& info, cv::gpu::FeatureSet feature); + + class CV_EXPORTS DeviceManager + { + public: + static DeviceManager& instance(); + + void load(int i); + void loadAll(); + + const std::vector& values() const { return devices_; } + + private: + std::vector devices_; + }; + + #define ALL_DEVICES testing::ValuesIn(cvtest::DeviceManager::instance().values()) + + ////////////////////////////////////////////////////////////////////// + // Additional assertion + + CV_EXPORTS void minMaxLocGold(const cv::Mat& src, double* minVal_, double* maxVal_ = 0, cv::Point* minLoc_ = 0, cv::Point* maxLoc_ = 0, const cv::Mat& mask = cv::Mat()); + + CV_EXPORTS cv::Mat getMat(cv::InputArray arr); + + CV_EXPORTS testing::AssertionResult assertMatNear(const char* expr1, const char* expr2, const char* eps_expr, cv::InputArray m1, cv::InputArray m2, double eps); + + #define EXPECT_MAT_NEAR(m1, m2, eps) EXPECT_PRED_FORMAT3(cvtest::assertMatNear, m1, m2, eps) + #define ASSERT_MAT_NEAR(m1, m2, eps) ASSERT_PRED_FORMAT3(cvtest::assertMatNear, m1, m2, eps) + + #define EXPECT_SCALAR_NEAR(s1, s2, eps) \ + { \ + EXPECT_NEAR(s1[0], s2[0], eps); \ + EXPECT_NEAR(s1[1], s2[1], eps); \ + EXPECT_NEAR(s1[2], s2[2], eps); \ + EXPECT_NEAR(s1[3], s2[3], eps); \ + } + #define ASSERT_SCALAR_NEAR(s1, s2, eps) \ + { \ + ASSERT_NEAR(s1[0], s2[0], eps); \ + ASSERT_NEAR(s1[1], s2[1], eps); \ + ASSERT_NEAR(s1[2], s2[2], eps); \ + ASSERT_NEAR(s1[3], s2[3], eps); \ + } + + #define EXPECT_POINT2_NEAR(p1, p2, eps) \ + { \ + EXPECT_NEAR(p1.x, p2.x, eps); \ + EXPECT_NEAR(p1.y, p2.y, eps); \ + } + #define ASSERT_POINT2_NEAR(p1, p2, eps) \ + { \ + ASSERT_NEAR(p1.x, p2.x, eps); \ + ASSERT_NEAR(p1.y, p2.y, eps); \ + } + + #define EXPECT_POINT3_NEAR(p1, p2, eps) \ + { \ + EXPECT_NEAR(p1.x, p2.x, eps); \ + EXPECT_NEAR(p1.y, p2.y, eps); \ + EXPECT_NEAR(p1.z, p2.z, eps); \ + } + #define ASSERT_POINT3_NEAR(p1, p2, eps) \ + { \ + ASSERT_NEAR(p1.x, p2.x, eps); \ + ASSERT_NEAR(p1.y, p2.y, eps); \ + ASSERT_NEAR(p1.z, p2.z, eps); \ + } + + CV_EXPORTS double checkSimilarity(cv::InputArray m1, cv::InputArray m2); + + #define EXPECT_MAT_SIMILAR(mat1, mat2, eps) \ + { \ + ASSERT_EQ(mat1.type(), mat2.type()); \ + ASSERT_EQ(mat1.size(), mat2.size()); \ + EXPECT_LE(checkSimilarity(mat1, mat2), eps); \ + } + #define ASSERT_MAT_SIMILAR(mat1, mat2, eps) \ + { \ + ASSERT_EQ(mat1.type(), mat2.type()); \ + ASSERT_EQ(mat1.size(), mat2.size()); \ + ASSERT_LE(checkSimilarity(mat1, mat2), eps); \ + } + + ////////////////////////////////////////////////////////////////////// + // Helper structs for value-parameterized tests + + #define GPU_TEST_P(test_case_name, test_name) \ + class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ + : public test_case_name { \ + public: \ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \ + virtual void TestBody(); \ + private: \ + void UnsafeTestBody(); \ + static int AddToRegistry() { \ + ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ + GetTestCasePatternHolder(\ + #test_case_name, __FILE__, __LINE__)->AddTestPattern(\ + #test_case_name, \ + #test_name, \ + new ::testing::internal::TestMetaFactory< \ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \ + return 0; \ + } \ + static int gtest_registering_dummy_; \ + GTEST_DISALLOW_COPY_AND_ASSIGN_(\ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ + }; \ + int GTEST_TEST_CLASS_NAME_(test_case_name, \ + test_name)::gtest_registering_dummy_ = \ + GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ + void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() \ + { \ + try \ + { \ + UnsafeTestBody(); \ + } \ + catch (...) \ + { \ + cv::gpu::resetDevice(); \ + throw; \ + } \ + } \ + void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::UnsafeTestBody() + + #define PARAM_TEST_CASE(name, ...) struct name : testing::TestWithParam< std::tr1::tuple< __VA_ARGS__ > > + #define GET_PARAM(k) std::tr1::get< k >(GetParam()) + + #define DIFFERENT_SIZES testing::Values(cv::Size(128, 128), cv::Size(113, 113)) + + // Depth + + using perf::MatDepth; + + #define ALL_DEPTH testing::Values(MatDepth(CV_8U), MatDepth(CV_8S), MatDepth(CV_16U), MatDepth(CV_16S), MatDepth(CV_32S), MatDepth(CV_32F), MatDepth(CV_64F)) + + #define DEPTH_PAIRS testing::Values(std::make_pair(MatDepth(CV_8U), MatDepth(CV_8U)), \ + std::make_pair(MatDepth(CV_8U), MatDepth(CV_16U)), \ + std::make_pair(MatDepth(CV_8U), MatDepth(CV_16S)), \ + std::make_pair(MatDepth(CV_8U), MatDepth(CV_32S)), \ + std::make_pair(MatDepth(CV_8U), MatDepth(CV_32F)), \ + std::make_pair(MatDepth(CV_8U), MatDepth(CV_64F)), \ + \ + std::make_pair(MatDepth(CV_16U), MatDepth(CV_16U)), \ + std::make_pair(MatDepth(CV_16U), MatDepth(CV_32S)), \ + std::make_pair(MatDepth(CV_16U), MatDepth(CV_32F)), \ + std::make_pair(MatDepth(CV_16U), MatDepth(CV_64F)), \ + \ + std::make_pair(MatDepth(CV_16S), MatDepth(CV_16S)), \ + std::make_pair(MatDepth(CV_16S), MatDepth(CV_32S)), \ + std::make_pair(MatDepth(CV_16S), MatDepth(CV_32F)), \ + std::make_pair(MatDepth(CV_16S), MatDepth(CV_64F)), \ + \ + std::make_pair(MatDepth(CV_32S), MatDepth(CV_32S)), \ + std::make_pair(MatDepth(CV_32S), MatDepth(CV_32F)), \ + std::make_pair(MatDepth(CV_32S), MatDepth(CV_64F)), \ + \ + std::make_pair(MatDepth(CV_32F), MatDepth(CV_32F)), \ + std::make_pair(MatDepth(CV_32F), MatDepth(CV_64F)), \ + \ + std::make_pair(MatDepth(CV_64F), MatDepth(CV_64F))) + + // Type + + using perf::MatType; + + //! return vector with types from specified range. + CV_EXPORTS std::vector types(int depth_start, int depth_end, int cn_start, int cn_end); + + //! return vector with all types (depth: CV_8U-CV_64F, channels: 1-4). + CV_EXPORTS const std::vector& all_types(); + + #define ALL_TYPES testing::ValuesIn(all_types()) + #define TYPES(depth_start, depth_end, cn_start, cn_end) testing::ValuesIn(types(depth_start, depth_end, cn_start, cn_end)) + + // ROI + + class UseRoi + { + public: + inline UseRoi(bool val = false) : val_(val) {} + + inline operator bool() const { return val_; } + + private: + bool val_; + }; + + CV_EXPORTS void PrintTo(const UseRoi& useRoi, std::ostream* os); + + #define WHOLE_SUBMAT testing::Values(UseRoi(false), UseRoi(true)) + + // Direct/Inverse + + class Inverse + { + public: + inline Inverse(bool val = false) : val_(val) {} + + inline operator bool() const { return val_; } + + private: + bool val_; + }; + + CV_EXPORTS void PrintTo(const Inverse& useRoi, std::ostream* os); + + #define DIRECT_INVERSE testing::Values(Inverse(false), Inverse(true)) + + // Param class + + #define IMPLEMENT_PARAM_CLASS(name, type) \ + class name \ + { \ + public: \ + name ( type arg = type ()) : val_(arg) {} \ + operator type () const {return val_;} \ + private: \ + type val_; \ + }; \ + inline void PrintTo( name param, std::ostream* os) \ + { \ + *os << #name << "(" << testing::PrintToString(static_cast< type >(param)) << ")"; \ + } + + IMPLEMENT_PARAM_CLASS(Channels, int) + + #define ALL_CHANNELS testing::Values(Channels(1), Channels(2), Channels(3), Channels(4)) + #define IMAGE_CHANNELS testing::Values(Channels(1), Channels(3), Channels(4)) + + // Flags and enums + + CV_ENUM(NormCode, cv::NORM_INF, cv::NORM_L1, cv::NORM_L2, cv::NORM_TYPE_MASK, cv::NORM_RELATIVE, cv::NORM_MINMAX) + + CV_ENUM(Interpolation, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC, cv::INTER_AREA) + + CV_ENUM(BorderType, cv::BORDER_REFLECT101, cv::BORDER_REPLICATE, cv::BORDER_CONSTANT, cv::BORDER_REFLECT, cv::BORDER_WRAP) + #define ALL_BORDER_TYPES testing::Values(BorderType(cv::BORDER_REFLECT101), BorderType(cv::BORDER_REPLICATE), BorderType(cv::BORDER_CONSTANT), BorderType(cv::BORDER_REFLECT), BorderType(cv::BORDER_WRAP)) + + CV_FLAGS(WarpFlags, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC, cv::WARP_INVERSE_MAP) + + ////////////////////////////////////////////////////////////////////// + // Features2D + + CV_EXPORTS testing::AssertionResult assertKeyPointsEquals(const char* gold_expr, const char* actual_expr, std::vector& gold, std::vector& actual); + + #define ASSERT_KEYPOINTS_EQ(gold, actual) EXPECT_PRED_FORMAT2(assertKeyPointsEquals, gold, actual) + + CV_EXPORTS int getMatchedPointsCount(std::vector& gold, std::vector& actual); + CV_EXPORTS int getMatchedPointsCount(const std::vector& keypoints1, const std::vector& keypoints2, const std::vector& matches); + + ////////////////////////////////////////////////////////////////////// + // Other + + CV_EXPORTS void dumpImage(const std::string& fileName, const cv::Mat& image); + CV_EXPORTS void showDiff(cv::InputArray gold, cv::InputArray actual, double eps); + + CV_EXPORTS void printCudaInfo(); +} + +namespace cv { namespace gpu +{ + CV_EXPORTS void PrintTo(const DeviceInfo& info, std::ostream* os); +}} + +#endif // __OPENCV_GPU_TEST_UTILITY_HPP__ diff --git a/modules/ts/src/gpu_perf.cpp b/modules/ts/src/gpu_perf.cpp new file mode 100644 index 0000000000..a81dd13385 --- /dev/null +++ b/modules/ts/src/gpu_perf.cpp @@ -0,0 +1,313 @@ +#include "opencv2/ts/gpu_perf.hpp" +#include "opencv2/core/gpumat.hpp" + +#include "cvconfig.h" + +#ifdef HAVE_CUDA + #include +#endif + +using namespace cv; + +namespace perf +{ + Mat readImage(const string& fileName, int flags) + { + return imread(perf::TestBase::getDataPath(fileName), flags); + } + + void PrintTo(const CvtColorInfo& info, std::ostream* os) + { + static const char* str[] = + { + "BGR2BGRA", + "BGRA2BGR", + "BGR2RGBA", + "RGBA2BGR", + "BGR2RGB", + "BGRA2RGBA", + + "BGR2GRAY", + "RGB2GRAY", + "GRAY2BGR", + "GRAY2BGRA", + "BGRA2GRAY", + "RGBA2GRAY", + + "BGR2BGR565", + "RGB2BGR565", + "BGR5652BGR", + "BGR5652RGB", + "BGRA2BGR565", + "RGBA2BGR565", + "BGR5652BGRA", + "BGR5652RGBA", + + "GRAY2BGR565", + "BGR5652GRAY", + + "BGR2BGR555", + "RGB2BGR555", + "BGR5552BGR", + "BGR5552RGB", + "BGRA2BGR555", + "RGBA2BGR555", + "BGR5552BGRA", + "BGR5552RGBA", + + "GRAY2BGR555", + "BGR5552GRAY", + + "BGR2XYZ", + "RGB2XYZ", + "XYZ2BGR", + "XYZ2RGB", + + "BGR2YCrCb", + "RGB2YCrCb", + "YCrCb2BGR", + "YCrCb2RGB", + + "BGR2HSV", + "RGB2HSV", + + "", + "", + + "BGR2Lab", + "RGB2Lab", + + "BayerBG2BGR", + "BayerGB2BGR", + "BayerRG2BGR", + "BayerGR2BGR", + + "BGR2Luv", + "RGB2Luv", + + "BGR2HLS", + "RGB2HLS", + + "HSV2BGR", + "HSV2RGB", + + "Lab2BGR", + "Lab2RGB", + "Luv2BGR", + "Luv2RGB", + + "HLS2BGR", + "HLS2RGB", + + "BayerBG2BGR_VNG", + "BayerGB2BGR_VNG", + "BayerRG2BGR_VNG", + "BayerGR2BGR_VNG", + + "BGR2HSV_FULL", + "RGB2HSV_FULL", + "BGR2HLS_FULL", + "RGB2HLS_FULL", + + "HSV2BGR_FULL", + "HSV2RGB_FULL", + "HLS2BGR_FULL", + "HLS2RGB_FULL", + + "LBGR2Lab", + "LRGB2Lab", + "LBGR2Luv", + "LRGB2Luv", + + "Lab2LBGR", + "Lab2LRGB", + "Luv2LBGR", + "Luv2LRGB", + + "BGR2YUV", + "RGB2YUV", + "YUV2BGR", + "YUV2RGB", + + "BayerBG2GRAY", + "BayerGB2GRAY", + "BayerRG2GRAY", + "BayerGR2GRAY", + + //YUV 4:2:0 formats family + "YUV2RGB_NV12", + "YUV2BGR_NV12", + "YUV2RGB_NV21", + "YUV2BGR_NV21", + + "YUV2RGBA_NV12", + "YUV2BGRA_NV12", + "YUV2RGBA_NV21", + "YUV2BGRA_NV21", + + "YUV2RGB_YV12", + "YUV2BGR_YV12", + "YUV2RGB_IYUV", + "YUV2BGR_IYUV", + + "YUV2RGBA_YV12", + "YUV2BGRA_YV12", + "YUV2RGBA_IYUV", + "YUV2BGRA_IYUV", + + "YUV2GRAY_420", + + //YUV 4:2:2 formats family + "YUV2RGB_UYVY", + "YUV2BGR_UYVY", + "YUV2RGB_VYUY", + "YUV2BGR_VYUY", + + "YUV2RGBA_UYVY", + "YUV2BGRA_UYVY", + "YUV2RGBA_VYUY", + "YUV2BGRA_VYUY", + + "YUV2RGB_YUY2", + "YUV2BGR_YUY2", + "YUV2RGB_YVYU", + "YUV2BGR_YVYU", + + "YUV2RGBA_YUY2", + "YUV2BGRA_YUY2", + "YUV2RGBA_YVYU", + "YUV2BGRA_YVYU", + + "YUV2GRAY_UYVY", + "YUV2GRAY_YUY2", + + // alpha premultiplication + "RGBA2mRGBA", + "mRGBA2RGBA", + + "COLORCVT_MAX" + }; + + *os << str[info.code]; + } + + static void printOsInfo() + { + #if defined _WIN32 + # if defined _WIN64 + printf("[----------]\n[ GPU INFO ] \tRun on OS Windows x64.\n[----------]\n"), fflush(stdout); + # else + printf("[----------]\n[ GPU INFO ] \tRun on OS Windows x32.\n[----------]\n"), fflush(stdout); + # endif + #elif defined linux + # if defined _LP64 + printf("[----------]\n[ GPU INFO ] \tRun on OS Linux x64.\n[----------]\n"), fflush(stdout); + # else + printf("[----------]\n[ GPU INFO ] \tRun on OS Linux x32.\n[----------]\n"), fflush(stdout); + # endif + #elif defined __APPLE__ + # if defined _LP64 + printf("[----------]\n[ GPU INFO ] \tRun on OS Apple x64.\n[----------]\n"), fflush(stdout); + # else + printf("[----------]\n[ GPU INFO ] \tRun on OS Apple x32.\n[----------]\n"), fflush(stdout); + # endif + #endif + + } + + void printCudaInfo() + { + printOsInfo(); + #ifndef HAVE_CUDA + printf("[----------]\n[ GPU INFO ] \tOpenCV was built without CUDA support.\n[----------]\n"), fflush(stdout); + #else + int driver; + cudaDriverGetVersion(&driver); + + printf("[----------]\n"), fflush(stdout); + printf("[ GPU INFO ] \tCUDA Driver version: %d.\n", driver), fflush(stdout); + printf("[ GPU INFO ] \tCUDA Runtime version: %d.\n", CUDART_VERSION), fflush(stdout); + printf("[----------]\n"), fflush(stdout); + + printf("[----------]\n"), fflush(stdout); + printf("[ GPU INFO ] \tGPU module was compiled for the following GPU archs.\n"), fflush(stdout); + printf("[ BIN ] \t%s.\n", CUDA_ARCH_BIN), fflush(stdout); + printf("[ PTX ] \t%s.\n", CUDA_ARCH_PTX), fflush(stdout); + printf("[----------]\n"), fflush(stdout); + + printf("[----------]\n"), fflush(stdout); + int deviceCount = cv::gpu::getCudaEnabledDeviceCount(); + printf("[ GPU INFO ] \tCUDA device count:: %d.\n", deviceCount), fflush(stdout); + printf("[----------]\n"), fflush(stdout); + + for (int i = 0; i < deviceCount; ++i) + { + cv::gpu::DeviceInfo info(i); + + printf("[----------]\n"), fflush(stdout); + printf("[ DEVICE ] \t# %d %s.\n", i, info.name().c_str()), fflush(stdout); + printf("[ ] \tCompute capability: %d.%d\n", (int)info.majorVersion(), (int)info.minorVersion()), fflush(stdout); + printf("[ ] \tMulti Processor Count: %d\n", info.multiProcessorCount()), fflush(stdout); + printf("[ ] \tTotal memory: %d Mb\n", static_cast(static_cast(info.totalMemory() / 1024.0) / 1024.0)), fflush(stdout); + printf("[ ] \tFree memory: %d Mb\n", static_cast(static_cast(info.freeMemory() / 1024.0) / 1024.0)), fflush(stdout); + if (!info.isCompatible()) + printf("[ GPU INFO ] \tThis device is NOT compatible with current GPU module build\n"); + printf("[----------]\n"), fflush(stdout); + } + + #endif + } + + struct KeypointIdxCompare + { + std::vector* keypoints; + + explicit KeypointIdxCompare(std::vector* _keypoints) : keypoints(_keypoints) {} + + bool operator ()(size_t i1, size_t i2) const + { + cv::KeyPoint kp1 = (*keypoints)[i1]; + cv::KeyPoint kp2 = (*keypoints)[i2]; + if (kp1.pt.x != kp2.pt.x) + return kp1.pt.x < kp2.pt.x; + if (kp1.pt.y != kp2.pt.y) + return kp1.pt.y < kp2.pt.y; + if (kp1.response != kp2.response) + return kp1.response < kp2.response; + return kp1.octave < kp2.octave; + } + }; + + void sortKeyPoints(std::vector& keypoints, cv::InputOutputArray _descriptors) + { + std::vector indexies(keypoints.size()); + for (size_t i = 0; i < indexies.size(); ++i) + indexies[i] = i; + + std::sort(indexies.begin(), indexies.end(), KeypointIdxCompare(&keypoints)); + + std::vector new_keypoints; + cv::Mat new_descriptors; + + new_keypoints.resize(keypoints.size()); + + cv::Mat descriptors; + if (_descriptors.needed()) + { + descriptors = _descriptors.getMat(); + new_descriptors.create(descriptors.size(), descriptors.type()); + } + + for (size_t i = 0; i < indexies.size(); ++i) + { + size_t new_idx = indexies[i]; + new_keypoints[i] = keypoints[new_idx]; + if (!new_descriptors.empty()) + descriptors.row((int) new_idx).copyTo(new_descriptors.row((int) i)); + } + + keypoints.swap(new_keypoints); + if (_descriptors.needed()) + new_descriptors.copyTo(_descriptors); + } +} diff --git a/modules/ts/src/gpu_test.cpp b/modules/ts/src/gpu_test.cpp new file mode 100644 index 0000000000..2ac9467b44 --- /dev/null +++ b/modules/ts/src/gpu_test.cpp @@ -0,0 +1,479 @@ +#include "opencv2/ts/gpu_test.hpp" +#include + +using namespace cv; +using namespace cv::gpu; +using namespace cvtest; +using namespace testing; +using namespace testing::internal; + +namespace perf +{ + CV_EXPORTS void printCudaInfo(); +} + +namespace cvtest +{ + ////////////////////////////////////////////////////////////////////// + // random generators + + int randomInt(int minVal, int maxVal) + { + RNG& rng = TS::ptr()->get_rng(); + return rng.uniform(minVal, maxVal); + } + + double randomDouble(double minVal, double maxVal) + { + RNG& rng = TS::ptr()->get_rng(); + return rng.uniform(minVal, maxVal); + } + + Size randomSize(int minVal, int maxVal) + { + return Size(randomInt(minVal, maxVal), randomInt(minVal, maxVal)); + } + + Scalar randomScalar(double minVal, double maxVal) + { + return Scalar(randomDouble(minVal, maxVal), randomDouble(minVal, maxVal), randomDouble(minVal, maxVal), randomDouble(minVal, maxVal)); + } + + Mat randomMat(Size size, int type, double minVal, double maxVal) + { + return randomMat(TS::ptr()->get_rng(), size, type, minVal, maxVal, false); + } + + ////////////////////////////////////////////////////////////////////// + // GpuMat create + + GpuMat createMat(Size size, int type, bool useRoi) + { + Size size0 = size; + + if (useRoi) + { + size0.width += randomInt(5, 15); + size0.height += randomInt(5, 15); + } + + GpuMat d_m(size0, type); + + if (size0 != size) + d_m = d_m(Rect((size0.width - size.width) / 2, (size0.height - size.height) / 2, size.width, size.height)); + + return d_m; + } + + GpuMat loadMat(const Mat& m, bool useRoi) + { + GpuMat d_m = createMat(m.size(), m.type(), useRoi); + d_m.upload(m); + return d_m; + } + + ////////////////////////////////////////////////////////////////////// + // Image load + + Mat readImage(const std::string& fileName, int flags) + { + return imread(TS::ptr()->get_data_path() + fileName, flags); + } + + Mat readImageType(const std::string& fname, int type) + { + Mat src = readImage(fname, CV_MAT_CN(type) == 1 ? IMREAD_GRAYSCALE : IMREAD_COLOR); + if (CV_MAT_CN(type) == 4) + { + Mat temp; + cvtColor(src, temp, COLOR_BGR2BGRA); + swap(src, temp); + } + src.convertTo(src, CV_MAT_DEPTH(type), CV_MAT_DEPTH(type) == CV_32F ? 1.0 / 255.0 : 1.0); + return src; + } + + ////////////////////////////////////////////////////////////////////// + // Gpu devices + + bool supportFeature(const DeviceInfo& info, FeatureSet feature) + { + return TargetArchs::builtWith(feature) && info.supports(feature); + } + + DeviceManager& DeviceManager::instance() + { + static DeviceManager obj; + return obj; + } + + void DeviceManager::load(int i) + { + devices_.clear(); + devices_.reserve(1); + + std::ostringstream msg; + + if (i < 0 || i >= getCudaEnabledDeviceCount()) + { + msg << "Incorrect device number - " << i; + throw std::runtime_error(msg.str()); + } + + DeviceInfo info(i); + + if (!info.isCompatible()) + { + msg << "Device " << i << " [" << info.name() << "] is NOT compatible with current GPU module build"; + throw std::runtime_error(msg.str()); + } + + devices_.push_back(info); + } + + void DeviceManager::loadAll() + { + int deviceCount = getCudaEnabledDeviceCount(); + + devices_.clear(); + devices_.reserve(deviceCount); + + for (int i = 0; i < deviceCount; ++i) + { + DeviceInfo info(i); + if (info.isCompatible()) + { + devices_.push_back(info); + } + } + } + + ////////////////////////////////////////////////////////////////////// + // Additional assertion + + namespace + { + template std::string printMatValImpl(const Mat& m, Point p) + { + const int cn = m.channels(); + + std::ostringstream ostr; + ostr << "("; + + p.x /= cn; + + ostr << static_cast(m.at(p.y, p.x * cn)); + for (int c = 1; c < m.channels(); ++c) + { + ostr << ", " << static_cast(m.at(p.y, p.x * cn + c)); + } + ostr << ")"; + + return ostr.str(); + } + + std::string printMatVal(const Mat& m, Point p) + { + typedef std::string (*func_t)(const Mat& m, Point p); + + static const func_t funcs[] = + { + printMatValImpl, printMatValImpl, printMatValImpl, printMatValImpl, + printMatValImpl, printMatValImpl, printMatValImpl + }; + + return funcs[m.depth()](m, p); + } + } + + void minMaxLocGold(const Mat& src, double* minVal_, double* maxVal_, Point* minLoc_, Point* maxLoc_, const Mat& mask) + { + if (src.depth() != CV_8S) + { + minMaxLoc(src, minVal_, maxVal_, minLoc_, maxLoc_, mask); + return; + } + + // OpenCV's minMaxLoc doesn't support CV_8S type + double minVal = std::numeric_limits::max(); + Point minLoc(-1, -1); + + double maxVal = -std::numeric_limits::max(); + Point maxLoc(-1, -1); + + for (int y = 0; y < src.rows; ++y) + { + const schar* src_row = src.ptr(y); + const uchar* mask_row = mask.empty() ? 0 : mask.ptr(y); + + for (int x = 0; x < src.cols; ++x) + { + if (!mask_row || mask_row[x]) + { + schar val = src_row[x]; + + if (val < minVal) + { + minVal = val; + minLoc = cv::Point(x, y); + } + + if (val > maxVal) + { + maxVal = val; + maxLoc = cv::Point(x, y); + } + } + } + } + + if (minVal_) *minVal_ = minVal; + if (maxVal_) *maxVal_ = maxVal; + + if (minLoc_) *minLoc_ = minLoc; + if (maxLoc_) *maxLoc_ = maxLoc; + } + + Mat getMat(InputArray arr) + { + if (arr.kind() == _InputArray::GPU_MAT) + { + Mat m; + arr.getGpuMat().download(m); + return m; + } + + return arr.getMat(); + } + + AssertionResult assertMatNear(const char* expr1, const char* expr2, const char* eps_expr, InputArray m1_, InputArray m2_, double eps) + { + Mat m1 = getMat(m1_); + Mat m2 = getMat(m2_); + + if (m1.size() != m2.size()) + { + return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \"" + << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \"" + << expr2 << "\" [" << PrintToString(m2.size()) << "]"; + } + + if (m1.type() != m2.type()) + { + return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \"" + << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \"" + << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]"; + } + + Mat diff; + absdiff(m1.reshape(1), m2.reshape(1), diff); + + double maxVal = 0.0; + Point maxLoc; + minMaxLocGold(diff, 0, &maxVal, 0, &maxLoc); + + if (maxVal > eps) + { + return AssertionFailure() << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2 + << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")" + << ", which exceeds \"" << eps_expr << "\", where \"" + << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \"" + << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \"" + << eps_expr << "\" evaluates to " << eps; + } + + return AssertionSuccess(); + } + + double checkSimilarity(InputArray m1, InputArray m2) + { + Mat diff; + matchTemplate(getMat(m1), getMat(m2), diff, CV_TM_CCORR_NORMED); + return std::abs(diff.at(0, 0) - 1.f); + } + + ////////////////////////////////////////////////////////////////////// + // Helper structs for value-parameterized tests + + vector types(int depth_start, int depth_end, int cn_start, int cn_end) + { + vector v; + + v.reserve((depth_end - depth_start + 1) * (cn_end - cn_start + 1)); + + for (int depth = depth_start; depth <= depth_end; ++depth) + { + for (int cn = cn_start; cn <= cn_end; ++cn) + { + v.push_back(MatType(CV_MAKE_TYPE(depth, cn))); + } + } + + return v; + } + + const vector& all_types() + { + static vector v = types(CV_8U, CV_64F, 1, 4); + + return v; + } + + void PrintTo(const UseRoi& useRoi, std::ostream* os) + { + if (useRoi) + (*os) << "sub matrix"; + else + (*os) << "whole matrix"; + } + + void PrintTo(const Inverse& inverse, std::ostream* os) + { + if (inverse) + (*os) << "inverse"; + else + (*os) << "direct"; + } + + ////////////////////////////////////////////////////////////////////// + // Other + + void dumpImage(const std::string& fileName, const Mat& image) + { + imwrite(TS::ptr()->get_data_path() + fileName, image); + } + + void showDiff(InputArray gold_, InputArray actual_, double eps) + { + Mat gold = getMat(gold_); + Mat actual = getMat(actual_); + + Mat diff; + absdiff(gold, actual, diff); + threshold(diff, diff, eps, 255.0, cv::THRESH_BINARY); + + namedWindow("gold", WINDOW_NORMAL); + namedWindow("actual", WINDOW_NORMAL); + namedWindow("diff", WINDOW_NORMAL); + + imshow("gold", gold); + imshow("actual", actual); + imshow("diff", diff); + + waitKey(); + } + + namespace + { + bool keyPointsEquals(const cv::KeyPoint& p1, const cv::KeyPoint& p2) + { + const double maxPtDif = 1.0; + const double maxSizeDif = 1.0; + const double maxAngleDif = 2.0; + const double maxResponseDif = 0.1; + + double dist = cv::norm(p1.pt - p2.pt); + + if (dist < maxPtDif && + fabs(p1.size - p2.size) < maxSizeDif && + abs(p1.angle - p2.angle) < maxAngleDif && + abs(p1.response - p2.response) < maxResponseDif && + p1.octave == p2.octave && + p1.class_id == p2.class_id) + { + return true; + } + + return false; + } + + struct KeyPointLess : std::binary_function + { + bool operator()(const cv::KeyPoint& kp1, const cv::KeyPoint& kp2) const + { + return kp1.pt.y < kp2.pt.y || (kp1.pt.y == kp2.pt.y && kp1.pt.x < kp2.pt.x); + } + }; + } + + testing::AssertionResult assertKeyPointsEquals(const char* gold_expr, const char* actual_expr, std::vector& gold, std::vector& actual) + { + if (gold.size() != actual.size()) + { + return testing::AssertionFailure() << "KeyPoints size mistmach\n" + << "\"" << gold_expr << "\" : " << gold.size() << "\n" + << "\"" << actual_expr << "\" : " << actual.size(); + } + + std::sort(actual.begin(), actual.end(), KeyPointLess()); + std::sort(gold.begin(), gold.end(), KeyPointLess()); + + for (size_t i = 0; i < gold.size(); ++i) + { + const cv::KeyPoint& p1 = gold[i]; + const cv::KeyPoint& p2 = actual[i]; + + if (!keyPointsEquals(p1, p2)) + { + return testing::AssertionFailure() << "KeyPoints differ at " << i << "\n" + << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n" + << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n" + << "size : " << p1.size << " vs " << p2.size << "\n" + << "angle : " << p1.angle << " vs " << p2.angle << "\n" + << "response : " << p1.response << " vs " << p2.response << "\n" + << "octave : " << p1.octave << " vs " << p2.octave << "\n" + << "class_id : " << p1.class_id << " vs " << p2.class_id; + } + } + + return ::testing::AssertionSuccess(); + } + + int getMatchedPointsCount(std::vector& gold, std::vector& actual) + { + std::sort(actual.begin(), actual.end(), KeyPointLess()); + std::sort(gold.begin(), gold.end(), KeyPointLess()); + + int validCount = 0; + + for (size_t i = 0; i < gold.size(); ++i) + { + const cv::KeyPoint& p1 = gold[i]; + const cv::KeyPoint& p2 = actual[i]; + + if (keyPointsEquals(p1, p2)) + ++validCount; + } + + return validCount; + } + + int getMatchedPointsCount(const std::vector& keypoints1, const std::vector& keypoints2, const std::vector& matches) + { + int validCount = 0; + + for (size_t i = 0; i < matches.size(); ++i) + { + const cv::DMatch& m = matches[i]; + + const cv::KeyPoint& p1 = keypoints1[m.queryIdx]; + const cv::KeyPoint& p2 = keypoints2[m.trainIdx]; + + if (keyPointsEquals(p1, p2)) + ++validCount; + } + + return validCount; + } + + void printCudaInfo() + { + perf::printCudaInfo(); + } +} + + +void cv::gpu::PrintTo(const DeviceInfo& info, std::ostream* os) +{ + (*os) << info.name(); +} From fd7bf0b76634396e14596ab4e82fb95eeb99811e Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Fri, 15 Mar 2013 14:09:39 +0400 Subject: [PATCH 0029/1333] moved SURF_GPU and VIBE to gpunonfree module --- modules/gpu/CMakeLists.txt | 2 +- .../doc/feature_detection_and_description.rst | 103 ------- modules/gpu/doc/video.rst | 71 ----- modules/gpu/include/opencv2/gpu/gpu.hpp | 111 ------- modules/gpu/perf/perf_video.cpp | 65 ---- modules/gpu/test/test_bgfg.cpp | 41 --- modules/gpunonfree/CMakeLists.txt | 31 ++ .../doc/feature_detection_and_description.rst | 107 +++++++ modules/gpunonfree/doc/gpunonfree.rst | 9 + modules/gpunonfree/doc/video.rst | 79 +++++ .../include/opencv2/gpunonfree/gpunonfree.hpp | 167 ++++++++++ modules/gpunonfree/perf/perf_gpunonfree.cpp | 118 ++++++++ modules/gpunonfree/perf/perf_main.cpp | 5 + modules/gpunonfree/perf/perf_precomp.cpp | 1 + modules/gpunonfree/perf/perf_precomp.hpp | 31 ++ modules/{gpu => gpunonfree}/src/cuda/surf.cu | 30 ++ .../src/cuda/vibe.cu} | 14 +- modules/gpunonfree/src/precomp.cpp | 45 +++ modules/gpunonfree/src/precomp.hpp | 71 +++++ modules/{gpu => gpunonfree}/src/surf.cpp | 0 .../bgfg_vibe.cpp => gpunonfree/src/vibe.cpp} | 0 modules/gpunonfree/test/test_gpunonfree.cpp | 286 ++++++++++++++++++ modules/gpunonfree/test/test_main.cpp | 119 ++++++++ modules/gpunonfree/test/test_precomp.cpp | 42 +++ modules/gpunonfree/test/test_precomp.hpp | 69 +++++ modules/stitching/CMakeLists.txt | 2 +- .../opencv2/stitching/detail/matchers.hpp | 6 +- modules/stitching/src/matchers.cpp | 2 +- modules/stitching/src/precomp.hpp | 3 + modules/stitching/src/stitcher.cpp | 2 +- samples/cpp/CMakeLists.txt | 11 +- samples/cpp/stitching_detailed.cpp | 2 +- samples/gpu/CMakeLists.txt | 9 +- samples/gpu/bgfg_segm.cpp | 37 ++- samples/gpu/driver_api_stereo_multi.cpp | 3 - samples/gpu/performance/CMakeLists.txt | 8 + samples/gpu/performance/tests.cpp | 10 +- samples/gpu/stereo_multi.cpp | 3 - samples/gpu/surf_keypoint_matcher.cpp | 15 + 39 files changed, 1317 insertions(+), 413 deletions(-) create mode 100644 modules/gpunonfree/CMakeLists.txt create mode 100644 modules/gpunonfree/doc/feature_detection_and_description.rst create mode 100644 modules/gpunonfree/doc/gpunonfree.rst create mode 100644 modules/gpunonfree/doc/video.rst create mode 100644 modules/gpunonfree/include/opencv2/gpunonfree/gpunonfree.hpp create mode 100644 modules/gpunonfree/perf/perf_gpunonfree.cpp create mode 100644 modules/gpunonfree/perf/perf_main.cpp create mode 100644 modules/gpunonfree/perf/perf_precomp.cpp create mode 100644 modules/gpunonfree/perf/perf_precomp.hpp rename modules/{gpu => gpunonfree}/src/cuda/surf.cu (96%) rename modules/{gpu/src/cuda/bgfg_vibe.cu => gpunonfree/src/cuda/vibe.cu} (95%) create mode 100644 modules/gpunonfree/src/precomp.cpp create mode 100644 modules/gpunonfree/src/precomp.hpp rename modules/{gpu => gpunonfree}/src/surf.cpp (100%) rename modules/{gpu/src/bgfg_vibe.cpp => gpunonfree/src/vibe.cpp} (100%) create mode 100644 modules/gpunonfree/test/test_gpunonfree.cpp create mode 100644 modules/gpunonfree/test/test_main.cpp create mode 100644 modules/gpunonfree/test/test_precomp.cpp create mode 100644 modules/gpunonfree/test/test_precomp.hpp diff --git a/modules/gpu/CMakeLists.txt b/modules/gpu/CMakeLists.txt index 26bf624c66..05b65f2413 100644 --- a/modules/gpu/CMakeLists.txt +++ b/modules/gpu/CMakeLists.txt @@ -3,7 +3,7 @@ if(ANDROID OR IOS) endif() set(the_description "GPU-accelerated Computer Vision") -ocv_add_module(gpu opencv_imgproc opencv_calib3d opencv_objdetect opencv_video opencv_nonfree opencv_photo opencv_legacy) +ocv_add_module(gpu opencv_imgproc opencv_calib3d opencv_objdetect opencv_video opencv_photo opencv_legacy) ocv_module_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/cuda") diff --git a/modules/gpu/doc/feature_detection_and_description.rst b/modules/gpu/doc/feature_detection_and_description.rst index ec75248040..191b0ada0f 100644 --- a/modules/gpu/doc/feature_detection_and_description.rst +++ b/modules/gpu/doc/feature_detection_and_description.rst @@ -5,109 +5,6 @@ Feature Detection and Description -gpu::SURF_GPU -------------- -.. ocv:class:: gpu::SURF_GPU - -Class used for extracting Speeded Up Robust Features (SURF) from an image. :: - - class SURF_GPU - { - public: - enum KeypointLayout - { - X_ROW = 0, - Y_ROW, - LAPLACIAN_ROW, - OCTAVE_ROW, - SIZE_ROW, - ANGLE_ROW, - HESSIAN_ROW, - ROWS_COUNT - }; - - //! the default constructor - SURF_GPU(); - //! the full constructor taking all the necessary parameters - explicit SURF_GPU(double _hessianThreshold, int _nOctaves=4, - int _nOctaveLayers=2, bool _extended=false, float _keypointsRatio=0.01f); - - //! returns the descriptor size in float's (64 or 128) - int descriptorSize() const; - - //! upload host keypoints to device memory - void uploadKeypoints(const vector& keypoints, - GpuMat& keypointsGPU); - //! download keypoints from device to host memory - void downloadKeypoints(const GpuMat& keypointsGPU, - vector& keypoints); - - //! download descriptors from device to host memory - void downloadDescriptors(const GpuMat& descriptorsGPU, - vector& descriptors); - - void operator()(const GpuMat& img, const GpuMat& mask, - GpuMat& keypoints); - - void operator()(const GpuMat& img, const GpuMat& mask, - GpuMat& keypoints, GpuMat& descriptors, - bool useProvidedKeypoints = false, - bool calcOrientation = true); - - void operator()(const GpuMat& img, const GpuMat& mask, - std::vector& keypoints); - - void operator()(const GpuMat& img, const GpuMat& mask, - std::vector& keypoints, GpuMat& descriptors, - bool useProvidedKeypoints = false, - bool calcOrientation = true); - - void operator()(const GpuMat& img, const GpuMat& mask, - std::vector& keypoints, - std::vector& descriptors, - bool useProvidedKeypoints = false, - bool calcOrientation = true); - - void releaseMemory(); - - // SURF parameters - double hessianThreshold; - int nOctaves; - int nOctaveLayers; - bool extended; - bool upright; - - //! max keypoints = keypointsRatio * img.size().area() - float keypointsRatio; - - GpuMat sum, mask1, maskSum, intBuffer; - - GpuMat det, trace; - - GpuMat maxPosBuffer; - }; - - -The class ``SURF_GPU`` implements Speeded Up Robust Features descriptor. There is a fast multi-scale Hessian keypoint detector that can be used to find the keypoints (which is the default option). But the descriptors can also be computed for the user-specified keypoints. Only 8-bit grayscale images are supported. - -The class ``SURF_GPU`` can store results in the GPU and CPU memory. It provides functions to convert results between CPU and GPU version ( ``uploadKeypoints``, ``downloadKeypoints``, ``downloadDescriptors`` ). The format of CPU results is the same as ``SURF`` results. GPU results are stored in ``GpuMat``. The ``keypoints`` matrix is :math:`\texttt{nFeatures} \times 7` matrix with the ``CV_32FC1`` type. - -* ``keypoints.ptr(X_ROW)[i]`` contains x coordinate of the i-th feature. -* ``keypoints.ptr(Y_ROW)[i]`` contains y coordinate of the i-th feature. -* ``keypoints.ptr(LAPLACIAN_ROW)[i]`` contains the laplacian sign of the i-th feature. -* ``keypoints.ptr(OCTAVE_ROW)[i]`` contains the octave of the i-th feature. -* ``keypoints.ptr(SIZE_ROW)[i]`` contains the size of the i-th feature. -* ``keypoints.ptr(ANGLE_ROW)[i]`` contain orientation of the i-th feature. -* ``keypoints.ptr(HESSIAN_ROW)[i]`` contains the response of the i-th feature. - -The ``descriptors`` matrix is :math:`\texttt{nFeatures} \times \texttt{descriptorSize}` matrix with the ``CV_32FC1`` type. - -The class ``SURF_GPU`` uses some buffers and provides access to it. All buffers can be safely released between function calls. - -.. seealso:: :ocv:class:`SURF` - - - gpu::FAST_GPU ------------- .. ocv:class:: gpu::FAST_GPU diff --git a/modules/gpu/doc/video.rst b/modules/gpu/doc/video.rst index fc5b1fb6cb..284bb17fa9 100644 --- a/modules/gpu/doc/video.rst +++ b/modules/gpu/doc/video.rst @@ -579,76 +579,6 @@ Releases all inner buffer's memory. -gpu::VIBE_GPU -------------- -.. ocv:class:: gpu::VIBE_GPU - -Class used for background/foreground segmentation. :: - - class VIBE_GPU - { - public: - explicit VIBE_GPU(unsigned long rngSeed = 1234567); - - void initialize(const GpuMat& firstFrame, Stream& stream = Stream::Null()); - - void operator()(const GpuMat& frame, GpuMat& fgmask, Stream& stream = Stream::Null()); - - void release(); - - ... - }; - -The class discriminates between foreground and background pixels by building and maintaining a model of the background. Any pixel which does not fit this model is then deemed to be foreground. The class implements algorithm described in [VIBE2011]_. - - - -gpu::VIBE_GPU::VIBE_GPU ------------------------ -The constructor. - -.. ocv:function:: gpu::VIBE_GPU::VIBE_GPU(unsigned long rngSeed = 1234567) - - :param rngSeed: Value used to initiate a random sequence. - -Default constructor sets all parameters to default values. - - - -gpu::VIBE_GPU::initialize -------------------------- -Initialize background model and allocates all inner buffers. - -.. ocv:function:: void gpu::VIBE_GPU::initialize(const GpuMat& firstFrame, Stream& stream = Stream::Null()) - - :param firstFrame: First frame from video sequence. - - :param stream: Stream for the asynchronous version. - - - -gpu::VIBE_GPU::operator() -------------------------- -Updates the background model and returns the foreground mask - -.. ocv:function:: void gpu::VIBE_GPU::operator()(const GpuMat& frame, GpuMat& fgmask, Stream& stream = Stream::Null()) - - :param frame: Next video frame. - - :param fgmask: The output foreground mask as an 8-bit binary image. - - :param stream: Stream for the asynchronous version. - - - -gpu::VIBE_GPU::release ----------------------- -Releases all inner buffer's memory. - -.. ocv:function:: void gpu::VIBE_GPU::release() - - - gpu::GMG_GPU ------------ .. ocv:class:: gpu::GMG_GPU @@ -1209,5 +1139,4 @@ Parse next video frame. Implementation must call this method after new frame was .. [MOG2001] P. KadewTraKuPong and R. Bowden. *An improved adaptive background mixture model for real-time tracking with shadow detection*. Proc. 2nd European Workshop on Advanced Video-Based Surveillance Systems, 2001 .. [MOG2004] Z. Zivkovic. *Improved adaptive Gausian mixture model for background subtraction*. International Conference Pattern Recognition, UK, August, 2004 .. [ShadowDetect2003] Prati, Mikic, Trivedi and Cucchiarra. *Detecting Moving Shadows...*. IEEE PAMI, 2003 -.. [VIBE2011] O. Barnich and M. Van D Roogenbroeck. *ViBe: A universal background subtraction algorithm for video sequences*. IEEE Transactions on Image Processing, 20(6) :1709-1724, June 2011 .. [GMG2012] A. Godbehere, A. Matsukawa and K. Goldberg. *Visual Tracking of Human Visitors under Variable-Lighting Conditions for a Responsive Audio Art Installation*. American Control Conference, Montreal, June 2012 diff --git a/modules/gpu/include/opencv2/gpu/gpu.hpp b/modules/gpu/include/opencv2/gpu/gpu.hpp index 802954c71f..bb74d1a52d 100644 --- a/modules/gpu/include/opencv2/gpu/gpu.hpp +++ b/modules/gpu/include/opencv2/gpu/gpu.hpp @@ -1557,82 +1557,6 @@ private: friend class CascadeClassifier_GPU_LBP; }; -////////////////////////////////// SURF ////////////////////////////////////////// - -class CV_EXPORTS SURF_GPU -{ -public: - enum KeypointLayout - { - X_ROW = 0, - Y_ROW, - LAPLACIAN_ROW, - OCTAVE_ROW, - SIZE_ROW, - ANGLE_ROW, - HESSIAN_ROW, - ROWS_COUNT - }; - - //! the default constructor - SURF_GPU(); - //! the full constructor taking all the necessary parameters - explicit SURF_GPU(double _hessianThreshold, int _nOctaves=4, - int _nOctaveLayers=2, bool _extended=false, float _keypointsRatio=0.01f, bool _upright = false); - - //! returns the descriptor size in float's (64 or 128) - int descriptorSize() const; - - //! upload host keypoints to device memory - void uploadKeypoints(const vector& keypoints, GpuMat& keypointsGPU); - //! download keypoints from device to host memory - void downloadKeypoints(const GpuMat& keypointsGPU, vector& keypoints); - - //! download descriptors from device to host memory - void downloadDescriptors(const GpuMat& descriptorsGPU, vector& descriptors); - - //! finds the keypoints using fast hessian detector used in SURF - //! supports CV_8UC1 images - //! keypoints will have nFeature cols and 6 rows - //! keypoints.ptr(X_ROW)[i] will contain x coordinate of i'th feature - //! keypoints.ptr(Y_ROW)[i] will contain y coordinate of i'th feature - //! keypoints.ptr(LAPLACIAN_ROW)[i] will contain laplacian sign of i'th feature - //! keypoints.ptr(OCTAVE_ROW)[i] will contain octave of i'th feature - //! keypoints.ptr(SIZE_ROW)[i] will contain size of i'th feature - //! keypoints.ptr(ANGLE_ROW)[i] will contain orientation of i'th feature - //! keypoints.ptr(HESSIAN_ROW)[i] will contain response of i'th feature - void operator()(const GpuMat& img, const GpuMat& mask, GpuMat& keypoints); - //! finds the keypoints and computes their descriptors. - //! Optionally it can compute descriptors for the user-provided keypoints and recompute keypoints direction - void operator()(const GpuMat& img, const GpuMat& mask, GpuMat& keypoints, GpuMat& descriptors, - bool useProvidedKeypoints = false); - - void operator()(const GpuMat& img, const GpuMat& mask, std::vector& keypoints); - void operator()(const GpuMat& img, const GpuMat& mask, std::vector& keypoints, GpuMat& descriptors, - bool useProvidedKeypoints = false); - - void operator()(const GpuMat& img, const GpuMat& mask, std::vector& keypoints, std::vector& descriptors, - bool useProvidedKeypoints = false); - - void releaseMemory(); - - // SURF parameters - double hessianThreshold; - int nOctaves; - int nOctaveLayers; - bool extended; - bool upright; - - //! max keypoints = min(keypointsRatio * img.size().area(), 65535) - float keypointsRatio; - - GpuMat sum, mask1, maskSum, intBuffer; - - GpuMat det, trace; - - GpuMat maxPosBuffer; -}; - ////////////////////////////////// FAST ////////////////////////////////////////// class CV_EXPORTS FAST_GPU @@ -2307,41 +2231,6 @@ private: GpuMat bgmodelUsedModes_; //keep track of number of modes per pixel }; -/*! - * The class implements the following algorithm: - * "ViBe: A universal background subtraction algorithm for video sequences" - * O. Barnich and M. Van D Roogenbroeck - * IEEE Transactions on Image Processing, 20(6) :1709-1724, June 2011 - */ -class CV_EXPORTS VIBE_GPU -{ -public: - //! the default constructor - explicit VIBE_GPU(unsigned long rngSeed = 1234567); - - //! re-initiaization method - void initialize(const GpuMat& firstFrame, Stream& stream = Stream::Null()); - - //! the update operator - void operator()(const GpuMat& frame, GpuMat& fgmask, Stream& stream = Stream::Null()); - - //! releases all inner buffers - void release(); - - int nbSamples; // number of samples per pixel - int reqMatches; // #_min - int radius; // R - int subsamplingFactor; // amount of random subsampling - -private: - Size frameSize_; - - unsigned long rngSeed_; - GpuMat randStates_; - - GpuMat samples_; -}; - /** * Background Subtractor module. Takes a series of images and returns a sequence of mask (8UC1) * images of the same size, where 255 indicates Foreground and 0 represents Background. diff --git a/modules/gpu/perf/perf_video.cpp b/modules/gpu/perf/perf_video.cpp index 61c2687ca9..e9b38ed5e7 100644 --- a/modules/gpu/perf/perf_video.cpp +++ b/modules/gpu/perf/perf_video.cpp @@ -818,71 +818,6 @@ PERF_TEST_P(Video_Cn, Video_MOG2GetBackgroundImage, } } -////////////////////////////////////////////////////// -// VIBE - -PERF_TEST_P(Video_Cn, Video_VIBE, - Combine(Values("gpu/video/768x576.avi", "gpu/video/1920x1080.avi"), - GPU_CHANNELS_1_3_4)) -{ - const string inputFile = perf::TestBase::getDataPath(GET_PARAM(0)); - const int cn = GET_PARAM(1); - - cv::VideoCapture cap(inputFile); - ASSERT_TRUE(cap.isOpened()); - - cv::Mat frame; - cap >> frame; - ASSERT_FALSE(frame.empty()); - - if (cn != 3) - { - cv::Mat temp; - if (cn == 1) - cv::cvtColor(frame, temp, cv::COLOR_BGR2GRAY); - else - cv::cvtColor(frame, temp, cv::COLOR_BGR2BGRA); - cv::swap(temp, frame); - } - - if (PERF_RUN_GPU()) - { - cv::gpu::GpuMat d_frame(frame); - cv::gpu::VIBE_GPU vibe; - cv::gpu::GpuMat foreground; - - vibe(d_frame, foreground); - - for (int i = 0; i < 10; ++i) - { - cap >> frame; - ASSERT_FALSE(frame.empty()); - - if (cn != 3) - { - cv::Mat temp; - if (cn == 1) - cv::cvtColor(frame, temp, cv::COLOR_BGR2GRAY); - else - cv::cvtColor(frame, temp, cv::COLOR_BGR2BGRA); - cv::swap(temp, frame); - } - - d_frame.upload(frame); - - startTimer(); next(); - vibe(d_frame, foreground); - stopTimer(); - } - - GPU_SANITY_CHECK(foreground); - } - else - { - FAIL_NO_CPU(); - } -} - ////////////////////////////////////////////////////// // GMG diff --git a/modules/gpu/test/test_bgfg.cpp b/modules/gpu/test/test_bgfg.cpp index aea6eb7189..253ded26c6 100644 --- a/modules/gpu/test/test_bgfg.cpp +++ b/modules/gpu/test/test_bgfg.cpp @@ -322,47 +322,6 @@ INSTANTIATE_TEST_CASE_P(GPU_Video, MOG2, testing::Combine( testing::Values(DetectShadow(true), DetectShadow(false)), WHOLE_SUBMAT)); -////////////////////////////////////////////////////// -// VIBE - -PARAM_TEST_CASE(VIBE, cv::gpu::DeviceInfo, cv::Size, MatType, UseRoi) -{ -}; - -GPU_TEST_P(VIBE, Accuracy) -{ - const cv::gpu::DeviceInfo devInfo = GET_PARAM(0); - cv::gpu::setDevice(devInfo.deviceID()); - const cv::Size size = GET_PARAM(1); - const int type = GET_PARAM(2); - const bool useRoi = GET_PARAM(3); - - const cv::Mat fullfg(size, CV_8UC1, cv::Scalar::all(255)); - - cv::Mat frame = randomMat(size, type, 0.0, 100); - cv::gpu::GpuMat d_frame = loadMat(frame, useRoi); - - cv::gpu::VIBE_GPU vibe; - cv::gpu::GpuMat d_fgmask = createMat(size, CV_8UC1, useRoi); - vibe.initialize(d_frame); - - for (int i = 0; i < 20; ++i) - vibe(d_frame, d_fgmask); - - frame = randomMat(size, type, 160, 255); - d_frame = loadMat(frame, useRoi); - vibe(d_frame, d_fgmask); - - // now fgmask should be entirely foreground - ASSERT_MAT_NEAR(fullfg, d_fgmask, 0); -} - -INSTANTIATE_TEST_CASE_P(GPU_Video, VIBE, testing::Combine( - ALL_DEVICES, - DIFFERENT_SIZES, - testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4)), - WHOLE_SUBMAT)); - ////////////////////////////////////////////////////// // GMG diff --git a/modules/gpunonfree/CMakeLists.txt b/modules/gpunonfree/CMakeLists.txt new file mode 100644 index 0000000000..a975a61a43 --- /dev/null +++ b/modules/gpunonfree/CMakeLists.txt @@ -0,0 +1,31 @@ +if(ANDROID OR IOS) + ocv_module_disable(gpunonfree) +endif() + +set(the_description "GPU-accelerated Computer Vision (non free)") +ocv_add_module(gpunonfree opencv_gpu opencv_nonfree) +ocv_module_include_directories() + +if(HAVE_CUDA) + ocv_source_group("Src\\Cuda" GLOB "src/cuda/*.cu") + ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include" ${CUDA_INCLUDE_DIRS}) + ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef) + + file(GLOB lib_cuda "src/cuda/*.cu") + ocv_cuda_compile(cuda_objs ${lib_cuda}) + + set(cuda_link_libs ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) +else() + set(lib_cuda "") + set(cuda_objs "") + set(cuda_link_libs "") +endif() + +ocv_glob_module_sources(SOURCES ${lib_cuda} ${cuda_objs}) + +ocv_create_module(${cuda_link_libs}) +ocv_add_precompiled_headers(${the_module}) + +ocv_add_accuracy_tests() +ocv_add_perf_tests() + diff --git a/modules/gpunonfree/doc/feature_detection_and_description.rst b/modules/gpunonfree/doc/feature_detection_and_description.rst new file mode 100644 index 0000000000..9cec66f539 --- /dev/null +++ b/modules/gpunonfree/doc/feature_detection_and_description.rst @@ -0,0 +1,107 @@ +Feature Detection and Description +================================= + +.. highlight:: cpp + + + +gpu::SURF_GPU +------------- +.. ocv:class:: gpu::SURF_GPU + +Class used for extracting Speeded Up Robust Features (SURF) from an image. :: + + class SURF_GPU + { + public: + enum KeypointLayout + { + X_ROW = 0, + Y_ROW, + LAPLACIAN_ROW, + OCTAVE_ROW, + SIZE_ROW, + ANGLE_ROW, + HESSIAN_ROW, + ROWS_COUNT + }; + + //! the default constructor + SURF_GPU(); + //! the full constructor taking all the necessary parameters + explicit SURF_GPU(double _hessianThreshold, int _nOctaves=4, + int _nOctaveLayers=2, bool _extended=false, float _keypointsRatio=0.01f); + + //! returns the descriptor size in float's (64 or 128) + int descriptorSize() const; + + //! upload host keypoints to device memory + void uploadKeypoints(const vector& keypoints, + GpuMat& keypointsGPU); + //! download keypoints from device to host memory + void downloadKeypoints(const GpuMat& keypointsGPU, + vector& keypoints); + + //! download descriptors from device to host memory + void downloadDescriptors(const GpuMat& descriptorsGPU, + vector& descriptors); + + void operator()(const GpuMat& img, const GpuMat& mask, + GpuMat& keypoints); + + void operator()(const GpuMat& img, const GpuMat& mask, + GpuMat& keypoints, GpuMat& descriptors, + bool useProvidedKeypoints = false, + bool calcOrientation = true); + + void operator()(const GpuMat& img, const GpuMat& mask, + std::vector& keypoints); + + void operator()(const GpuMat& img, const GpuMat& mask, + std::vector& keypoints, GpuMat& descriptors, + bool useProvidedKeypoints = false, + bool calcOrientation = true); + + void operator()(const GpuMat& img, const GpuMat& mask, + std::vector& keypoints, + std::vector& descriptors, + bool useProvidedKeypoints = false, + bool calcOrientation = true); + + void releaseMemory(); + + // SURF parameters + double hessianThreshold; + int nOctaves; + int nOctaveLayers; + bool extended; + bool upright; + + //! max keypoints = keypointsRatio * img.size().area() + float keypointsRatio; + + GpuMat sum, mask1, maskSum, intBuffer; + + GpuMat det, trace; + + GpuMat maxPosBuffer; + }; + + +The class ``SURF_GPU`` implements Speeded Up Robust Features descriptor. There is a fast multi-scale Hessian keypoint detector that can be used to find the keypoints (which is the default option). But the descriptors can also be computed for the user-specified keypoints. Only 8-bit grayscale images are supported. + +The class ``SURF_GPU`` can store results in the GPU and CPU memory. It provides functions to convert results between CPU and GPU version ( ``uploadKeypoints``, ``downloadKeypoints``, ``downloadDescriptors`` ). The format of CPU results is the same as ``SURF`` results. GPU results are stored in ``GpuMat``. The ``keypoints`` matrix is :math:`\texttt{nFeatures} \times 7` matrix with the ``CV_32FC1`` type. + +* ``keypoints.ptr(X_ROW)[i]`` contains x coordinate of the i-th feature. +* ``keypoints.ptr(Y_ROW)[i]`` contains y coordinate of the i-th feature. +* ``keypoints.ptr(LAPLACIAN_ROW)[i]`` contains the laplacian sign of the i-th feature. +* ``keypoints.ptr(OCTAVE_ROW)[i]`` contains the octave of the i-th feature. +* ``keypoints.ptr(SIZE_ROW)[i]`` contains the size of the i-th feature. +* ``keypoints.ptr(ANGLE_ROW)[i]`` contain orientation of the i-th feature. +* ``keypoints.ptr(HESSIAN_ROW)[i]`` contains the response of the i-th feature. + +The ``descriptors`` matrix is :math:`\texttt{nFeatures} \times \texttt{descriptorSize}` matrix with the ``CV_32FC1`` type. + +The class ``SURF_GPU`` uses some buffers and provides access to it. All buffers can be safely released between function calls. + +.. seealso:: :ocv:class:`SURF` diff --git a/modules/gpunonfree/doc/gpunonfree.rst b/modules/gpunonfree/doc/gpunonfree.rst new file mode 100644 index 0000000000..4c2b71fe26 --- /dev/null +++ b/modules/gpunonfree/doc/gpunonfree.rst @@ -0,0 +1,9 @@ +****************************************************** +gpunonfree. GPU-accelerated Computer Vision (non free) +****************************************************** + +.. toctree:: + :maxdepth: 1 + + feature_detection_and_description + video diff --git a/modules/gpunonfree/doc/video.rst b/modules/gpunonfree/doc/video.rst new file mode 100644 index 0000000000..4fdfacc07d --- /dev/null +++ b/modules/gpunonfree/doc/video.rst @@ -0,0 +1,79 @@ +Video Analysis +============== + +.. highlight:: cpp + + + +gpu::VIBE_GPU +------------- +.. ocv:class:: gpu::VIBE_GPU + +Class used for background/foreground segmentation. :: + + class VIBE_GPU + { + public: + explicit VIBE_GPU(unsigned long rngSeed = 1234567); + + void initialize(const GpuMat& firstFrame, Stream& stream = Stream::Null()); + + void operator()(const GpuMat& frame, GpuMat& fgmask, Stream& stream = Stream::Null()); + + void release(); + + ... + }; + +The class discriminates between foreground and background pixels by building and maintaining a model of the background. Any pixel which does not fit this model is then deemed to be foreground. The class implements algorithm described in [VIBE2011]_. + + + +gpu::VIBE_GPU::VIBE_GPU +----------------------- +The constructor. + +.. ocv:function:: gpu::VIBE_GPU::VIBE_GPU(unsigned long rngSeed = 1234567) + + :param rngSeed: Value used to initiate a random sequence. + +Default constructor sets all parameters to default values. + + + +gpu::VIBE_GPU::initialize +------------------------- +Initialize background model and allocates all inner buffers. + +.. ocv:function:: void gpu::VIBE_GPU::initialize(const GpuMat& firstFrame, Stream& stream = Stream::Null()) + + :param firstFrame: First frame from video sequence. + + :param stream: Stream for the asynchronous version. + + + +gpu::VIBE_GPU::operator() +------------------------- +Updates the background model and returns the foreground mask + +.. ocv:function:: void gpu::VIBE_GPU::operator()(const GpuMat& frame, GpuMat& fgmask, Stream& stream = Stream::Null()) + + :param frame: Next video frame. + + :param fgmask: The output foreground mask as an 8-bit binary image. + + :param stream: Stream for the asynchronous version. + + + +gpu::VIBE_GPU::release +---------------------- +Releases all inner buffer's memory. + +.. ocv:function:: void gpu::VIBE_GPU::release() + + + + +.. [VIBE2011] O. Barnich and M. Van D Roogenbroeck. *ViBe: A universal background subtraction algorithm for video sequences*. IEEE Transactions on Image Processing, 20(6) :1709-1724, June 2011 diff --git a/modules/gpunonfree/include/opencv2/gpunonfree/gpunonfree.hpp b/modules/gpunonfree/include/opencv2/gpunonfree/gpunonfree.hpp new file mode 100644 index 0000000000..40d9cfd2bc --- /dev/null +++ b/modules/gpunonfree/include/opencv2/gpunonfree/gpunonfree.hpp @@ -0,0 +1,167 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other GpuMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef __OPENCV_GPUNONFREE_HPP__ +#define __OPENCV_GPUNONFREE_HPP__ + +#ifndef SKIP_INCLUDES +#include +#endif + +#include "opencv2/gpu/gpu.hpp" + +namespace cv { namespace gpu { + +class CV_EXPORTS SURF_GPU +{ +public: + enum KeypointLayout + { + X_ROW = 0, + Y_ROW, + LAPLACIAN_ROW, + OCTAVE_ROW, + SIZE_ROW, + ANGLE_ROW, + HESSIAN_ROW, + ROWS_COUNT + }; + + //! the default constructor + SURF_GPU(); + //! the full constructor taking all the necessary parameters + explicit SURF_GPU(double _hessianThreshold, int _nOctaves=4, + int _nOctaveLayers=2, bool _extended=false, float _keypointsRatio=0.01f, bool _upright = false); + + //! returns the descriptor size in float's (64 or 128) + int descriptorSize() const; + + //! upload host keypoints to device memory + void uploadKeypoints(const std::vector& keypoints, GpuMat& keypointsGPU); + //! download keypoints from device to host memory + void downloadKeypoints(const GpuMat& keypointsGPU, std::vector& keypoints); + + //! download descriptors from device to host memory + void downloadDescriptors(const GpuMat& descriptorsGPU, std::vector& descriptors); + + //! finds the keypoints using fast hessian detector used in SURF + //! supports CV_8UC1 images + //! keypoints will have nFeature cols and 6 rows + //! keypoints.ptr(X_ROW)[i] will contain x coordinate of i'th feature + //! keypoints.ptr(Y_ROW)[i] will contain y coordinate of i'th feature + //! keypoints.ptr(LAPLACIAN_ROW)[i] will contain laplacian sign of i'th feature + //! keypoints.ptr(OCTAVE_ROW)[i] will contain octave of i'th feature + //! keypoints.ptr(SIZE_ROW)[i] will contain size of i'th feature + //! keypoints.ptr(ANGLE_ROW)[i] will contain orientation of i'th feature + //! keypoints.ptr(HESSIAN_ROW)[i] will contain response of i'th feature + void operator()(const GpuMat& img, const GpuMat& mask, GpuMat& keypoints); + //! finds the keypoints and computes their descriptors. + //! Optionally it can compute descriptors for the user-provided keypoints and recompute keypoints direction + void operator()(const GpuMat& img, const GpuMat& mask, GpuMat& keypoints, GpuMat& descriptors, + bool useProvidedKeypoints = false); + + void operator()(const GpuMat& img, const GpuMat& mask, std::vector& keypoints); + void operator()(const GpuMat& img, const GpuMat& mask, std::vector& keypoints, GpuMat& descriptors, + bool useProvidedKeypoints = false); + + void operator()(const GpuMat& img, const GpuMat& mask, std::vector& keypoints, std::vector& descriptors, + bool useProvidedKeypoints = false); + + void releaseMemory(); + + // SURF parameters + double hessianThreshold; + int nOctaves; + int nOctaveLayers; + bool extended; + bool upright; + + //! max keypoints = min(keypointsRatio * img.size().area(), 65535) + float keypointsRatio; + + GpuMat sum, mask1, maskSum, intBuffer; + + GpuMat det, trace; + + GpuMat maxPosBuffer; +}; + +/*! + * The class implements the following algorithm: + * "ViBe: A universal background subtraction algorithm for video sequences" + * O. Barnich and M. Van D Roogenbroeck + * IEEE Transactions on Image Processing, 20(6) :1709-1724, June 2011 + */ +class CV_EXPORTS VIBE_GPU +{ +public: + //! the default constructor + explicit VIBE_GPU(unsigned long rngSeed = 1234567); + + //! re-initiaization method + void initialize(const GpuMat& firstFrame, Stream& stream = Stream::Null()); + + //! the update operator + void operator()(const GpuMat& frame, GpuMat& fgmask, Stream& stream = Stream::Null()); + + //! releases all inner buffers + void release(); + + int nbSamples; // number of samples per pixel + int reqMatches; // #_min + int radius; // R + int subsamplingFactor; // amount of random subsampling + +private: + Size frameSize_; + + unsigned long rngSeed_; + GpuMat randStates_; + + GpuMat samples_; +}; + +} // namespace gpu + +} // namespace cv + +#endif /* __OPENCV_GPUNONFREE_HPP__ */ diff --git a/modules/gpunonfree/perf/perf_gpunonfree.cpp b/modules/gpunonfree/perf/perf_gpunonfree.cpp new file mode 100644 index 0000000000..4a27b77258 --- /dev/null +++ b/modules/gpunonfree/perf/perf_gpunonfree.cpp @@ -0,0 +1,118 @@ +#include "perf_precomp.hpp" + +using namespace std; +using namespace testing; +using namespace perf; + +////////////////////////////////////////////////////////////////////// +// SURF + +DEF_PARAM_TEST_1(Image, string); + +PERF_TEST_P(Image, Features2D_SURF, + Values("gpu/perf/aloe.png")) +{ + declare.time(50.0); + + const cv::Mat img = readImage(GetParam(), cv::IMREAD_GRAYSCALE); + ASSERT_FALSE(img.empty()); + + if (PERF_RUN_GPU()) + { + cv::gpu::SURF_GPU d_surf; + + const cv::gpu::GpuMat d_img(img); + cv::gpu::GpuMat d_keypoints, d_descriptors; + + TEST_CYCLE() d_surf(d_img, cv::gpu::GpuMat(), d_keypoints, d_descriptors); + + std::vector gpu_keypoints; + d_surf.downloadKeypoints(d_keypoints, gpu_keypoints); + + cv::Mat gpu_descriptors(d_descriptors); + + sortKeyPoints(gpu_keypoints, gpu_descriptors); + + SANITY_CHECK_KEYPOINTS(gpu_keypoints); + SANITY_CHECK(gpu_descriptors, 1e-3); + } + else + { + cv::SURF surf; + + std::vector cpu_keypoints; + cv::Mat cpu_descriptors; + + TEST_CYCLE() surf(img, cv::noArray(), cpu_keypoints, cpu_descriptors); + + SANITY_CHECK_KEYPOINTS(cpu_keypoints); + SANITY_CHECK(cpu_descriptors); + } +} + +////////////////////////////////////////////////////// +// VIBE + +DEF_PARAM_TEST(Video_Cn, string, int); + +PERF_TEST_P(Video_Cn, Video_VIBE, + Combine(Values("gpu/video/768x576.avi", "gpu/video/1920x1080.avi"), + GPU_CHANNELS_1_3_4)) +{ + const string inputFile = perf::TestBase::getDataPath(GET_PARAM(0)); + const int cn = GET_PARAM(1); + + cv::VideoCapture cap(inputFile); + ASSERT_TRUE(cap.isOpened()); + + cv::Mat frame; + cap >> frame; + ASSERT_FALSE(frame.empty()); + + if (cn != 3) + { + cv::Mat temp; + if (cn == 1) + cv::cvtColor(frame, temp, cv::COLOR_BGR2GRAY); + else + cv::cvtColor(frame, temp, cv::COLOR_BGR2BGRA); + cv::swap(temp, frame); + } + + if (PERF_RUN_GPU()) + { + cv::gpu::GpuMat d_frame(frame); + cv::gpu::VIBE_GPU vibe; + cv::gpu::GpuMat foreground; + + vibe(d_frame, foreground); + + for (int i = 0; i < 10; ++i) + { + cap >> frame; + ASSERT_FALSE(frame.empty()); + + if (cn != 3) + { + cv::Mat temp; + if (cn == 1) + cv::cvtColor(frame, temp, cv::COLOR_BGR2GRAY); + else + cv::cvtColor(frame, temp, cv::COLOR_BGR2BGRA); + cv::swap(temp, frame); + } + + d_frame.upload(frame); + + startTimer(); next(); + vibe(d_frame, foreground); + stopTimer(); + } + + GPU_SANITY_CHECK(foreground); + } + else + { + FAIL_NO_CPU(); + } +} diff --git a/modules/gpunonfree/perf/perf_main.cpp b/modules/gpunonfree/perf/perf_main.cpp new file mode 100644 index 0000000000..75e3ca651b --- /dev/null +++ b/modules/gpunonfree/perf/perf_main.cpp @@ -0,0 +1,5 @@ +#include "perf_precomp.hpp" + +using namespace perf; + +CV_PERF_TEST_MAIN(gpunonfree, printCudaInfo()) diff --git a/modules/gpunonfree/perf/perf_precomp.cpp b/modules/gpunonfree/perf/perf_precomp.cpp new file mode 100644 index 0000000000..8552ac3d42 --- /dev/null +++ b/modules/gpunonfree/perf/perf_precomp.cpp @@ -0,0 +1 @@ +#include "perf_precomp.hpp" diff --git a/modules/gpunonfree/perf/perf_precomp.hpp b/modules/gpunonfree/perf/perf_precomp.hpp new file mode 100644 index 0000000000..410eaecfdf --- /dev/null +++ b/modules/gpunonfree/perf/perf_precomp.hpp @@ -0,0 +1,31 @@ +#ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wmissing-declarations" +# if defined __clang__ || defined __APPLE__ +# pragma GCC diagnostic ignored "-Wmissing-prototypes" +# pragma GCC diagnostic ignored "-Wextra" +# endif +#endif + +#ifndef __OPENCV_PERF_PRECOMP_HPP__ +#define __OPENCV_PERF_PRECOMP_HPP__ + +#include +#include + +#include "cvconfig.h" + +#include "opencv2/ts/ts.hpp" +#include "opencv2/ts/ts_perf.hpp" +#include "opencv2/ts/gpu_perf.hpp" + +#include "opencv2/core/core.hpp" +#include "opencv2/highgui/highgui.hpp" +#include "opencv2/gpu/gpu.hpp" +#include "opencv2/gpunonfree/gpunonfree.hpp" +#include "opencv2/nonfree/nonfree.hpp" + +#ifdef GTEST_CREATE_SHARED_LIBRARY +#error no modules except ts should have GTEST_CREATE_SHARED_LIBRARY defined +#endif + +#endif diff --git a/modules/gpu/src/cuda/surf.cu b/modules/gpunonfree/src/cuda/surf.cu similarity index 96% rename from modules/gpu/src/cuda/surf.cu rename to modules/gpunonfree/src/cuda/surf.cu index 5dc2c82104..b82e2c3863 100644 --- a/modules/gpu/src/cuda/surf.cu +++ b/modules/gpunonfree/src/cuda/surf.cu @@ -55,6 +55,33 @@ #include "opencv2/gpu/device/functional.hpp" #include "opencv2/gpu/device/filters.hpp" +namespace cv { namespace gpu { namespace device +{ + namespace surf + { + void loadGlobalConstants(int maxCandidates, int maxFeatures, int img_rows, int img_cols, int nOctaveLayers, float hessianThreshold); + void loadOctaveConstants(int octave, int layer_rows, int layer_cols); + + void bindImgTex(PtrStepSzb img); + size_t bindSumTex(PtrStepSz sum); + size_t bindMaskSumTex(PtrStepSz maskSum); + + void icvCalcLayerDetAndTrace_gpu(const PtrStepf& det, const PtrStepf& trace, int img_rows, int img_cols, + int octave, int nOctaveLayer); + + void icvFindMaximaInLayer_gpu(const PtrStepf& det, const PtrStepf& trace, int4* maxPosBuffer, unsigned int* maxCounter, + int img_rows, int img_cols, int octave, bool use_mask, int nLayers); + + void icvInterpolateKeypoint_gpu(const PtrStepf& det, const int4* maxPosBuffer, unsigned int maxCounter, + float* featureX, float* featureY, int* featureLaplacian, int* featureOctave, float* featureSize, float* featureHessian, + unsigned int* featureCounter); + + void icvCalcOrientation_gpu(const float* featureX, const float* featureY, const float* featureSize, float* featureDir, int nFeatures); + + void compute_descriptors_gpu(PtrStepSz descriptors, const float* featureX, const float* featureY, const float* featureSize, const float* featureDir, int nFeatures); + } +}}} + namespace cv { namespace gpu { namespace device { namespace surf @@ -717,6 +744,9 @@ namespace cv { namespace gpu { namespace device int height; }; + __device__ void calc_dx_dy(const float* featureX, const float* featureY, const float* featureSize, const float* featureDir, + float& dx, float& dy); + __device__ void calc_dx_dy(const float* featureX, const float* featureY, const float* featureSize, const float* featureDir, float& dx, float& dy) { diff --git a/modules/gpu/src/cuda/bgfg_vibe.cu b/modules/gpunonfree/src/cuda/vibe.cu similarity index 95% rename from modules/gpu/src/cuda/bgfg_vibe.cu rename to modules/gpunonfree/src/cuda/vibe.cu index 72ea7f0ae7..ff489eeab9 100644 --- a/modules/gpu/src/cuda/bgfg_vibe.cu +++ b/modules/gpunonfree/src/cuda/vibe.cu @@ -44,6 +44,18 @@ #include "opencv2/gpu/device/common.hpp" +namespace cv { namespace gpu { namespace device +{ + namespace vibe + { + void loadConstants(int nbSamples, int reqMatches, int radius, int subsamplingFactor); + + void init_gpu(PtrStepSzb frame, int cn, PtrStepSzb samples, PtrStepSz randStates, cudaStream_t stream); + + void update_gpu(PtrStepSzb frame, int cn, PtrStepSzb fgmask, PtrStepSzb samples, PtrStepSz randStates, cudaStream_t stream); + } +}}} + namespace cv { namespace gpu { namespace device { namespace vibe @@ -255,4 +267,4 @@ namespace cv { namespace gpu { namespace device }}} -#endif /* CUDA_DISABLER */ \ No newline at end of file +#endif /* CUDA_DISABLER */ diff --git a/modules/gpunonfree/src/precomp.cpp b/modules/gpunonfree/src/precomp.cpp new file mode 100644 index 0000000000..75eb6935d0 --- /dev/null +++ b/modules/gpunonfree/src/precomp.cpp @@ -0,0 +1,45 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// Intel License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000, Intel Corporation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of Intel Corporation may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" + +/* End of file. */ + diff --git a/modules/gpunonfree/src/precomp.hpp b/modules/gpunonfree/src/precomp.hpp new file mode 100644 index 0000000000..59a5a2cdec --- /dev/null +++ b/modules/gpunonfree/src/precomp.hpp @@ -0,0 +1,71 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef __OPENCV_PRECOMP_H__ +#define __OPENCV_PRECOMP_H__ + +#if defined _MSC_VER && _MSC_VER >= 1200 + #pragma warning( disable: 4251 4710 4711 4514 4996 ) +#endif + +#ifdef HAVE_CVCONFIG_H + #include "cvconfig.h" +#endif + +#include + +#include "opencv2/gpu/gpu.hpp" +#include "opencv2/gpunonfree/gpunonfree.hpp" + +#ifdef HAVE_CUDA + #include "opencv2/gpu/stream_accessor.hpp" + #include "opencv2/gpu/device/common.hpp" + + static inline void throw_nogpu() { CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); } + +#else /* defined(HAVE_CUDA) */ + + static inline void throw_nogpu() { CV_Error(CV_GpuNotSupported, "The library is compiled without GPU support"); } + +#endif /* defined(HAVE_CUDA) */ + +#endif /* __OPENCV_PRECOMP_H__ */ diff --git a/modules/gpu/src/surf.cpp b/modules/gpunonfree/src/surf.cpp similarity index 100% rename from modules/gpu/src/surf.cpp rename to modules/gpunonfree/src/surf.cpp diff --git a/modules/gpu/src/bgfg_vibe.cpp b/modules/gpunonfree/src/vibe.cpp similarity index 100% rename from modules/gpu/src/bgfg_vibe.cpp rename to modules/gpunonfree/src/vibe.cpp diff --git a/modules/gpunonfree/test/test_gpunonfree.cpp b/modules/gpunonfree/test/test_gpunonfree.cpp new file mode 100644 index 0000000000..2d4e179e19 --- /dev/null +++ b/modules/gpunonfree/test/test_gpunonfree.cpp @@ -0,0 +1,286 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// Intel License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000, Intel Corporation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of Intel Corporation may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "test_precomp.hpp" + +#ifdef HAVE_CUDA + +using namespace cvtest; + +///////////////////////////////////////////////////////////////////////////////////////////////// +// SURF + +namespace +{ + IMPLEMENT_PARAM_CLASS(SURF_HessianThreshold, double) + IMPLEMENT_PARAM_CLASS(SURF_Octaves, int) + IMPLEMENT_PARAM_CLASS(SURF_OctaveLayers, int) + IMPLEMENT_PARAM_CLASS(SURF_Extended, bool) + IMPLEMENT_PARAM_CLASS(SURF_Upright, bool) +} + +PARAM_TEST_CASE(SURF, cv::gpu::DeviceInfo, SURF_HessianThreshold, SURF_Octaves, SURF_OctaveLayers, SURF_Extended, SURF_Upright) +{ + cv::gpu::DeviceInfo devInfo; + double hessianThreshold; + int nOctaves; + int nOctaveLayers; + bool extended; + bool upright; + + virtual void SetUp() + { + devInfo = GET_PARAM(0); + hessianThreshold = GET_PARAM(1); + nOctaves = GET_PARAM(2); + nOctaveLayers = GET_PARAM(3); + extended = GET_PARAM(4); + upright = GET_PARAM(5); + + cv::gpu::setDevice(devInfo.deviceID()); + } +}; + +GPU_TEST_P(SURF, Detector) +{ + cv::Mat image = readImage("features2d/aloe.png", cv::IMREAD_GRAYSCALE); + ASSERT_FALSE(image.empty()); + + cv::gpu::SURF_GPU surf; + surf.hessianThreshold = hessianThreshold; + surf.nOctaves = nOctaves; + surf.nOctaveLayers = nOctaveLayers; + surf.extended = extended; + surf.upright = upright; + surf.keypointsRatio = 0.05f; + + if (!supportFeature(devInfo, cv::gpu::GLOBAL_ATOMICS)) + { + try + { + std::vector keypoints; + surf(loadMat(image), cv::gpu::GpuMat(), keypoints); + } + catch (const cv::Exception& e) + { + ASSERT_EQ(CV_StsNotImplemented, e.code); + } + } + else + { + std::vector keypoints; + surf(loadMat(image), cv::gpu::GpuMat(), keypoints); + + cv::SURF surf_gold; + surf_gold.hessianThreshold = hessianThreshold; + surf_gold.nOctaves = nOctaves; + surf_gold.nOctaveLayers = nOctaveLayers; + surf_gold.extended = extended; + surf_gold.upright = upright; + + std::vector keypoints_gold; + surf_gold(image, cv::noArray(), keypoints_gold); + + ASSERT_EQ(keypoints_gold.size(), keypoints.size()); + int matchedCount = getMatchedPointsCount(keypoints_gold, keypoints); + double matchedRatio = static_cast(matchedCount) / keypoints_gold.size(); + + EXPECT_GT(matchedRatio, 0.95); + } +} + +GPU_TEST_P(SURF, Detector_Masked) +{ + cv::Mat image = readImage("features2d/aloe.png", cv::IMREAD_GRAYSCALE); + ASSERT_FALSE(image.empty()); + + cv::Mat mask(image.size(), CV_8UC1, cv::Scalar::all(1)); + mask(cv::Range(0, image.rows / 2), cv::Range(0, image.cols / 2)).setTo(cv::Scalar::all(0)); + + cv::gpu::SURF_GPU surf; + surf.hessianThreshold = hessianThreshold; + surf.nOctaves = nOctaves; + surf.nOctaveLayers = nOctaveLayers; + surf.extended = extended; + surf.upright = upright; + surf.keypointsRatio = 0.05f; + + if (!supportFeature(devInfo, cv::gpu::GLOBAL_ATOMICS)) + { + try + { + std::vector keypoints; + surf(loadMat(image), loadMat(mask), keypoints); + } + catch (const cv::Exception& e) + { + ASSERT_EQ(CV_StsNotImplemented, e.code); + } + } + else + { + std::vector keypoints; + surf(loadMat(image), loadMat(mask), keypoints); + + cv::SURF surf_gold; + surf_gold.hessianThreshold = hessianThreshold; + surf_gold.nOctaves = nOctaves; + surf_gold.nOctaveLayers = nOctaveLayers; + surf_gold.extended = extended; + surf_gold.upright = upright; + + std::vector keypoints_gold; + surf_gold(image, mask, keypoints_gold); + + ASSERT_EQ(keypoints_gold.size(), keypoints.size()); + int matchedCount = getMatchedPointsCount(keypoints_gold, keypoints); + double matchedRatio = static_cast(matchedCount) / keypoints_gold.size(); + + EXPECT_GT(matchedRatio, 0.95); + } +} + +GPU_TEST_P(SURF, Descriptor) +{ + cv::Mat image = readImage("features2d/aloe.png", cv::IMREAD_GRAYSCALE); + ASSERT_FALSE(image.empty()); + + cv::gpu::SURF_GPU surf; + surf.hessianThreshold = hessianThreshold; + surf.nOctaves = nOctaves; + surf.nOctaveLayers = nOctaveLayers; + surf.extended = extended; + surf.upright = upright; + surf.keypointsRatio = 0.05f; + + cv::SURF surf_gold; + surf_gold.hessianThreshold = hessianThreshold; + surf_gold.nOctaves = nOctaves; + surf_gold.nOctaveLayers = nOctaveLayers; + surf_gold.extended = extended; + surf_gold.upright = upright; + + if (!supportFeature(devInfo, cv::gpu::GLOBAL_ATOMICS)) + { + try + { + std::vector keypoints; + cv::gpu::GpuMat descriptors; + surf(loadMat(image), cv::gpu::GpuMat(), keypoints, descriptors); + } + catch (const cv::Exception& e) + { + ASSERT_EQ(CV_StsNotImplemented, e.code); + } + } + else + { + std::vector keypoints; + surf_gold(image, cv::noArray(), keypoints); + + cv::gpu::GpuMat descriptors; + surf(loadMat(image), cv::gpu::GpuMat(), keypoints, descriptors, true); + + cv::Mat descriptors_gold; + surf_gold(image, cv::noArray(), keypoints, descriptors_gold, true); + + cv::BFMatcher matcher(cv::NORM_L2); + std::vector matches; + matcher.match(descriptors_gold, cv::Mat(descriptors), matches); + + int matchedCount = getMatchedPointsCount(keypoints, keypoints, matches); + double matchedRatio = static_cast(matchedCount) / keypoints.size(); + + EXPECT_GT(matchedRatio, 0.6); + } +} + +INSTANTIATE_TEST_CASE_P(GPU_Features2D, SURF, testing::Combine( + ALL_DEVICES, + testing::Values(SURF_HessianThreshold(100.0), SURF_HessianThreshold(500.0), SURF_HessianThreshold(1000.0)), + testing::Values(SURF_Octaves(3), SURF_Octaves(4)), + testing::Values(SURF_OctaveLayers(2), SURF_OctaveLayers(3)), + testing::Values(SURF_Extended(false), SURF_Extended(true)), + testing::Values(SURF_Upright(false), SURF_Upright(true)))); + +////////////////////////////////////////////////////// +// VIBE + +PARAM_TEST_CASE(VIBE, cv::gpu::DeviceInfo, cv::Size, MatType, UseRoi) +{ +}; + +GPU_TEST_P(VIBE, Accuracy) +{ + const cv::gpu::DeviceInfo devInfo = GET_PARAM(0); + cv::gpu::setDevice(devInfo.deviceID()); + const cv::Size size = GET_PARAM(1); + const int type = GET_PARAM(2); + const bool useRoi = GET_PARAM(3); + + const cv::Mat fullfg(size, CV_8UC1, cv::Scalar::all(255)); + + cv::Mat frame = randomMat(size, type, 0.0, 100); + cv::gpu::GpuMat d_frame = loadMat(frame, useRoi); + + cv::gpu::VIBE_GPU vibe; + cv::gpu::GpuMat d_fgmask = createMat(size, CV_8UC1, useRoi); + vibe.initialize(d_frame); + + for (int i = 0; i < 20; ++i) + vibe(d_frame, d_fgmask); + + frame = randomMat(size, type, 160, 255); + d_frame = loadMat(frame, useRoi); + vibe(d_frame, d_fgmask); + + // now fgmask should be entirely foreground + ASSERT_MAT_NEAR(fullfg, d_fgmask, 0); +} + +INSTANTIATE_TEST_CASE_P(GPU_Video, VIBE, testing::Combine( + ALL_DEVICES, + DIFFERENT_SIZES, + testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4)), + WHOLE_SUBMAT)); + +#endif // HAVE_CUDA + diff --git a/modules/gpunonfree/test/test_main.cpp b/modules/gpunonfree/test/test_main.cpp new file mode 100644 index 0000000000..4c15ff95e9 --- /dev/null +++ b/modules/gpunonfree/test/test_main.cpp @@ -0,0 +1,119 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// Intel License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000, Intel Corporation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of Intel Corporation may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "test_precomp.hpp" + +#ifdef HAVE_CUDA + +using namespace std; +using namespace cv; +using namespace cv::gpu; +using namespace cvtest; +using namespace testing; + +int main(int argc, char** argv) +{ + try + { + const char* keys = + "{ h | help ? | false | Print help}" + "{ i | info | false | Print information about system and exit }" + "{ d | device | -1 | Device on which tests will be executed (-1 means all devices) }" + ; + + CommandLineParser cmd(argc, (const char**)argv, keys); + + if (cmd.get("help")) + { + cmd.printParams(); + return 0; + } + + printCudaInfo(); + + if (cmd.get("info")) + { + return 0; + } + + int device = cmd.get("device"); + if (device < 0) + { + DeviceManager::instance().loadAll(); + + cout << "Run tests on all supported devices \n" << endl; + } + else + { + DeviceManager::instance().load(device); + + DeviceInfo info(device); + cout << "Run tests on device " << device << " [" << info.name() << "] \n" << endl; + } + + TS::ptr()->init("gpu"); + InitGoogleTest(&argc, argv); + + return RUN_ALL_TESTS(); + } + catch (const exception& e) + { + cerr << e.what() << endl; + return -1; + } + catch (...) + { + cerr << "Unknown error" << endl; + return -1; + } + + return 0; +} + +#else // HAVE_CUDA + +int main() +{ + std::cerr << "OpenCV was built without CUDA support" << std::endl; + return 0; +} + +#endif // HAVE_CUDA diff --git a/modules/gpunonfree/test/test_precomp.cpp b/modules/gpunonfree/test/test_precomp.cpp new file mode 100644 index 0000000000..8121ae405b --- /dev/null +++ b/modules/gpunonfree/test/test_precomp.cpp @@ -0,0 +1,42 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// Intel License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000, Intel Corporation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of Intel Corporation may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "test_precomp.hpp" diff --git a/modules/gpunonfree/test/test_precomp.hpp b/modules/gpunonfree/test/test_precomp.hpp new file mode 100644 index 0000000000..5030a0d391 --- /dev/null +++ b/modules/gpunonfree/test/test_precomp.hpp @@ -0,0 +1,69 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// Intel License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000, Intel Corporation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of Intel Corporation may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wmissing-declarations" +# if defined __clang__ || defined __APPLE__ +# pragma GCC diagnostic ignored "-Wmissing-prototypes" +# pragma GCC diagnostic ignored "-Wextra" +# endif +#endif + +#ifndef __OPENCV_TEST_PRECOMP_HPP__ +#define __OPENCV_TEST_PRECOMP_HPP__ + +#include "cvconfig.h" + +#include + +#ifdef HAVE_CUDA + #include "opencv2/ts/ts.hpp" + #include "opencv2/ts/ts_perf.hpp" + #include "opencv2/ts/gpu_test.hpp" + + #include "opencv2/core/core.hpp" + #include "opencv2/highgui/highgui.hpp" + #include "opencv2/gpu/gpu.hpp" + #include "opencv2/gpunonfree/gpunonfree.hpp" + #include "opencv2/nonfree/nonfree.hpp" +#endif + +#endif diff --git a/modules/stitching/CMakeLists.txt b/modules/stitching/CMakeLists.txt index 5d48bd378f..b310a8eb65 100644 --- a/modules/stitching/CMakeLists.txt +++ b/modules/stitching/CMakeLists.txt @@ -1,3 +1,3 @@ set(the_description "Images stitching") -ocv_define_module(stitching opencv_imgproc opencv_features2d opencv_calib3d opencv_objdetect OPTIONAL opencv_gpu opencv_nonfree) +ocv_define_module(stitching opencv_imgproc opencv_features2d opencv_calib3d opencv_objdetect OPTIONAL opencv_gpu opencv_gpunonfree opencv_nonfree) diff --git a/modules/stitching/include/opencv2/stitching/detail/matchers.hpp b/modules/stitching/include/opencv2/stitching/detail/matchers.hpp index f9a53ef432..9332d94660 100644 --- a/modules/stitching/include/opencv2/stitching/detail/matchers.hpp +++ b/modules/stitching/include/opencv2/stitching/detail/matchers.hpp @@ -47,8 +47,8 @@ #include "opencv2/features2d/features2d.hpp" #include "opencv2/opencv_modules.hpp" -#ifdef HAVE_OPENCV_GPU -#include "opencv2/gpu/gpu.hpp" +#ifdef HAVE_OPENCV_GPUNONFREE +#include "opencv2/gpunonfree/gpunonfree.hpp" #endif namespace cv { @@ -103,7 +103,7 @@ private: }; -#ifdef HAVE_OPENCV_GPU +#ifdef HAVE_OPENCV_GPUNONFREE class CV_EXPORTS SurfFeaturesFinderGpu : public FeaturesFinder { public: diff --git a/modules/stitching/src/matchers.cpp b/modules/stitching/src/matchers.cpp index dc6b5fa4db..07845d2770 100644 --- a/modules/stitching/src/matchers.cpp +++ b/modules/stitching/src/matchers.cpp @@ -429,7 +429,7 @@ void OrbFeaturesFinder::find(const Mat &image, ImageFeatures &features) } } -#ifdef HAVE_OPENCV_GPU +#ifdef HAVE_OPENCV_GPUNONFREE SurfFeaturesFinderGpu::SurfFeaturesFinderGpu(double hess_thresh, int num_octaves, int num_layers, int num_octaves_descr, int num_layers_descr) { diff --git a/modules/stitching/src/precomp.hpp b/modules/stitching/src/precomp.hpp index 80eb1868e1..0aade9faa3 100644 --- a/modules/stitching/src/precomp.hpp +++ b/modules/stitching/src/precomp.hpp @@ -73,6 +73,9 @@ #ifdef HAVE_OPENCV_GPU # include "opencv2/gpu/gpu.hpp" #endif +#ifdef HAVE_OPENCV_GPUNONFREE +# include "opencv2/gpunonfree/gpunonfree.hpp" +#endif #include "../../imgproc/src/gcgraph.hpp" diff --git a/modules/stitching/src/stitcher.cpp b/modules/stitching/src/stitcher.cpp index 2b9573b483..2a2fe0f6b1 100644 --- a/modules/stitching/src/stitcher.cpp +++ b/modules/stitching/src/stitcher.cpp @@ -61,7 +61,7 @@ Stitcher Stitcher::createDefault(bool try_use_gpu) #ifdef HAVE_OPENCV_GPU if (try_use_gpu && gpu::getCudaEnabledDeviceCount() > 0) { -#ifdef HAVE_OPENCV_NONFREE +#ifdef HAVE_OPENCV_GPUNONFREE stitcher.setFeaturesFinder(new detail::SurfFeaturesFinderGpu()); #else stitcher.setFeaturesFinder(new detail::OrbFeaturesFinder()); diff --git a/samples/cpp/CMakeLists.txt b/samples/cpp/CMakeLists.txt index 2004857f1d..3f42f43973 100644 --- a/samples/cpp/CMakeLists.txt +++ b/samples/cpp/CMakeLists.txt @@ -16,10 +16,14 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) ocv_include_directories("${OpenCV_SOURCE_DIR}/include")#for opencv.hpp ocv_include_modules(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) - if (HAVE_opencv_gpu) + if(HAVE_opencv_gpu) ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include") endif() + if(HAVE_opencv_gpunonfree) + ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpunonfree/include") + endif() + if(CMAKE_COMPILER_IS_GNUCXX AND NOT ENABLE_NOISY_WARNINGS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function") endif() @@ -41,9 +45,12 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) add_executable(${the_target} ${srcs}) target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) - if (HAVE_opencv_gpu) + if(HAVE_opencv_gpu) target_link_libraries(${the_target} opencv_gpu) endif() + if(HAVE_opencv_gpunonfree) + target_link_libraries(${the_target} opencv_gpunonfree) + endif() set_target_properties(${the_target} PROPERTIES OUTPUT_NAME "cpp-${sample_kind}-${name}" diff --git a/samples/cpp/stitching_detailed.cpp b/samples/cpp/stitching_detailed.cpp index 73d139e41b..fe4ad8779e 100644 --- a/samples/cpp/stitching_detailed.cpp +++ b/samples/cpp/stitching_detailed.cpp @@ -355,7 +355,7 @@ int main(int argc, char* argv[]) Ptr finder; if (features_type == "surf") { -#ifdef HAVE_OPENCV_GPU +#ifdef HAVE_OPENCV_GPUNONFREE if (try_gpu && gpu::getCudaEnabledDeviceCount() > 0) finder = new SurfFeaturesFinderGpu(); else diff --git a/samples/gpu/CMakeLists.txt b/samples/gpu/CMakeLists.txt index 9fd19e28c4..f68d2cd439 100644 --- a/samples/gpu/CMakeLists.txt +++ b/samples/gpu/CMakeLists.txt @@ -1,7 +1,7 @@ SET(OPENCV_GPU_SAMPLES_REQUIRED_DEPS opencv_core opencv_flann opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_objdetect opencv_features2d opencv_calib3d opencv_legacy opencv_contrib opencv_gpu - opencv_nonfree opencv_superres) + opencv_superres) ocv_check_dependencies(${OPENCV_GPU_SAMPLES_REQUIRED_DEPS}) @@ -17,6 +17,10 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) "${OpenCV_SOURCE_DIR}/modules/gpu/src/nvidia/core" ) + if(HAVE_opencv_gpunonfree) + ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpunonfree/include") + endif() + if(HAVE_CUDA) ocv_include_directories(${CUDA_INCLUDE_DIRS}) endif() @@ -33,6 +37,9 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) add_executable(${the_target} ${srcs}) target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_GPU_SAMPLES_REQUIRED_DEPS}) + if(HAVE_opencv_gpunonfree) + target_link_libraries(${the_target} opencv_gpunonfree) + endif() set_target_properties(${the_target} PROPERTIES OUTPUT_NAME "${project}-example-${name}" diff --git a/samples/gpu/bgfg_segm.cpp b/samples/gpu/bgfg_segm.cpp index 4e4c52096c..ff538f805f 100644 --- a/samples/gpu/bgfg_segm.cpp +++ b/samples/gpu/bgfg_segm.cpp @@ -1,10 +1,15 @@ #include #include +#include "opencv2/opencv_modules.hpp" #include "opencv2/core/core.hpp" #include "opencv2/gpu/gpu.hpp" #include "opencv2/highgui/highgui.hpp" +#ifdef HAVE_OPENCV_GPUNONFREE +#include "opencv2/gpunonfree/gpunonfree.hpp" +#endif + using namespace std; using namespace cv; using namespace cv::gpu; @@ -14,7 +19,9 @@ enum Method FGD_STAT, MOG, MOG2, +#ifdef HAVE_OPENCV_GPUNONFREE VIBE, +#endif GMG }; @@ -38,13 +45,25 @@ int main(int argc, const char** argv) string file = cmd.get("file"); string method = cmd.get("method"); - if (method != "fgd" && method != "mog" && method != "mog2" && method != "vibe" && method != "gmg") + if (method != "fgd" + && method != "mog" + && method != "mog2" + #ifdef HAVE_OPENCV_GPUNONFREE + && method != "vibe" + #endif + && method != "gmg") { cerr << "Incorrect method" << endl; return -1; } - Method m = method == "fgd" ? FGD_STAT : method == "mog" ? MOG : method == "mog2" ? MOG2 : method == "vibe" ? VIBE : GMG; + Method m = method == "fgd" ? FGD_STAT : + method == "mog" ? MOG : + method == "mog2" ? MOG2 : + #ifdef HAVE_OPENCV_GPUNONFREE + method == "vibe" ? VIBE : + #endif + GMG; VideoCapture cap; @@ -67,7 +86,9 @@ int main(int argc, const char** argv) FGDStatModel fgd_stat; MOG_GPU mog; MOG2_GPU mog2; +#ifdef HAVE_OPENCV_GPUNONFREE VIBE_GPU vibe; +#endif GMG_GPU gmg; gmg.numInitializationFrames = 40; @@ -93,9 +114,11 @@ int main(int argc, const char** argv) mog2(d_frame, d_fgmask); break; +#ifdef HAVE_OPENCV_GPUNONFREE case VIBE: vibe.initialize(d_frame); break; +#endif case GMG: gmg.initialize(d_frame.size()); @@ -105,8 +128,14 @@ int main(int argc, const char** argv) namedWindow("image", WINDOW_NORMAL); namedWindow("foreground mask", WINDOW_NORMAL); namedWindow("foreground image", WINDOW_NORMAL); - if (m != VIBE && m != GMG) + if (m != GMG + #ifdef HAVE_OPENCV_GPUNONFREE + && m != VIBE + #endif + ) + { namedWindow("mean background image", WINDOW_NORMAL); + } for(;;) { @@ -136,9 +165,11 @@ int main(int argc, const char** argv) mog2.getBackgroundImage(d_bgimg); break; +#ifdef HAVE_OPENCV_GPUNONFREE case VIBE: vibe(d_frame, d_fgmask); break; +#endif case GMG: gmg(d_frame, d_fgmask); diff --git a/samples/gpu/driver_api_stereo_multi.cpp b/samples/gpu/driver_api_stereo_multi.cpp index b8f99e810f..10c3974771 100644 --- a/samples/gpu/driver_api_stereo_multi.cpp +++ b/samples/gpu/driver_api_stereo_multi.cpp @@ -73,9 +73,6 @@ GpuMat d_right[2]; StereoBM_GPU* bm[2]; GpuMat d_result[2]; -// CPU result -Mat result; - static void printHelp() { std::cout << "Usage: driver_api_stereo_multi_gpu --left --right \n"; diff --git a/samples/gpu/performance/CMakeLists.txt b/samples/gpu/performance/CMakeLists.txt index 3b3d6e4415..2e8677d617 100644 --- a/samples/gpu/performance/CMakeLists.txt +++ b/samples/gpu/performance/CMakeLists.txt @@ -3,9 +3,17 @@ set(the_target "example_gpu_performance") file(GLOB sources "performance/*.cpp") file(GLOB headers "performance/*.h") +if(HAVE_opencv_nonfree) + ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/nonfree/include") +endif() + add_executable(${the_target} ${sources} ${headers}) target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_GPU_SAMPLES_REQUIRED_DEPS}) +if(HAVE_opencv_gpunonfree) + target_link_libraries(${the_target} opencv_gpunonfree opencv_nonfree) +endif() + set_target_properties(${the_target} PROPERTIES OUTPUT_NAME "performance_gpu" PROJECT_LABEL "(EXAMPLE_GPU) performance") diff --git a/samples/gpu/performance/tests.cpp b/samples/gpu/performance/tests.cpp index b35102d861..3c77d59e88 100644 --- a/samples/gpu/performance/tests.cpp +++ b/samples/gpu/performance/tests.cpp @@ -4,10 +4,15 @@ #include "opencv2/calib3d/calib3d.hpp" #include "opencv2/video/video.hpp" #include "opencv2/gpu/gpu.hpp" -#include "opencv2/nonfree/nonfree.hpp" #include "opencv2/legacy/legacy.hpp" #include "performance.h" +#include "opencv2/opencv_modules.hpp" +#ifdef HAVE_OPENCV_GPUNONFREE +#include "opencv2/gpunonfree/gpunonfree.hpp" +#include "opencv2/nonfree/nonfree.hpp" +#endif + using namespace std; using namespace cv; @@ -266,6 +271,7 @@ TEST(meanShift) } } +#ifdef HAVE_OPENCV_GPUNONFREE TEST(SURF) { @@ -294,6 +300,8 @@ TEST(SURF) GPU_OFF; } +#endif + TEST(FAST) { diff --git a/samples/gpu/stereo_multi.cpp b/samples/gpu/stereo_multi.cpp index d424bf90b4..cf42043bbe 100644 --- a/samples/gpu/stereo_multi.cpp +++ b/samples/gpu/stereo_multi.cpp @@ -44,9 +44,6 @@ GpuMat d_right[2]; StereoBM_GPU* bm[2]; GpuMat d_result[2]; -// CPU result -Mat result; - static void printHelp() { std::cout << "Usage: stereo_multi_gpu --left --right \n"; diff --git a/samples/gpu/surf_keypoint_matcher.cpp b/samples/gpu/surf_keypoint_matcher.cpp index 617cda52bd..914867b9ec 100644 --- a/samples/gpu/surf_keypoint_matcher.cpp +++ b/samples/gpu/surf_keypoint_matcher.cpp @@ -1,9 +1,14 @@ #include +#include "opencv2/opencv_modules.hpp" + +#ifdef HAVE_OPENCV_GPUNONFREE + #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/gpu/gpu.hpp" +#include "opencv2/gpunonfree/gpunonfree.hpp" using namespace std; using namespace cv; @@ -81,3 +86,13 @@ int main(int argc, char* argv[]) return 0; } + +#else + +int main() +{ + std::cerr << "OpenCV was built without gpunonfree module" << std::endl; + return 0; +} + +#endif From 3b065e38be520686e7942c1f14545cde0458eff9 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Fri, 15 Mar 2013 17:58:18 +0400 Subject: [PATCH 0030/1333] fixed warnings --- modules/ts/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt index df4aeda19b..1eaeb39336 100644 --- a/modules/ts/CMakeLists.txt +++ b/modules/ts/CMakeLists.txt @@ -14,6 +14,8 @@ if(HAVE_CUDA) ocv_include_directories(${CUDA_INCLUDE_DIRS}) endif() +ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef) + ocv_add_module(ts opencv_core opencv_features2d) ocv_glob_module_sources() From 0a65f2f4afd4ed7cab594575663bec58d24ca332 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Mon, 18 Mar 2013 16:14:37 +0400 Subject: [PATCH 0031/1333] merged gpunonfree and nonfree module --- modules/gpunonfree/CMakeLists.txt | 31 ----- .../doc/feature_detection_and_description.rst | 107 ---------------- modules/gpunonfree/doc/gpunonfree.rst | 9 -- modules/gpunonfree/perf/perf_main.cpp | 5 - modules/gpunonfree/perf/perf_precomp.cpp | 1 - modules/gpunonfree/perf/perf_precomp.hpp | 31 ----- modules/gpunonfree/src/precomp.cpp | 45 ------- modules/gpunonfree/src/precomp.hpp | 71 ----------- modules/gpunonfree/test/test_main.cpp | 119 ------------------ modules/gpunonfree/test/test_precomp.cpp | 42 ------- modules/gpunonfree/test/test_precomp.hpp | 69 ---------- modules/nonfree/CMakeLists.txt | 26 +++- .../doc/background_subtraction.rst} | 4 +- modules/nonfree/doc/feature_detection.rst | 103 +++++++++++++++ modules/nonfree/doc/nonfree.rst | 1 + .../include/opencv2/nonfree/gpu.hpp} | 14 ++- .../perf/perf_gpu.cpp} | 8 +- modules/nonfree/perf/perf_main.cpp | 2 +- modules/nonfree/perf/perf_precomp.hpp | 8 ++ .../{gpunonfree => nonfree}/src/cuda/surf.cu | 0 .../{gpunonfree => nonfree}/src/cuda/vibe.cu | 0 modules/nonfree/src/precomp.hpp | 15 +++ .../src/surf.cpp => nonfree/src/surf_gpu.cpp} | 11 +- .../src/vibe.cpp => nonfree/src/vibe_gpu.cpp} | 4 + .../test/test_gpu.cpp} | 11 +- modules/nonfree/test/test_main.cpp | 70 +++++++++++ modules/nonfree/test/test_precomp.hpp | 11 +- modules/stitching/CMakeLists.txt | 2 +- .../opencv2/stitching/detail/matchers.hpp | 7 +- modules/stitching/src/matchers.cpp | 2 +- modules/stitching/src/precomp.hpp | 9 +- modules/stitching/src/stitcher.cpp | 2 +- modules/superres/src/btv_l1_gpu.cpp | 2 +- samples/cpp/CMakeLists.txt | 7 -- samples/cpp/stitching_detailed.cpp | 2 +- samples/gpu/CMakeLists.txt | 8 +- samples/gpu/bgfg_segm.cpp | 18 +-- samples/gpu/performance/CMakeLists.txt | 4 +- samples/gpu/performance/tests.cpp | 6 +- samples/gpu/surf_keypoint_matcher.cpp | 6 +- 40 files changed, 300 insertions(+), 593 deletions(-) delete mode 100644 modules/gpunonfree/CMakeLists.txt delete mode 100644 modules/gpunonfree/doc/feature_detection_and_description.rst delete mode 100644 modules/gpunonfree/doc/gpunonfree.rst delete mode 100644 modules/gpunonfree/perf/perf_main.cpp delete mode 100644 modules/gpunonfree/perf/perf_precomp.cpp delete mode 100644 modules/gpunonfree/perf/perf_precomp.hpp delete mode 100644 modules/gpunonfree/src/precomp.cpp delete mode 100644 modules/gpunonfree/src/precomp.hpp delete mode 100644 modules/gpunonfree/test/test_main.cpp delete mode 100644 modules/gpunonfree/test/test_precomp.cpp delete mode 100644 modules/gpunonfree/test/test_precomp.hpp rename modules/{gpunonfree/doc/video.rst => nonfree/doc/background_subtraction.rst} (97%) rename modules/{gpunonfree/include/opencv2/gpunonfree/gpunonfree.hpp => nonfree/include/opencv2/nonfree/gpu.hpp} (96%) rename modules/{gpunonfree/perf/perf_gpunonfree.cpp => nonfree/perf/perf_gpu.cpp} (95%) rename modules/{gpunonfree => nonfree}/src/cuda/surf.cu (100%) rename modules/{gpunonfree => nonfree}/src/cuda/vibe.cu (100%) rename modules/{gpunonfree/src/surf.cpp => nonfree/src/surf_gpu.cpp} (99%) rename modules/{gpunonfree/src/vibe.cpp => nonfree/src/vibe_gpu.cpp} (98%) rename modules/{gpunonfree/test/test_gpunonfree.cpp => nonfree/test/test_gpu.cpp} (96%) diff --git a/modules/gpunonfree/CMakeLists.txt b/modules/gpunonfree/CMakeLists.txt deleted file mode 100644 index a975a61a43..0000000000 --- a/modules/gpunonfree/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -if(ANDROID OR IOS) - ocv_module_disable(gpunonfree) -endif() - -set(the_description "GPU-accelerated Computer Vision (non free)") -ocv_add_module(gpunonfree opencv_gpu opencv_nonfree) -ocv_module_include_directories() - -if(HAVE_CUDA) - ocv_source_group("Src\\Cuda" GLOB "src/cuda/*.cu") - ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include" ${CUDA_INCLUDE_DIRS}) - ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef) - - file(GLOB lib_cuda "src/cuda/*.cu") - ocv_cuda_compile(cuda_objs ${lib_cuda}) - - set(cuda_link_libs ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) -else() - set(lib_cuda "") - set(cuda_objs "") - set(cuda_link_libs "") -endif() - -ocv_glob_module_sources(SOURCES ${lib_cuda} ${cuda_objs}) - -ocv_create_module(${cuda_link_libs}) -ocv_add_precompiled_headers(${the_module}) - -ocv_add_accuracy_tests() -ocv_add_perf_tests() - diff --git a/modules/gpunonfree/doc/feature_detection_and_description.rst b/modules/gpunonfree/doc/feature_detection_and_description.rst deleted file mode 100644 index 9cec66f539..0000000000 --- a/modules/gpunonfree/doc/feature_detection_and_description.rst +++ /dev/null @@ -1,107 +0,0 @@ -Feature Detection and Description -================================= - -.. highlight:: cpp - - - -gpu::SURF_GPU -------------- -.. ocv:class:: gpu::SURF_GPU - -Class used for extracting Speeded Up Robust Features (SURF) from an image. :: - - class SURF_GPU - { - public: - enum KeypointLayout - { - X_ROW = 0, - Y_ROW, - LAPLACIAN_ROW, - OCTAVE_ROW, - SIZE_ROW, - ANGLE_ROW, - HESSIAN_ROW, - ROWS_COUNT - }; - - //! the default constructor - SURF_GPU(); - //! the full constructor taking all the necessary parameters - explicit SURF_GPU(double _hessianThreshold, int _nOctaves=4, - int _nOctaveLayers=2, bool _extended=false, float _keypointsRatio=0.01f); - - //! returns the descriptor size in float's (64 or 128) - int descriptorSize() const; - - //! upload host keypoints to device memory - void uploadKeypoints(const vector& keypoints, - GpuMat& keypointsGPU); - //! download keypoints from device to host memory - void downloadKeypoints(const GpuMat& keypointsGPU, - vector& keypoints); - - //! download descriptors from device to host memory - void downloadDescriptors(const GpuMat& descriptorsGPU, - vector& descriptors); - - void operator()(const GpuMat& img, const GpuMat& mask, - GpuMat& keypoints); - - void operator()(const GpuMat& img, const GpuMat& mask, - GpuMat& keypoints, GpuMat& descriptors, - bool useProvidedKeypoints = false, - bool calcOrientation = true); - - void operator()(const GpuMat& img, const GpuMat& mask, - std::vector& keypoints); - - void operator()(const GpuMat& img, const GpuMat& mask, - std::vector& keypoints, GpuMat& descriptors, - bool useProvidedKeypoints = false, - bool calcOrientation = true); - - void operator()(const GpuMat& img, const GpuMat& mask, - std::vector& keypoints, - std::vector& descriptors, - bool useProvidedKeypoints = false, - bool calcOrientation = true); - - void releaseMemory(); - - // SURF parameters - double hessianThreshold; - int nOctaves; - int nOctaveLayers; - bool extended; - bool upright; - - //! max keypoints = keypointsRatio * img.size().area() - float keypointsRatio; - - GpuMat sum, mask1, maskSum, intBuffer; - - GpuMat det, trace; - - GpuMat maxPosBuffer; - }; - - -The class ``SURF_GPU`` implements Speeded Up Robust Features descriptor. There is a fast multi-scale Hessian keypoint detector that can be used to find the keypoints (which is the default option). But the descriptors can also be computed for the user-specified keypoints. Only 8-bit grayscale images are supported. - -The class ``SURF_GPU`` can store results in the GPU and CPU memory. It provides functions to convert results between CPU and GPU version ( ``uploadKeypoints``, ``downloadKeypoints``, ``downloadDescriptors`` ). The format of CPU results is the same as ``SURF`` results. GPU results are stored in ``GpuMat``. The ``keypoints`` matrix is :math:`\texttt{nFeatures} \times 7` matrix with the ``CV_32FC1`` type. - -* ``keypoints.ptr(X_ROW)[i]`` contains x coordinate of the i-th feature. -* ``keypoints.ptr(Y_ROW)[i]`` contains y coordinate of the i-th feature. -* ``keypoints.ptr(LAPLACIAN_ROW)[i]`` contains the laplacian sign of the i-th feature. -* ``keypoints.ptr(OCTAVE_ROW)[i]`` contains the octave of the i-th feature. -* ``keypoints.ptr(SIZE_ROW)[i]`` contains the size of the i-th feature. -* ``keypoints.ptr(ANGLE_ROW)[i]`` contain orientation of the i-th feature. -* ``keypoints.ptr(HESSIAN_ROW)[i]`` contains the response of the i-th feature. - -The ``descriptors`` matrix is :math:`\texttt{nFeatures} \times \texttt{descriptorSize}` matrix with the ``CV_32FC1`` type. - -The class ``SURF_GPU`` uses some buffers and provides access to it. All buffers can be safely released between function calls. - -.. seealso:: :ocv:class:`SURF` diff --git a/modules/gpunonfree/doc/gpunonfree.rst b/modules/gpunonfree/doc/gpunonfree.rst deleted file mode 100644 index 4c2b71fe26..0000000000 --- a/modules/gpunonfree/doc/gpunonfree.rst +++ /dev/null @@ -1,9 +0,0 @@ -****************************************************** -gpunonfree. GPU-accelerated Computer Vision (non free) -****************************************************** - -.. toctree:: - :maxdepth: 1 - - feature_detection_and_description - video diff --git a/modules/gpunonfree/perf/perf_main.cpp b/modules/gpunonfree/perf/perf_main.cpp deleted file mode 100644 index 75e3ca651b..0000000000 --- a/modules/gpunonfree/perf/perf_main.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "perf_precomp.hpp" - -using namespace perf; - -CV_PERF_TEST_MAIN(gpunonfree, printCudaInfo()) diff --git a/modules/gpunonfree/perf/perf_precomp.cpp b/modules/gpunonfree/perf/perf_precomp.cpp deleted file mode 100644 index 8552ac3d42..0000000000 --- a/modules/gpunonfree/perf/perf_precomp.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "perf_precomp.hpp" diff --git a/modules/gpunonfree/perf/perf_precomp.hpp b/modules/gpunonfree/perf/perf_precomp.hpp deleted file mode 100644 index 410eaecfdf..0000000000 --- a/modules/gpunonfree/perf/perf_precomp.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifdef __GNUC__ -# pragma GCC diagnostic ignored "-Wmissing-declarations" -# if defined __clang__ || defined __APPLE__ -# pragma GCC diagnostic ignored "-Wmissing-prototypes" -# pragma GCC diagnostic ignored "-Wextra" -# endif -#endif - -#ifndef __OPENCV_PERF_PRECOMP_HPP__ -#define __OPENCV_PERF_PRECOMP_HPP__ - -#include -#include - -#include "cvconfig.h" - -#include "opencv2/ts/ts.hpp" -#include "opencv2/ts/ts_perf.hpp" -#include "opencv2/ts/gpu_perf.hpp" - -#include "opencv2/core/core.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/gpu/gpu.hpp" -#include "opencv2/gpunonfree/gpunonfree.hpp" -#include "opencv2/nonfree/nonfree.hpp" - -#ifdef GTEST_CREATE_SHARED_LIBRARY -#error no modules except ts should have GTEST_CREATE_SHARED_LIBRARY defined -#endif - -#endif diff --git a/modules/gpunonfree/src/precomp.cpp b/modules/gpunonfree/src/precomp.cpp deleted file mode 100644 index 75eb6935d0..0000000000 --- a/modules/gpunonfree/src/precomp.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#include "precomp.hpp" - -/* End of file. */ - diff --git a/modules/gpunonfree/src/precomp.hpp b/modules/gpunonfree/src/precomp.hpp deleted file mode 100644 index 59a5a2cdec..0000000000 --- a/modules/gpunonfree/src/precomp.hpp +++ /dev/null @@ -1,71 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef __OPENCV_PRECOMP_H__ -#define __OPENCV_PRECOMP_H__ - -#if defined _MSC_VER && _MSC_VER >= 1200 - #pragma warning( disable: 4251 4710 4711 4514 4996 ) -#endif - -#ifdef HAVE_CVCONFIG_H - #include "cvconfig.h" -#endif - -#include - -#include "opencv2/gpu/gpu.hpp" -#include "opencv2/gpunonfree/gpunonfree.hpp" - -#ifdef HAVE_CUDA - #include "opencv2/gpu/stream_accessor.hpp" - #include "opencv2/gpu/device/common.hpp" - - static inline void throw_nogpu() { CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); } - -#else /* defined(HAVE_CUDA) */ - - static inline void throw_nogpu() { CV_Error(CV_GpuNotSupported, "The library is compiled without GPU support"); } - -#endif /* defined(HAVE_CUDA) */ - -#endif /* __OPENCV_PRECOMP_H__ */ diff --git a/modules/gpunonfree/test/test_main.cpp b/modules/gpunonfree/test/test_main.cpp deleted file mode 100644 index 4c15ff95e9..0000000000 --- a/modules/gpunonfree/test/test_main.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#include "test_precomp.hpp" - -#ifdef HAVE_CUDA - -using namespace std; -using namespace cv; -using namespace cv::gpu; -using namespace cvtest; -using namespace testing; - -int main(int argc, char** argv) -{ - try - { - const char* keys = - "{ h | help ? | false | Print help}" - "{ i | info | false | Print information about system and exit }" - "{ d | device | -1 | Device on which tests will be executed (-1 means all devices) }" - ; - - CommandLineParser cmd(argc, (const char**)argv, keys); - - if (cmd.get("help")) - { - cmd.printParams(); - return 0; - } - - printCudaInfo(); - - if (cmd.get("info")) - { - return 0; - } - - int device = cmd.get("device"); - if (device < 0) - { - DeviceManager::instance().loadAll(); - - cout << "Run tests on all supported devices \n" << endl; - } - else - { - DeviceManager::instance().load(device); - - DeviceInfo info(device); - cout << "Run tests on device " << device << " [" << info.name() << "] \n" << endl; - } - - TS::ptr()->init("gpu"); - InitGoogleTest(&argc, argv); - - return RUN_ALL_TESTS(); - } - catch (const exception& e) - { - cerr << e.what() << endl; - return -1; - } - catch (...) - { - cerr << "Unknown error" << endl; - return -1; - } - - return 0; -} - -#else // HAVE_CUDA - -int main() -{ - std::cerr << "OpenCV was built without CUDA support" << std::endl; - return 0; -} - -#endif // HAVE_CUDA diff --git a/modules/gpunonfree/test/test_precomp.cpp b/modules/gpunonfree/test/test_precomp.cpp deleted file mode 100644 index 8121ae405b..0000000000 --- a/modules/gpunonfree/test/test_precomp.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#include "test_precomp.hpp" diff --git a/modules/gpunonfree/test/test_precomp.hpp b/modules/gpunonfree/test/test_precomp.hpp deleted file mode 100644 index 5030a0d391..0000000000 --- a/modules/gpunonfree/test/test_precomp.hpp +++ /dev/null @@ -1,69 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifdef __GNUC__ -# pragma GCC diagnostic ignored "-Wmissing-declarations" -# if defined __clang__ || defined __APPLE__ -# pragma GCC diagnostic ignored "-Wmissing-prototypes" -# pragma GCC diagnostic ignored "-Wextra" -# endif -#endif - -#ifndef __OPENCV_TEST_PRECOMP_HPP__ -#define __OPENCV_TEST_PRECOMP_HPP__ - -#include "cvconfig.h" - -#include - -#ifdef HAVE_CUDA - #include "opencv2/ts/ts.hpp" - #include "opencv2/ts/ts_perf.hpp" - #include "opencv2/ts/gpu_test.hpp" - - #include "opencv2/core/core.hpp" - #include "opencv2/highgui/highgui.hpp" - #include "opencv2/gpu/gpu.hpp" - #include "opencv2/gpunonfree/gpunonfree.hpp" - #include "opencv2/nonfree/nonfree.hpp" -#endif - -#endif diff --git a/modules/nonfree/CMakeLists.txt b/modules/nonfree/CMakeLists.txt index eeaf53a6f8..e00cf8f247 100644 --- a/modules/nonfree/CMakeLists.txt +++ b/modules/nonfree/CMakeLists.txt @@ -3,4 +3,28 @@ if(BUILD_ANDROID_PACKAGE) endif() set(the_description "Functionality with possible limitations on the use") -ocv_define_module(nonfree opencv_imgproc opencv_features2d opencv_calib3d) +ocv_add_module(nonfree opencv_imgproc opencv_features2d opencv_calib3d OPTIONAL opencv_gpu) +ocv_module_include_directories() + +if(HAVE_CUDA AND HAVE_opencv_gpu) + ocv_source_group("Src\\Cuda" GLOB "src/cuda/*.cu") + ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include" ${CUDA_INCLUDE_DIRS}) + ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef) + + file(GLOB lib_cuda "src/cuda/*.cu") + ocv_cuda_compile(cuda_objs ${lib_cuda}) + + set(cuda_link_libs ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) +else() + set(lib_cuda "") + set(cuda_objs "") + set(cuda_link_libs "") +endif() + +ocv_glob_module_sources(SOURCES ${lib_cuda} ${cuda_objs}) + +ocv_create_module(${cuda_link_libs}) +ocv_add_precompiled_headers(${the_module}) + +ocv_add_accuracy_tests() +ocv_add_perf_tests() diff --git a/modules/gpunonfree/doc/video.rst b/modules/nonfree/doc/background_subtraction.rst similarity index 97% rename from modules/gpunonfree/doc/video.rst rename to modules/nonfree/doc/background_subtraction.rst index 4fdfacc07d..11603ca566 100644 --- a/modules/gpunonfree/doc/video.rst +++ b/modules/nonfree/doc/background_subtraction.rst @@ -1,5 +1,5 @@ -Video Analysis -============== +Background Subtraction +====================== .. highlight:: cpp diff --git a/modules/nonfree/doc/feature_detection.rst b/modules/nonfree/doc/feature_detection.rst index e4ac357429..bb2f6b0387 100644 --- a/modules/nonfree/doc/feature_detection.rst +++ b/modules/nonfree/doc/feature_detection.rst @@ -127,3 +127,106 @@ Detects keypoints and computes SURF descriptors for them. The function is parallelized with the TBB library. If you are using the C version, make sure you call ``cv::initModule_nonfree()`` from ``nonfree/nonfree.hpp``. + + + +gpu::SURF_GPU +------------- +.. ocv:class:: gpu::SURF_GPU + +Class used for extracting Speeded Up Robust Features (SURF) from an image. :: + + class SURF_GPU + { + public: + enum KeypointLayout + { + X_ROW = 0, + Y_ROW, + LAPLACIAN_ROW, + OCTAVE_ROW, + SIZE_ROW, + ANGLE_ROW, + HESSIAN_ROW, + ROWS_COUNT + }; + + //! the default constructor + SURF_GPU(); + //! the full constructor taking all the necessary parameters + explicit SURF_GPU(double _hessianThreshold, int _nOctaves=4, + int _nOctaveLayers=2, bool _extended=false, float _keypointsRatio=0.01f); + + //! returns the descriptor size in float's (64 or 128) + int descriptorSize() const; + + //! upload host keypoints to device memory + void uploadKeypoints(const vector& keypoints, + GpuMat& keypointsGPU); + //! download keypoints from device to host memory + void downloadKeypoints(const GpuMat& keypointsGPU, + vector& keypoints); + + //! download descriptors from device to host memory + void downloadDescriptors(const GpuMat& descriptorsGPU, + vector& descriptors); + + void operator()(const GpuMat& img, const GpuMat& mask, + GpuMat& keypoints); + + void operator()(const GpuMat& img, const GpuMat& mask, + GpuMat& keypoints, GpuMat& descriptors, + bool useProvidedKeypoints = false, + bool calcOrientation = true); + + void operator()(const GpuMat& img, const GpuMat& mask, + std::vector& keypoints); + + void operator()(const GpuMat& img, const GpuMat& mask, + std::vector& keypoints, GpuMat& descriptors, + bool useProvidedKeypoints = false, + bool calcOrientation = true); + + void operator()(const GpuMat& img, const GpuMat& mask, + std::vector& keypoints, + std::vector& descriptors, + bool useProvidedKeypoints = false, + bool calcOrientation = true); + + void releaseMemory(); + + // SURF parameters + double hessianThreshold; + int nOctaves; + int nOctaveLayers; + bool extended; + bool upright; + + //! max keypoints = keypointsRatio * img.size().area() + float keypointsRatio; + + GpuMat sum, mask1, maskSum, intBuffer; + + GpuMat det, trace; + + GpuMat maxPosBuffer; + }; + + +The class ``SURF_GPU`` implements Speeded Up Robust Features descriptor. There is a fast multi-scale Hessian keypoint detector that can be used to find the keypoints (which is the default option). But the descriptors can also be computed for the user-specified keypoints. Only 8-bit grayscale images are supported. + +The class ``SURF_GPU`` can store results in the GPU and CPU memory. It provides functions to convert results between CPU and GPU version ( ``uploadKeypoints``, ``downloadKeypoints``, ``downloadDescriptors`` ). The format of CPU results is the same as ``SURF`` results. GPU results are stored in ``GpuMat``. The ``keypoints`` matrix is :math:`\texttt{nFeatures} \times 7` matrix with the ``CV_32FC1`` type. + +* ``keypoints.ptr(X_ROW)[i]`` contains x coordinate of the i-th feature. +* ``keypoints.ptr(Y_ROW)[i]`` contains y coordinate of the i-th feature. +* ``keypoints.ptr(LAPLACIAN_ROW)[i]`` contains the laplacian sign of the i-th feature. +* ``keypoints.ptr(OCTAVE_ROW)[i]`` contains the octave of the i-th feature. +* ``keypoints.ptr(SIZE_ROW)[i]`` contains the size of the i-th feature. +* ``keypoints.ptr(ANGLE_ROW)[i]`` contain orientation of the i-th feature. +* ``keypoints.ptr(HESSIAN_ROW)[i]`` contains the response of the i-th feature. + +The ``descriptors`` matrix is :math:`\texttt{nFeatures} \times \texttt{descriptorSize}` matrix with the ``CV_32FC1`` type. + +The class ``SURF_GPU`` uses some buffers and provides access to it. All buffers can be safely released between function calls. + +.. seealso:: :ocv:class:`SURF` diff --git a/modules/nonfree/doc/nonfree.rst b/modules/nonfree/doc/nonfree.rst index e524ea82f8..f8fa1d6eba 100644 --- a/modules/nonfree/doc/nonfree.rst +++ b/modules/nonfree/doc/nonfree.rst @@ -8,3 +8,4 @@ The module contains algorithms that may be patented in some countries or have so :maxdepth: 2 feature_detection + background_subtraction diff --git a/modules/gpunonfree/include/opencv2/gpunonfree/gpunonfree.hpp b/modules/nonfree/include/opencv2/nonfree/gpu.hpp similarity index 96% rename from modules/gpunonfree/include/opencv2/gpunonfree/gpunonfree.hpp rename to modules/nonfree/include/opencv2/nonfree/gpu.hpp index 40d9cfd2bc..911022669d 100644 --- a/modules/gpunonfree/include/opencv2/gpunonfree/gpunonfree.hpp +++ b/modules/nonfree/include/opencv2/nonfree/gpu.hpp @@ -40,12 +40,12 @@ // //M*/ -#ifndef __OPENCV_GPUNONFREE_HPP__ -#define __OPENCV_GPUNONFREE_HPP__ +#ifndef __OPENCV_NONFREE_GPU_HPP__ +#define __OPENCV_NONFREE_GPU_HPP__ -#ifndef SKIP_INCLUDES -#include -#endif +#include "opencv2/opencv_modules.hpp" + +#if defined(HAVE_OPENCV_GPU) #include "opencv2/gpu/gpu.hpp" @@ -164,4 +164,6 @@ private: } // namespace cv -#endif /* __OPENCV_GPUNONFREE_HPP__ */ +#endif // defined(HAVE_OPENCV_GPU) + +#endif // __OPENCV_NONFREE_GPU_HPP__ diff --git a/modules/gpunonfree/perf/perf_gpunonfree.cpp b/modules/nonfree/perf/perf_gpu.cpp similarity index 95% rename from modules/gpunonfree/perf/perf_gpunonfree.cpp rename to modules/nonfree/perf/perf_gpu.cpp index 4a27b77258..a68fb6a0ea 100644 --- a/modules/gpunonfree/perf/perf_gpunonfree.cpp +++ b/modules/nonfree/perf/perf_gpu.cpp @@ -4,12 +4,14 @@ using namespace std; using namespace testing; using namespace perf; +#if defined(HAVE_OPENCV_GPU) && defined(HAVE_CUDA) + ////////////////////////////////////////////////////////////////////// // SURF DEF_PARAM_TEST_1(Image, string); -PERF_TEST_P(Image, Features2D_SURF, +PERF_TEST_P(Image, GPU_SURF, Values("gpu/perf/aloe.png")) { declare.time(50.0); @@ -55,7 +57,7 @@ PERF_TEST_P(Image, Features2D_SURF, DEF_PARAM_TEST(Video_Cn, string, int); -PERF_TEST_P(Video_Cn, Video_VIBE, +PERF_TEST_P(Video_Cn, GPU_VIBE, Combine(Values("gpu/video/768x576.avi", "gpu/video/1920x1080.avi"), GPU_CHANNELS_1_3_4)) { @@ -116,3 +118,5 @@ PERF_TEST_P(Video_Cn, Video_VIBE, FAIL_NO_CPU(); } } + +#endif diff --git a/modules/nonfree/perf/perf_main.cpp b/modules/nonfree/perf/perf_main.cpp index 3fcca19c3c..444ace981a 100644 --- a/modules/nonfree/perf/perf_main.cpp +++ b/modules/nonfree/perf/perf_main.cpp @@ -1,3 +1,3 @@ #include "perf_precomp.hpp" -CV_PERF_TEST_MAIN(nonfree) +CV_PERF_TEST_MAIN(nonfree, perf::printCudaInfo()) diff --git a/modules/nonfree/perf/perf_precomp.hpp b/modules/nonfree/perf/perf_precomp.hpp index 79a368d712..3dafdb206b 100644 --- a/modules/nonfree/perf/perf_precomp.hpp +++ b/modules/nonfree/perf/perf_precomp.hpp @@ -9,10 +9,18 @@ #ifndef __OPENCV_PERF_PRECOMP_HPP__ #define __OPENCV_PERF_PRECOMP_HPP__ +#include "cvconfig.h" +#include "opencv2/opencv_modules.hpp" + #include "opencv2/ts/ts.hpp" +#include "opencv2/ts/gpu_perf.hpp" #include "opencv2/nonfree/nonfree.hpp" #include "opencv2/highgui/highgui.hpp" +#if defined(HAVE_OPENCV_GPU) && defined(HAVE_CUDA) + #include "opencv2/nonfree/gpu.hpp" +#endif + #ifdef GTEST_CREATE_SHARED_LIBRARY #error no modules except ts should have GTEST_CREATE_SHARED_LIBRARY defined #endif diff --git a/modules/gpunonfree/src/cuda/surf.cu b/modules/nonfree/src/cuda/surf.cu similarity index 100% rename from modules/gpunonfree/src/cuda/surf.cu rename to modules/nonfree/src/cuda/surf.cu diff --git a/modules/gpunonfree/src/cuda/vibe.cu b/modules/nonfree/src/cuda/vibe.cu similarity index 100% rename from modules/gpunonfree/src/cuda/vibe.cu rename to modules/nonfree/src/cuda/vibe.cu diff --git a/modules/nonfree/src/precomp.hpp b/modules/nonfree/src/precomp.hpp index 1730b8b10d..51157d26e2 100644 --- a/modules/nonfree/src/precomp.hpp +++ b/modules/nonfree/src/precomp.hpp @@ -47,8 +47,23 @@ #include "cvconfig.h" #endif +#include "opencv2/opencv_modules.hpp" + #include "opencv2/nonfree/nonfree.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/core/internal.hpp" +#if defined(HAVE_OPENCV_GPU) + #include "opencv2/nonfree/gpu.hpp" + + #if defined(HAVE_CUDA) + #include "opencv2/gpu/stream_accessor.hpp" + #include "opencv2/gpu/device/common.hpp" + + static inline void throw_nogpu() { CV_Error(CV_StsNotImplemented, "The called functionality is disabled for current build or platform"); } + #else + static inline void throw_nogpu() { CV_Error(CV_GpuNotSupported, "The library is compiled without GPU support"); } + #endif +#endif + #endif diff --git a/modules/gpunonfree/src/surf.cpp b/modules/nonfree/src/surf_gpu.cpp similarity index 99% rename from modules/gpunonfree/src/surf.cpp rename to modules/nonfree/src/surf_gpu.cpp index 024087fe5a..dec9c0d2dc 100644 --- a/modules/gpunonfree/src/surf.cpp +++ b/modules/nonfree/src/surf_gpu.cpp @@ -42,11 +42,12 @@ #include "precomp.hpp" +#if defined(HAVE_OPENCV_GPU) + using namespace cv; using namespace cv::gpu; -using namespace std; -#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) +#if !defined (HAVE_CUDA) cv::gpu::SURF_GPU::SURF_GPU() { throw_nogpu(); } cv::gpu::SURF_GPU::SURF_GPU(double, int, int, bool, float, bool) { throw_nogpu(); } @@ -61,7 +62,7 @@ void cv::gpu::SURF_GPU::operator()(const GpuMat&, const GpuMat&, vector&, vector&, bool) { throw_nogpu(); } void cv::gpu::SURF_GPU::releaseMemory() { throw_nogpu(); } -#else /* !defined (HAVE_CUDA) */ +#else // !defined (HAVE_CUDA) namespace cv { namespace gpu { namespace device { @@ -416,4 +417,6 @@ void cv::gpu::SURF_GPU::releaseMemory() maxPosBuffer.release(); } -#endif /* !defined (HAVE_CUDA) */ +#endif // !defined (HAVE_CUDA) + +#endif // defined(HAVE_OPENCV_GPU) diff --git a/modules/gpunonfree/src/vibe.cpp b/modules/nonfree/src/vibe_gpu.cpp similarity index 98% rename from modules/gpunonfree/src/vibe.cpp rename to modules/nonfree/src/vibe_gpu.cpp index ff7e58082e..e34862765d 100644 --- a/modules/gpunonfree/src/vibe.cpp +++ b/modules/nonfree/src/vibe_gpu.cpp @@ -42,6 +42,8 @@ #include "precomp.hpp" +#if defined(HAVE_OPENCV_GPU) + #if !defined HAVE_CUDA || defined(CUDA_DISABLER) cv::gpu::VIBE_GPU::VIBE_GPU(unsigned long) { throw_nogpu(); } @@ -135,3 +137,5 @@ void cv::gpu::VIBE_GPU::release() } #endif + +#endif // defined(HAVE_OPENCV_GPU) diff --git a/modules/gpunonfree/test/test_gpunonfree.cpp b/modules/nonfree/test/test_gpu.cpp similarity index 96% rename from modules/gpunonfree/test/test_gpunonfree.cpp rename to modules/nonfree/test/test_gpu.cpp index 2d4e179e19..2993cf5676 100644 --- a/modules/gpunonfree/test/test_gpunonfree.cpp +++ b/modules/nonfree/test/test_gpu.cpp @@ -41,7 +41,7 @@ #include "test_precomp.hpp" -#ifdef HAVE_CUDA +#if defined(HAVE_OPENCV_GPU) && defined(HAVE_CUDA) using namespace cvtest; @@ -81,7 +81,7 @@ PARAM_TEST_CASE(SURF, cv::gpu::DeviceInfo, SURF_HessianThreshold, SURF_Octaves, GPU_TEST_P(SURF, Detector) { - cv::Mat image = readImage("features2d/aloe.png", cv::IMREAD_GRAYSCALE); + cv::Mat image = readImage("../gpu/features2d/aloe.png", cv::IMREAD_GRAYSCALE); ASSERT_FALSE(image.empty()); cv::gpu::SURF_GPU surf; @@ -129,7 +129,7 @@ GPU_TEST_P(SURF, Detector) GPU_TEST_P(SURF, Detector_Masked) { - cv::Mat image = readImage("features2d/aloe.png", cv::IMREAD_GRAYSCALE); + cv::Mat image = readImage("../gpu/features2d/aloe.png", cv::IMREAD_GRAYSCALE); ASSERT_FALSE(image.empty()); cv::Mat mask(image.size(), CV_8UC1, cv::Scalar::all(1)); @@ -180,7 +180,7 @@ GPU_TEST_P(SURF, Detector_Masked) GPU_TEST_P(SURF, Descriptor) { - cv::Mat image = readImage("features2d/aloe.png", cv::IMREAD_GRAYSCALE); + cv::Mat image = readImage("../gpu/features2d/aloe.png", cv::IMREAD_GRAYSCALE); ASSERT_FALSE(image.empty()); cv::gpu::SURF_GPU surf; @@ -282,5 +282,4 @@ INSTANTIATE_TEST_CASE_P(GPU_Video, VIBE, testing::Combine( testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4)), WHOLE_SUBMAT)); -#endif // HAVE_CUDA - +#endif diff --git a/modules/nonfree/test/test_main.cpp b/modules/nonfree/test/test_main.cpp index 6b24993447..bf4c6c0c3b 100644 --- a/modules/nonfree/test/test_main.cpp +++ b/modules/nonfree/test/test_main.cpp @@ -1,3 +1,73 @@ #include "test_precomp.hpp" +#if defined(HAVE_OPENCV_GPU) && defined(HAVE_CUDA) + +using namespace cv; +using namespace cv::gpu; +using namespace cvtest; +using namespace testing; + +int main(int argc, char** argv) +{ + try + { + const char* keys = + "{ h | help ? | false | Print help}" + "{ i | info | false | Print information about system and exit }" + "{ d | device | -1 | Device on which tests will be executed (-1 means all devices) }" + ; + + CommandLineParser cmd(argc, (const char**)argv, keys); + + if (cmd.get("help")) + { + cmd.printParams(); + return 0; + } + + printCudaInfo(); + + if (cmd.get("info")) + { + return 0; + } + + int device = cmd.get("device"); + if (device < 0) + { + DeviceManager::instance().loadAll(); + + std::cout << "Run tests on all supported devices \n" << std::endl; + } + else + { + DeviceManager::instance().load(device); + + DeviceInfo info(device); + std::cout << "Run tests on device " << device << " [" << info.name() << "] \n" << std::endl; + } + + TS::ptr()->init("cv"); + InitGoogleTest(&argc, argv); + + return RUN_ALL_TESTS(); + } + catch (const std::exception& e) + { + std::cerr << e.what() << std::endl; + return -1; + } + catch (...) + { + std::cerr << "Unknown error" << std::endl; + return -1; + } + + return 0; +} + +#else // HAVE_CUDA + CV_TEST_MAIN("cv") + +#endif // HAVE_CUDA diff --git a/modules/nonfree/test/test_precomp.hpp b/modules/nonfree/test/test_precomp.hpp index 062ab7bb13..14c4b2a874 100644 --- a/modules/nonfree/test/test_precomp.hpp +++ b/modules/nonfree/test/test_precomp.hpp @@ -9,10 +9,19 @@ #ifndef __OPENCV_TEST_PRECOMP_HPP__ #define __OPENCV_TEST_PRECOMP_HPP__ +#include + +#include "cvconfig.h" +#include "opencv2/opencv_modules.hpp" + #include "opencv2/ts/ts.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/nonfree/nonfree.hpp" -#include + +#if defined(HAVE_OPENCV_GPU) && defined(HAVE_CUDA) + #include "opencv2/ts/gpu_test.hpp" + #include "opencv2/nonfree/gpu.hpp" +#endif #endif diff --git a/modules/stitching/CMakeLists.txt b/modules/stitching/CMakeLists.txt index b310a8eb65..5d48bd378f 100644 --- a/modules/stitching/CMakeLists.txt +++ b/modules/stitching/CMakeLists.txt @@ -1,3 +1,3 @@ set(the_description "Images stitching") -ocv_define_module(stitching opencv_imgproc opencv_features2d opencv_calib3d opencv_objdetect OPTIONAL opencv_gpu opencv_gpunonfree opencv_nonfree) +ocv_define_module(stitching opencv_imgproc opencv_features2d opencv_calib3d opencv_objdetect OPTIONAL opencv_gpu opencv_nonfree) diff --git a/modules/stitching/include/opencv2/stitching/detail/matchers.hpp b/modules/stitching/include/opencv2/stitching/detail/matchers.hpp index 9332d94660..108cd0face 100644 --- a/modules/stitching/include/opencv2/stitching/detail/matchers.hpp +++ b/modules/stitching/include/opencv2/stitching/detail/matchers.hpp @@ -47,8 +47,9 @@ #include "opencv2/features2d/features2d.hpp" #include "opencv2/opencv_modules.hpp" -#ifdef HAVE_OPENCV_GPUNONFREE -#include "opencv2/gpunonfree/gpunonfree.hpp" + +#if defined(HAVE_OPENCV_NONFREE) && defined(HAVE_OPENCV_GPU) + #include "opencv2/nonfree/gpu.hpp" #endif namespace cv { @@ -103,7 +104,7 @@ private: }; -#ifdef HAVE_OPENCV_GPUNONFREE +#if defined(HAVE_OPENCV_NONFREE) && defined(HAVE_OPENCV_GPU) class CV_EXPORTS SurfFeaturesFinderGpu : public FeaturesFinder { public: diff --git a/modules/stitching/src/matchers.cpp b/modules/stitching/src/matchers.cpp index 07845d2770..2231d13681 100644 --- a/modules/stitching/src/matchers.cpp +++ b/modules/stitching/src/matchers.cpp @@ -429,7 +429,7 @@ void OrbFeaturesFinder::find(const Mat &image, ImageFeatures &features) } } -#ifdef HAVE_OPENCV_GPUNONFREE +#if defined(HAVE_OPENCV_NONFREE) && defined(HAVE_OPENCV_GPU) SurfFeaturesFinderGpu::SurfFeaturesFinderGpu(double hess_thresh, int num_octaves, int num_layers, int num_octaves_descr, int num_layers_descr) { diff --git a/modules/stitching/src/precomp.hpp b/modules/stitching/src/precomp.hpp index 0aade9faa3..4849ace1eb 100644 --- a/modules/stitching/src/precomp.hpp +++ b/modules/stitching/src/precomp.hpp @@ -71,10 +71,11 @@ #include "opencv2/features2d/features2d.hpp" #include "opencv2/calib3d/calib3d.hpp" #ifdef HAVE_OPENCV_GPU -# include "opencv2/gpu/gpu.hpp" -#endif -#ifdef HAVE_OPENCV_GPUNONFREE -# include "opencv2/gpunonfree/gpunonfree.hpp" + #include "opencv2/gpu/gpu.hpp" + + #ifdef HAVE_OPENCV_NONFREE + #include "opencv2/nonfree/gpu.hpp" + #endif #endif #include "../../imgproc/src/gcgraph.hpp" diff --git a/modules/stitching/src/stitcher.cpp b/modules/stitching/src/stitcher.cpp index 2a2fe0f6b1..5da26f6dbf 100644 --- a/modules/stitching/src/stitcher.cpp +++ b/modules/stitching/src/stitcher.cpp @@ -61,7 +61,7 @@ Stitcher Stitcher::createDefault(bool try_use_gpu) #ifdef HAVE_OPENCV_GPU if (try_use_gpu && gpu::getCudaEnabledDeviceCount() > 0) { -#ifdef HAVE_OPENCV_GPUNONFREE +#if defined(HAVE_OPENCV_NONFREE) stitcher.setFeaturesFinder(new detail::SurfFeaturesFinderGpu()); #else stitcher.setFeaturesFinder(new detail::OrbFeaturesFinder()); diff --git a/modules/superres/src/btv_l1_gpu.cpp b/modules/superres/src/btv_l1_gpu.cpp index 4820d716a9..4f7b4f15a4 100644 --- a/modules/superres/src/btv_l1_gpu.cpp +++ b/modules/superres/src/btv_l1_gpu.cpp @@ -51,7 +51,7 @@ using namespace cv::gpu; using namespace cv::superres; using namespace cv::superres::detail; -#ifndef HAVE_CUDA +#if !defined(HAVE_CUDA) || !defined(HAVE_OPENCV_GPU) Ptr cv::superres::createSuperResolution_BTVL1_GPU() { diff --git a/samples/cpp/CMakeLists.txt b/samples/cpp/CMakeLists.txt index 3f42f43973..f69382ac66 100644 --- a/samples/cpp/CMakeLists.txt +++ b/samples/cpp/CMakeLists.txt @@ -20,10 +20,6 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include") endif() - if(HAVE_opencv_gpunonfree) - ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpunonfree/include") - endif() - if(CMAKE_COMPILER_IS_GNUCXX AND NOT ENABLE_NOISY_WARNINGS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function") endif() @@ -48,9 +44,6 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) if(HAVE_opencv_gpu) target_link_libraries(${the_target} opencv_gpu) endif() - if(HAVE_opencv_gpunonfree) - target_link_libraries(${the_target} opencv_gpunonfree) - endif() set_target_properties(${the_target} PROPERTIES OUTPUT_NAME "cpp-${sample_kind}-${name}" diff --git a/samples/cpp/stitching_detailed.cpp b/samples/cpp/stitching_detailed.cpp index fe4ad8779e..e795fdb8f6 100644 --- a/samples/cpp/stitching_detailed.cpp +++ b/samples/cpp/stitching_detailed.cpp @@ -355,7 +355,7 @@ int main(int argc, char* argv[]) Ptr finder; if (features_type == "surf") { -#ifdef HAVE_OPENCV_GPUNONFREE +#if defined(HAVE_OPENCV_NONFREE) && defined(HAVE_OPENCV_GPU) if (try_gpu && gpu::getCudaEnabledDeviceCount() > 0) finder = new SurfFeaturesFinderGpu(); else diff --git a/samples/gpu/CMakeLists.txt b/samples/gpu/CMakeLists.txt index f68d2cd439..85bee50585 100644 --- a/samples/gpu/CMakeLists.txt +++ b/samples/gpu/CMakeLists.txt @@ -17,8 +17,8 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) "${OpenCV_SOURCE_DIR}/modules/gpu/src/nvidia/core" ) - if(HAVE_opencv_gpunonfree) - ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpunonfree/include") + if(HAVE_opencv_nonfree) + ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/nonfree/include") endif() if(HAVE_CUDA) @@ -37,8 +37,8 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) add_executable(${the_target} ${srcs}) target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_GPU_SAMPLES_REQUIRED_DEPS}) - if(HAVE_opencv_gpunonfree) - target_link_libraries(${the_target} opencv_gpunonfree) + if(HAVE_opencv_nonfree) + target_link_libraries(${the_target} opencv_nonfree) endif() set_target_properties(${the_target} PROPERTIES diff --git a/samples/gpu/bgfg_segm.cpp b/samples/gpu/bgfg_segm.cpp index ff538f805f..a77d336a9e 100644 --- a/samples/gpu/bgfg_segm.cpp +++ b/samples/gpu/bgfg_segm.cpp @@ -6,8 +6,8 @@ #include "opencv2/gpu/gpu.hpp" #include "opencv2/highgui/highgui.hpp" -#ifdef HAVE_OPENCV_GPUNONFREE -#include "opencv2/gpunonfree/gpunonfree.hpp" +#ifdef HAVE_OPENCV_NONFREE +#include "opencv2/nonfree/gpu.hpp" #endif using namespace std; @@ -19,7 +19,7 @@ enum Method FGD_STAT, MOG, MOG2, -#ifdef HAVE_OPENCV_GPUNONFREE +#ifdef HAVE_OPENCV_NONFREE VIBE, #endif GMG @@ -48,7 +48,7 @@ int main(int argc, const char** argv) if (method != "fgd" && method != "mog" && method != "mog2" - #ifdef HAVE_OPENCV_GPUNONFREE + #ifdef HAVE_OPENCV_NONFREE && method != "vibe" #endif && method != "gmg") @@ -60,7 +60,7 @@ int main(int argc, const char** argv) Method m = method == "fgd" ? FGD_STAT : method == "mog" ? MOG : method == "mog2" ? MOG2 : - #ifdef HAVE_OPENCV_GPUNONFREE + #ifdef HAVE_OPENCV_NONFREE method == "vibe" ? VIBE : #endif GMG; @@ -86,7 +86,7 @@ int main(int argc, const char** argv) FGDStatModel fgd_stat; MOG_GPU mog; MOG2_GPU mog2; -#ifdef HAVE_OPENCV_GPUNONFREE +#ifdef HAVE_OPENCV_NONFREE VIBE_GPU vibe; #endif GMG_GPU gmg; @@ -114,7 +114,7 @@ int main(int argc, const char** argv) mog2(d_frame, d_fgmask); break; -#ifdef HAVE_OPENCV_GPUNONFREE +#ifdef HAVE_OPENCV_NONFREE case VIBE: vibe.initialize(d_frame); break; @@ -129,7 +129,7 @@ int main(int argc, const char** argv) namedWindow("foreground mask", WINDOW_NORMAL); namedWindow("foreground image", WINDOW_NORMAL); if (m != GMG - #ifdef HAVE_OPENCV_GPUNONFREE + #ifdef HAVE_OPENCV_NONFREE && m != VIBE #endif ) @@ -165,7 +165,7 @@ int main(int argc, const char** argv) mog2.getBackgroundImage(d_bgimg); break; -#ifdef HAVE_OPENCV_GPUNONFREE +#ifdef HAVE_OPENCV_NONFREE case VIBE: vibe(d_frame, d_fgmask); break; diff --git a/samples/gpu/performance/CMakeLists.txt b/samples/gpu/performance/CMakeLists.txt index 2e8677d617..492b4c7900 100644 --- a/samples/gpu/performance/CMakeLists.txt +++ b/samples/gpu/performance/CMakeLists.txt @@ -10,8 +10,8 @@ endif() add_executable(${the_target} ${sources} ${headers}) target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_GPU_SAMPLES_REQUIRED_DEPS}) -if(HAVE_opencv_gpunonfree) - target_link_libraries(${the_target} opencv_gpunonfree opencv_nonfree) +if(HAVE_opencv_nonfree) + target_link_libraries(${the_target} opencv_nonfree) endif() set_target_properties(${the_target} PROPERTIES diff --git a/samples/gpu/performance/tests.cpp b/samples/gpu/performance/tests.cpp index 3c77d59e88..8af4722c38 100644 --- a/samples/gpu/performance/tests.cpp +++ b/samples/gpu/performance/tests.cpp @@ -8,8 +8,8 @@ #include "performance.h" #include "opencv2/opencv_modules.hpp" -#ifdef HAVE_OPENCV_GPUNONFREE -#include "opencv2/gpunonfree/gpunonfree.hpp" +#ifdef HAVE_OPENCV_NONFREE +#include "opencv2/nonfree/gpu.hpp" #include "opencv2/nonfree/nonfree.hpp" #endif @@ -271,7 +271,7 @@ TEST(meanShift) } } -#ifdef HAVE_OPENCV_GPUNONFREE +#ifdef HAVE_OPENCV_NONFREE TEST(SURF) { diff --git a/samples/gpu/surf_keypoint_matcher.cpp b/samples/gpu/surf_keypoint_matcher.cpp index 914867b9ec..f4c5e73f79 100644 --- a/samples/gpu/surf_keypoint_matcher.cpp +++ b/samples/gpu/surf_keypoint_matcher.cpp @@ -2,13 +2,13 @@ #include "opencv2/opencv_modules.hpp" -#ifdef HAVE_OPENCV_GPUNONFREE +#ifdef HAVE_OPENCV_NONFREE #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/gpu/gpu.hpp" -#include "opencv2/gpunonfree/gpunonfree.hpp" +#include "opencv2/nonfree/gpu.hpp" using namespace std; using namespace cv; @@ -91,7 +91,7 @@ int main(int argc, char* argv[]) int main() { - std::cerr << "OpenCV was built without gpunonfree module" << std::endl; + std::cerr << "OpenCV was built without nonfree module" << std::endl; return 0; } From b37d65ff2b1c441b7c121277d246cb0e759c040f Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 12 Mar 2013 11:33:46 +0400 Subject: [PATCH 0032/1333] Code refactoring was done. --- .../android/native-activity/jni/native.cpp | 89 +++++++++---------- 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/samples/android/native-activity/jni/native.cpp b/samples/android/native-activity/jni/native.cpp index 494ad66bbe..38dda06038 100644 --- a/samples/android/native-activity/jni/native.cpp +++ b/samples/android/native-activity/jni/native.cpp @@ -28,14 +28,14 @@ struct Engine cv::Ptr capture; }; -cv::Size calcOptimalResolution(const char* supported, int width, int height) +cv::Size calc_optimal_camera_resolution(const char* supported, int width, int height) { - int frameWidth = 0; - int frameHeight = 0; + int frame_width = 0; + int frame_height = 0; size_t prev_idx = 0; size_t idx = 0; - float minDiff = FLT_MAX; + float min_diff = FLT_MAX; do { @@ -52,11 +52,11 @@ cv::Size calcOptimalResolution(const char* supported, int width, int height) int h_diff = height - tmp_height; if ((h_diff >= 0) && (w_diff >= 0)) { - if ((h_diff <= minDiff) && (tmp_height <= 720)) + if ((h_diff <= min_diff) && (tmp_height <= 720)) { - frameWidth = tmp_width; - frameHeight = tmp_height; - minDiff = h_diff; + frame_width = tmp_width; + frame_height = tmp_height; + min_diff = h_diff; } } @@ -64,15 +64,13 @@ cv::Size calcOptimalResolution(const char* supported, int width, int height) } while(supported[idx-1] != '\0'); - return cv::Size(frameWidth, frameHeight); + return cv::Size(frame_width, frame_height); } static void engine_draw_frame(Engine* engine, const cv::Mat& frame) { if (engine->app->window == NULL) - { return; // No window. - } ANativeWindow_Buffer buffer; if (ANativeWindow_lock(engine->app->window, &buffer, NULL) < 0) @@ -83,10 +81,13 @@ static void engine_draw_frame(Engine* engine, const cv::Mat& frame) void* pixels = buffer.bits; - for (int yy = 0; yy < std::min(frame.rows, buffer.height); yy++) + int left_indent = (buffer.width-frame.cols)/2; + int top_indent = (buffer.height-frame.rows)/2; + + for (int yy = top_indent; yy < std::min(frame.rows+top_indent, buffer.height); yy++) { unsigned char* line = (unsigned char*)pixels; - memcpy(line, frame.ptr(yy), + memcpy(line+left_indent*4*sizeof(unsigned char), frame.ptr(yy), std::min(frame.cols, buffer.width)*4*sizeof(unsigned char)); // go to next line pixels = (int32_t*)pixels + buffer.stride; @@ -109,32 +110,36 @@ static void engine_handle_cmd(android_app* app, int32_t cmd) union {double prop; const char* name;} u; u.prop = engine->capture->get(CV_CAP_PROP_SUPPORTED_PREVIEW_SIZES_STRING); - cv::Size resolution; + int view_width = ANativeWindow_getWidth(app->window); + int view_height = ANativeWindow_getHeight(app->window); + + cv::Size camera_resolution; if (u.name) - resolution = calcOptimalResolution(u.name, - ANativeWindow_getWidth(app->window), - ANativeWindow_getHeight(app->window)); + camera_resolution = calc_optimal_camera_resolution(u.name, 640, 480); else { - LOGE("Cannot get supported camera resolutions"); - resolution = cv::Size(ANativeWindow_getWidth(app->window), + LOGE("Cannot get supported camera camera_resolutions"); + camera_resolution = cv::Size(ANativeWindow_getWidth(app->window), ANativeWindow_getHeight(app->window)); } - if ((resolution.width != 0) && (resolution.height != 0)) + if ((camera_resolution.width != 0) && (camera_resolution.height != 0)) { - engine->capture->set(CV_CAP_PROP_FRAME_WIDTH, resolution.width); - engine->capture->set(CV_CAP_PROP_FRAME_HEIGHT, resolution.height); + engine->capture->set(CV_CAP_PROP_FRAME_WIDTH, camera_resolution.width); + engine->capture->set(CV_CAP_PROP_FRAME_HEIGHT, camera_resolution.height); } - if (ANativeWindow_setBuffersGeometry(app->window, resolution.width, - resolution.height, WINDOW_FORMAT_RGBA_8888) < 0) + float scale = std::min((float)view_width/camera_resolution.width, + (float)view_height/camera_resolution.height); + + if (ANativeWindow_setBuffersGeometry(app->window, (int)(view_width/scale), + int(view_height/scale), WINDOW_FORMAT_RGBA_8888) < 0) { LOGE("Cannot set pixel format!"); return; } - LOGI("Camera initialized at resoution %dx%d", resolution.width, resolution.height); + LOGI("Camera initialized at resoution %dx%d", camera_resolution.width, camera_resolution.height); } break; case APP_CMD_TERM_WINDOW: @@ -158,9 +163,8 @@ void android_main(android_app* app) engine.app = app; float fps = 0; - cv::Mat drawingFrame; - bool firstFrame = true; - std::queue timeQueue; + cv::Mat drawing_frame; + std::queue time_queue; // loop waiting for stuff to do. while (1) @@ -189,34 +193,29 @@ void android_main(android_app* app) int64 then; int64 now = cv::getTickCount(); - timeQueue.push(now); + time_queue.push(now); // Capture frame from camera and draw it if (!engine.capture.empty()) { if (engine.capture->grab()) - { - engine.capture->retrieve(drawingFrame, CV_CAP_ANDROID_COLOR_FRAME_RGBA); -// if (firstFrame) -// { -// firstFrame = false; -// engine.capture->set(CV_CAP_PROP_AUTOGRAB, 1); -// } - } + engine.capture->retrieve(drawing_frame, CV_CAP_ANDROID_COLOR_FRAME_RGBA); + char buffer[256]; - sprintf(buffer, "Display performance: %dx%d @ %.3f", drawingFrame.cols, drawingFrame.rows, fps); - cv::putText(drawingFrame, std::string(buffer), cv::Point(8,64), cv::FONT_HERSHEY_COMPLEX_SMALL, 1, cv::Scalar(0,255,0,255)); - engine_draw_frame(&engine, drawingFrame); + sprintf(buffer, "Display performance: %dx%d @ %.3f", drawing_frame.cols, drawing_frame.rows, fps); + cv::putText(drawing_frame, std::string(buffer), cv::Point(8,64), + cv::FONT_HERSHEY_COMPLEX_SMALL, 1, cv::Scalar(0,255,0,255)); + engine_draw_frame(&engine, drawing_frame); } - if (timeQueue.size() >= 2) - then = timeQueue.front(); + if (time_queue.size() >= 2) + then = time_queue.front(); else then = 0; - if (timeQueue.size() >= 25) - timeQueue.pop(); + if (time_queue.size() >= 25) + time_queue.pop(); - fps = 1.f*timeQueue.size()*(float)cv::getTickFrequency()/(float)(now-then); + fps = time_queue.size() * (float)cv::getTickFrequency() / (now-then); } } From 238ea7f0f0ab920b4743c08d0b2b69875b71ddc7 Mon Sep 17 00:00:00 2001 From: "marina.kolpakova" Date: Tue, 19 Mar 2013 03:25:33 +0400 Subject: [PATCH 0033/1333] fix warnings under win. --- modules/softcascade/src/cuda_invoker.hpp | 8 ++++---- modules/softcascade/src/detector_cuda.cpp | 14 +++++++++----- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/modules/softcascade/src/cuda_invoker.hpp b/modules/softcascade/src/cuda_invoker.hpp index 9bdd45b883..9589b6ff5f 100644 --- a/modules/softcascade/src/cuda_invoker.hpp +++ b/modules/softcascade/src/cuda_invoker.hpp @@ -63,14 +63,14 @@ typedef unsigned short ushort; struct Octave { + float scale; + ushort2 size; ushort index; ushort stages; ushort shrinkage; - ushort2 size; - float scale; Octave(const ushort i, const ushort s, const ushort sh, const ushort2 sz, const float sc) - : index(i), stages(s), shrinkage(sh), size(sz), scale(sc) {} + : scale(sc), size(sz), index(i), stages(s), shrinkage(sh) {} }; struct Level @@ -111,7 +111,7 @@ struct Detection Detection(){} __device_inline__ Detection(int _x, int _y, uchar _w, uchar _h, float c) - : x(_x), y(_y), w(_w), h(_h), confidence(c), kind(0) {}; + : x(static_cast(_x)), y(static_cast(_y)), w(_w), h(_h), confidence(c), kind(0) {}; }; struct GK107PolicyX4 diff --git a/modules/softcascade/src/detector_cuda.cpp b/modules/softcascade/src/detector_cuda.cpp index bbadc9c54f..4d3db29986 100644 --- a/modules/softcascade/src/detector_cuda.cpp +++ b/modules/softcascade/src/detector_cuda.cpp @@ -80,8 +80,8 @@ namespace cv::softcascade::device::Level::Level(int idx, const Octave& oct, const float scale, const int w, const int h) : octave(idx), step(oct.stages), relScale(scale / oct.scale) { - workRect.x = cvRound(w / (float)oct.shrinkage); - workRect.y = cvRound(h / (float)oct.shrinkage); + workRect.x = (unsigned char)cvRound(w / (float)oct.shrinkage); + workRect.y = (unsigned char)cvRound(h / (float)oct.shrinkage); objSize.x = cv::saturate_cast(oct.size.x * relScale); objSize.y = cv::saturate_cast(oct.size.y * relScale); @@ -168,8 +168,8 @@ struct cv::softcascade::SCascade::Fields ushort nweaks = saturate_cast((int)fns[SC_OCT_WEAKS]); ushort2 size; - size.x = cvRound(origWidth * scale); - size.y = cvRound(origHeight * scale); + size.x = (unsigned short)cvRound(origWidth * scale); + size.y = (unsigned short)cvRound(origHeight * scale); device::Octave octave(octIndex, nweaks, shrinkage, size, scale); CV_Assert(octave.stages > 0); @@ -274,7 +274,7 @@ struct cv::softcascade::SCascade::Fields bool check(float mins,float maxs, int scales) { - bool updated = (minScale == mins) || (maxScale == maxs) || (totals = scales); + bool updated = ((minScale == mins) || (maxScale == maxs) || (totals = scales)); minScale = mins; maxScale = maxScale; @@ -463,6 +463,9 @@ public: DEFAULT_FRAME_HEIGHT = 480, HOG_LUV_BINS = 10 }; + +private: + cv::softcascade::SCascade::Fields& operator=( const cv::softcascade::SCascade::Fields & ); }; cv::softcascade::SCascade::SCascade(const double mins, const double maxs, const int sc, const int fl) @@ -619,6 +622,7 @@ private: cv::gpu::GpuMat bgr; cv::gpu::GpuMat gray; cv::gpu::GpuMat channels; + SeparablePreprocessor& operator=( const SeparablePreprocessor& ); }; } From 7d0c600504841cceb30ebcae40b38e84d45da05b Mon Sep 17 00:00:00 2001 From: AoD314 Date: Tue, 19 Mar 2013 16:53:00 +0400 Subject: [PATCH 0034/1333] improved test of webp --- modules/highgui/test/test_grfmt.cpp | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/modules/highgui/test/test_grfmt.cpp b/modules/highgui/test/test_grfmt.cpp index 57b48a290e..d050c46891 100644 --- a/modules/highgui/test/test_grfmt.cpp +++ b/modules/highgui/test/test_grfmt.cpp @@ -373,6 +373,8 @@ TEST(Highgui_WebP, encode_decode_lossless_webp) } } + remove(output.c_str()); + cv::Mat decode = cv::imdecode(buf, CV_LOAD_IMAGE_COLOR); ASSERT_FALSE(decode.empty()); EXPECT_TRUE(cv::norm(decode, img_webp, NORM_INF) == 0); @@ -389,7 +391,7 @@ TEST(Highgui_WebP, encode_decode_lossy_webp) cv::Mat img = cv::imread(input); ASSERT_FALSE(img.empty()); - for(int q = 100; q>=0; q-=5) + for(int q = 100; q>=0; q-=10) { std::vector params; params.push_back(CV_IMWRITE_WEBP_QUALITY); @@ -398,28 +400,9 @@ TEST(Highgui_WebP, encode_decode_lossy_webp) EXPECT_NO_THROW(cv::imwrite(output, img, params)); cv::Mat img_webp = cv::imread(output); + remove(output.c_str()); EXPECT_FALSE(img_webp.empty()); } } -TEST(Highgui_WebP, encode_big_image_webp) -{ - cvtest::TS& ts = *cvtest::TS::ptr(); - std::string input = std::string(ts.get_data_path()) + "/../cv/shared/lena.png"; - cv::Mat img = cv::imread(input); - cv::resize(img, img, cv::Size(8192, 8192)); - - std::vector params; - params.push_back(CV_IMWRITE_WEBP_QUALITY); - params.push_back(95); - - std::string output = cv::tempfile(".webp"); - EXPECT_NO_THROW(cv::imwrite(output, img, params)); - - img.create(10000, 10000, CV_8UC3); - cv::randu(img, 0, 256); - output = cv::tempfile(".webp"); - EXPECT_NO_THROW(cv::imwrite(output, img)); -} - #endif From a06af5ca250e31840a3e8b86f8d1de3500585137 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Tue, 19 Mar 2013 18:28:17 +0400 Subject: [PATCH 0035/1333] dramatic speedup of SVM::predict in the case of linear SVM --- modules/ml/include/opencv2/ml/ml.hpp | 2 + modules/ml/src/svm.cpp | 55 ++++++++++++++++++++++++++++ samples/cpp/letter_recog.cpp | 3 ++ 3 files changed, 60 insertions(+) diff --git a/modules/ml/include/opencv2/ml/ml.hpp b/modules/ml/include/opencv2/ml/ml.hpp index dc7a4048a5..6612d2ea13 100644 --- a/modules/ml/include/opencv2/ml/ml.hpp +++ b/modules/ml/include/opencv2/ml/ml.hpp @@ -534,6 +534,8 @@ protected: virtual void write_params( CvFileStorage* fs ) const; virtual void read_params( CvFileStorage* fs, CvFileNode* node ); + void optimize_linear_svm(); + CvSVMParams params; CvMat* class_labels; int var_all; diff --git a/modules/ml/src/svm.cpp b/modules/ml/src/svm.cpp index 9cbc46be84..3c970f201a 100644 --- a/modules/ml/src/svm.cpp +++ b/modules/ml/src/svm.cpp @@ -1517,6 +1517,7 @@ bool CvSVM::do_train( int svm_type, int sample_count, int var_count, const float } } + optimize_linear_svm(); ok = true; __END__; @@ -1524,6 +1525,59 @@ bool CvSVM::do_train( int svm_type, int sample_count, int var_count, const float return ok; } + +void CvSVM::optimize_linear_svm() +{ + // we optimize only linear SVM: compress all the support vectors into one. + if( params.kernel_type != LINEAR ) + return; + + int class_count = class_labels ? class_labels->cols : + params.svm_type == CvSVM::ONE_CLASS ? 1 : 0; + + int i, df_count = class_count > 1 ? class_count*(class_count-1)/2 : 1; + CvSVMDecisionFunc* df = decision_func; + + for( i = 0; i < df_count; i++ ) + { + int sv_count = df[i].sv_count; + if( sv_count != 1 ) + break; + } + + // if every decision functions uses a single support vector; + // it's already compressed. skip it then. + if( i == df_count ) + return; + + int var_count = get_var_count(); + int sample_size = (int)(var_count*sizeof(sv[0][0])); + float** new_sv = (float**)cvMemStorageAlloc(storage, df_count*sizeof(new_sv[0])); + + for( i = 0; i < df_count; i++ ) + { + new_sv[i] = (float*)cvMemStorageAlloc(storage, sample_size); + float* dst = new_sv[i]; + memset(dst, 0, sample_size); + int j, k, sv_count = df[i].sv_count; + for( j = 0; j < sv_count; j++ ) + { + const float* src = class_count > 1 ? sv[df[i].sv_index[j]] : sv[j]; + double a = df[i].alpha[j]; + for( k = 0; k < var_count; k++ ) + dst[k] = (float)(dst[k] + src[k]*a); + } + df[i].sv_count = 1; + df[i].alpha[0] = 1.; + if( class_count > 1 ) + df[i].sv_index[0] = i; + } + + sv = new_sv; + sv_total = df_count; +} + + bool CvSVM::train( const CvMat* _train_data, const CvMat* _responses, const CvMat* _var_idx, const CvMat* _sample_idx, CvSVMParams _params ) { @@ -2516,6 +2570,7 @@ void CvSVM::read( CvFileStorage* fs, CvFileNode* svm_node ) CV_NEXT_SEQ_ELEM( df_node->data.seq->elem_size, reader ); } + optimize_linear_svm(); create_kernel(); __END__; diff --git a/samples/cpp/letter_recog.cpp b/samples/cpp/letter_recog.cpp index 49a55fc62b..144dbe8361 100644 --- a/samples/cpp/letter_recog.cpp +++ b/samples/cpp/letter_recog.cpp @@ -691,7 +691,10 @@ int build_svm_classifier( char* data_filename ) CvMat *result = cvCreateMat(1, nsamples_all - ntrain_samples, CV_32FC1); printf("Classification (may take a few minutes)...\n"); + double t = (double)cvGetTickCount(); svm.predict(&sample, result); + t = (double)cvGetTickCount() - t; + printf("Prediction type: %gms\n", t/(cvGetTickFrequency()*1000.)); int true_resp = 0; for (int i = 0; i < nsamples_all - ntrain_samples; i++) From 24c614f686f1281ca21d796fb3f28b1e1d6acfe9 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Tue, 19 Mar 2013 18:41:38 +0400 Subject: [PATCH 0036/1333] added load/save feature for SVM classifier in letter_recog sample --- samples/cpp/letter_recog.cpp | 44 ++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/samples/cpp/letter_recog.cpp b/samples/cpp/letter_recog.cpp index 144dbe8361..74d5971caa 100644 --- a/samples/cpp/letter_recog.cpp +++ b/samples/cpp/letter_recog.cpp @@ -131,7 +131,7 @@ int build_rtrees_classifier( char* data_filename, printf( "Could not read the classifier %s\n", filename_to_load ); return -1; } - printf( "The classifier %s is loaded.\n", data_filename ); + printf( "The classifier %s is loaded.\n", filename_to_load ); } else { @@ -262,7 +262,7 @@ int build_boost_classifier( char* data_filename, printf( "Could not read the classifier %s\n", filename_to_load ); return -1; } - printf( "The classifier %s is loaded.\n", data_filename ); + printf( "The classifier %s is loaded.\n", filename_to_load ); } else { @@ -403,7 +403,7 @@ int build_mlp_classifier( char* data_filename, printf( "Could not read the classifier %s\n", filename_to_load ); return -1; } - printf( "The classifier %s is loaded.\n", data_filename ); + printf( "The classifier %s is loaded.\n", filename_to_load ); } else { @@ -639,10 +639,11 @@ int build_nbayes_classifier( char* data_filename ) } static -int build_svm_classifier( char* data_filename ) +int build_svm_classifier( char* data_filename, const char* filename_to_save, const char* filename_to_load ) { CvMat* data = 0; CvMat* responses = 0; + CvMat* train_resp = 0; CvMat train_data; int nsamples_all = 0, ntrain_samples = 0; int var_count; @@ -666,13 +667,29 @@ int build_svm_classifier( char* data_filename ) ntrain_samples = (int)(nsamples_all*0.1); var_count = data->cols; - // train classifier - printf( "Training the classifier (may take a few minutes)...\n"); - cvGetRows( data, &train_data, 0, ntrain_samples ); - CvMat* train_resp = cvCreateMat( ntrain_samples, 1, CV_32FC1); - for (int i = 0; i < ntrain_samples; i++) - train_resp->data.fl[i] = responses->data.fl[i]; - svm.train(&train_data, train_resp, 0, 0, param); + // Create or load Random Trees classifier + if( filename_to_load ) + { + // load classifier from the specified file + svm.load( filename_to_load ); + ntrain_samples = 0; + if( svm.get_var_count() == 0 ) + { + printf( "Could not read the classifier %s\n", filename_to_load ); + return -1; + } + printf( "The classifier %s is loaded.\n", filename_to_load ); + } + else + { + // train classifier + printf( "Training the classifier (may take a few minutes)...\n"); + cvGetRows( data, &train_data, 0, ntrain_samples ); + train_resp = cvCreateMat( ntrain_samples, 1, CV_32FC1); + for (int i = 0; i < ntrain_samples; i++) + train_resp->data.fl[i] = responses->data.fl[i]; + svm.train(&train_data, train_resp, 0, 0, param); + } // classification std::vector _sample(var_count * (nsamples_all - ntrain_samples)); @@ -705,6 +722,9 @@ int build_svm_classifier( char* data_filename ) printf("true_resp = %f%%\n", (float)true_resp / (nsamples_all - ntrain_samples) * 100); + if( filename_to_save ) + svm.save( filename_to_save ); + cvReleaseMat( &train_resp ); cvReleaseMat( &result ); cvReleaseMat( &data ); @@ -775,7 +795,7 @@ int main( int argc, char *argv[] ) method == 4 ? build_nbayes_classifier( data_filename) : method == 5 ? - build_svm_classifier( data_filename ): + build_svm_classifier( data_filename, filename_to_save, filename_to_load ): -1) < 0) { help(); From 08e55b7801fe85347d5011aed03881cecd0dbdcd Mon Sep 17 00:00:00 2001 From: Anatoly Baksheev Date: Tue, 19 Mar 2013 18:59:56 +0400 Subject: [PATCH 0037/1333] compilation for osx --- modules/core/include/opencv2/core/affine.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/core/include/opencv2/core/affine.hpp b/modules/core/include/opencv2/core/affine.hpp index ccbc5c81b3..7e97dc2213 100644 --- a/modules/core/include/opencv2/core/affine.hpp +++ b/modules/core/include/opencv2/core/affine.hpp @@ -255,7 +255,7 @@ template inline void cv::Affine3::translation(const Vec3& t) template inline typename cv::Affine3::Mat3 cv::Affine3::rotation() const { return linear(); } template inline typename cv::Affine3::Mat3 cv::Affine3::linear() const { - cv::Affine3::Mat3 R; + typename cv::Affine3::Mat3 R; R.val[0] = matrix.val[0]; R.val[1] = matrix.val[1]; R.val[2] = matrix.val[ 2]; R.val[3] = matrix.val[4]; R.val[4] = matrix.val[5]; R.val[5] = matrix.val[ 6]; R.val[6] = matrix.val[8]; R.val[7] = matrix.val[9]; R.val[8] = matrix.val[10]; From 3d594c70ffd29e9bd4d3c93f64fae888514678bc Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 19 Mar 2013 17:46:01 -0700 Subject: [PATCH 0038/1333] Multiple Windows RT fixes TIFF build was fixed; Direct Show back-end was enabled; More accurate guards implemented. --- 3rdparty/tbb/CMakeLists.txt | 37 ++++++++++++++++++++++-------- CMakeLists.txt | 7 ++++-- modules/highgui/CMakeLists.txt | 3 ++- modules/highgui/src/cap.cpp | 6 ++--- modules/highgui/src/cap_ffmpeg.cpp | 16 ++++++------- modules/highgui/src/precomp.hpp | 6 ++--- modules/highgui/src/window.cpp | 12 +++++----- 7 files changed, 54 insertions(+), 33 deletions(-) diff --git a/3rdparty/tbb/CMakeLists.txt b/3rdparty/tbb/CMakeLists.txt index 3c6ae98f45..6a5d2a8569 100644 --- a/3rdparty/tbb/CMakeLists.txt +++ b/3rdparty/tbb/CMakeLists.txt @@ -122,15 +122,32 @@ file(GLOB lib_srcs "${tbb_src_dir}/src/tbb/*.cpp") file(GLOB lib_hdrs "${tbb_src_dir}/src/tbb/*.h") list(APPEND lib_srcs "${tbb_src_dir}/src/rml/client/rml_tbb.cpp") -add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0 #required - -D__TBB_BUILD=1 #required - -D__TBB_SURVIVE_THREAD_SWITCH=0 #no cilk support - -DUSE_PTHREAD #required for Unix - -DTBB_USE_GCC_BUILTINS=1 #required for ARM GCC - -DTBB_USE_DEBUG=0 #just to be sure - -DTBB_NO_LEGACY=1 #don't need backward compatibility - -DDO_ITT_NOTIFY=0 #it seems that we don't need these notifications - ) +if (WIN32) +add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0 + -D__TBB_BUILD=1 + -D_UNICODE + -DUNICODE + -DWINAPI_FAMILY=WINAPI_FAMILY_APP + -DDO_ITT_NOTIFY=0 + ) # defines were copied from windows.cl.inc +set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} /APPCONTAINER") +else() + add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0 #required + -D__TBB_BUILD=1 #required + -D__TBB_SURVIVE_THREAD_SWITCH=0 #no cilk support + -DTBB_USE_DEBUG=0 #just to be sure + -DTBB_NO_LEGACY=1 #don't need backward compatibility + -DDO_ITT_NOTIFY=0 #it seems that we don't need these notifications + ) +endif() + +if (HAVE_LIBPTHREAD) + add_definitions(-DUSE_PTHREAD) #required for Unix +endif() + +if (CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-DTBB_USE_GCC_BUILTINS=1) #required for ARM GCC +endif() if(ANDROID_COMPILER_IS_CLANG) add_definitions(-D__TBB_GCC_BUILTIN_ATOMICS_PRESENT=1) @@ -145,7 +162,7 @@ endif() set(TBB_SOURCE_FILES ${lib_srcs} ${lib_hdrs}) -if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") +if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") AND NOT WIN32) if (NOT ANDROID) set(TBB_SOURCE_FILES ${TBB_SOURCE_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/arm_linux_stub.cpp") endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index e5868cf430..1f997ba17d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,10 @@ endif() project(OpenCV CXX C) -add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE) +if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") AND WIN32) + set(CMAKE_REQUIRED_DEFINITIONS -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE) + add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE) +endif() include(cmake/OpenCVUtils.cmake) @@ -171,7 +174,7 @@ OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 O OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR ANDROID OR APPLE ) OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR ANDROID OR APPLE ) OCV_OPTION(BUILD_OPENEXR "Build openexr from source" WIN32 OR ANDROID OR APPLE ) -OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID IF CMAKE_COMPILER_IS_GNUCXX ) +OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID ) # OpenCV installation options # =================================================== diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index 12cf2cbcd1..b8600e9b03 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -106,7 +106,8 @@ elseif(APPLE) endif() #if(WIN32) -# list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp src/cap_dshow.cpp) + list(APPEND highgui_srcs src/cap_dshow.cpp) + #list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp) #endif(WIN32) if(HAVE_XINE) diff --git a/modules/highgui/src/cap.cpp b/modules/highgui/src/cap.cpp index 237e3156ea..2c754cadcf 100644 --- a/modules/highgui/src/cap.cpp +++ b/modules/highgui/src/cap.cpp @@ -197,9 +197,9 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index) { #ifdef HAVE_VIDEOINPUT case CV_CAP_DSHOW: - // capture = cvCreateCameraCapture_DShow (index); - // if (capture) - // return capture; + capture = cvCreateCameraCapture_DShow (index); + if (capture) + return capture; return NULL; break; #endif diff --git a/modules/highgui/src/cap_ffmpeg.cpp b/modules/highgui/src/cap_ffmpeg.cpp index 640fc2da63..22caab8549 100644 --- a/modules/highgui/src/cap_ffmpeg.cpp +++ b/modules/highgui/src/cap_ffmpeg.cpp @@ -209,11 +209,11 @@ CvCapture* cvCreateFileCapture_FFMPEG_proxy(const char * filename) if( result->open( filename )) return result; delete result; -//#if defined WIN32 || defined _WIN32 -// return cvCreateFileCapture_VFW(filename); -//#else +#if (defined WIN32 || defined _WIN32) && !defined _M_ARM + return cvCreateFileCapture_VFW(filename); +#else return 0; -//#endif +#endif } class CvVideoWriter_FFMPEG_proxy : @@ -263,9 +263,9 @@ CvVideoWriter* cvCreateVideoWriter_FFMPEG_proxy( const char* filename, int fourc if( result->open( filename, fourcc, fps, frameSize, isColor != 0 )) return result; delete result; -// #if defined WIN32 || defined _WIN32 -// return cvCreateVideoWriter_VFW(filename, fourcc, fps, frameSize, isColor); -// #else +#if (defined WIN32 || defined _WIN32) && !defined _M_ARM + return cvCreateVideoWriter_VFW(filename, fourcc, fps, frameSize, isColor); + #else return 0; -//#endif +#endif } diff --git a/modules/highgui/src/precomp.hpp b/modules/highgui/src/precomp.hpp index 5790bf67ad..64efbb90dc 100644 --- a/modules/highgui/src/precomp.hpp +++ b/modules/highgui/src/precomp.hpp @@ -103,12 +103,12 @@ struct CvVideoWriter virtual bool writeFrame(const IplImage*) { return false; } }; -//#if defined WIN32 || defined _WIN32 -//#define HAVE_VFW 1 +#if (defined WIN32 || defined _WIN32) && !defined _M_ARM +#define HAVE_VFW 1 /* uncomment to enable CMUCamera1394 fireware camera module */ //#define HAVE_CMU1394 1 -//#endif +#endif CvCapture * cvCreateCameraCapture_V4L( int index ); diff --git a/modules/highgui/src/window.cpp b/modules/highgui/src/window.cpp index a26bc447a2..12816f3cb5 100644 --- a/modules/highgui/src/window.cpp +++ b/modules/highgui/src/window.cpp @@ -57,7 +57,7 @@ CV_IMPL void cvSetWindowProperty(const char* name, int prop_id, double prop_valu #if defined (HAVE_QT) cvSetModeWindow_QT(name,prop_value); - #elif defined (HAVE_WIN32_UI) + #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM cvSetModeWindow_W32(name,prop_value); #elif defined (HAVE_GTK) cvSetModeWindow_GTK(name,prop_value); @@ -96,7 +96,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id) #if defined (HAVE_QT) return cvGetModeWindow_QT(name); - #elif defined (HAVE_WIN32_UI) + #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM return cvGetModeWindow_W32(name); #elif defined (HAVE_GTK) return cvGetModeWindow_GTK(name); @@ -113,7 +113,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id) #if defined (HAVE_QT) return cvGetPropWindow_QT(name); - #elif defined (HAVE_WIN32_UI) + #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM return cvGetPropWindowAutoSize_W32(name); #elif defined (HAVE_GTK) return cvGetPropWindowAutoSize_GTK(name); @@ -126,7 +126,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id) #if defined (HAVE_QT) return cvGetRatioWindow_QT(name); - #elif defined (HAVE_WIN32_UI) + #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM return cvGetRatioWindow_W32(name); #elif defined (HAVE_GTK) return cvGetRatioWindow_GTK(name); @@ -139,7 +139,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id) #if defined (HAVE_QT) return cvGetOpenGlProp_QT(name); - #elif defined (HAVE_WIN32_UI) + #elif (defined WIN32 || defined _WIN32) && !defined _M_ARM return cvGetOpenGlProp_W32(name); #elif defined (HAVE_GTK) return cvGetOpenGlProp_GTK(name); @@ -450,7 +450,7 @@ int cv::createButton(const string&, ButtonCallback, void*, int , bool ) #endif -#if defined (HAVE_WIN32_UI) // see window_w32.cpp +#if (defined WIN32 || defined _WIN32) && !defined _M_ARM // see window_w32.cpp #elif defined (HAVE_GTK) // see window_gtk.cpp #elif defined (HAVE_COCOA) // see window_carbon.cpp #elif defined (HAVE_CARBON) From 9a86245242f2dddc6149bd954bae1f0e307fa8d7 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Wed, 20 Mar 2013 11:58:19 +0400 Subject: [PATCH 0039/1333] added test for bug #1448 and hopefully fixes the bug #2898 --- modules/core/src/lapack.cpp | 8 ++++---- modules/core/test/test_math.cpp | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/modules/core/src/lapack.cpp b/modules/core/src/lapack.cpp index 62206fac4c..b20273f6eb 100644 --- a/modules/core/src/lapack.cpp +++ b/modules/core/src/lapack.cpp @@ -531,12 +531,12 @@ template<> inline int VBLAS::givensx(double* a, double* b, int n, double #endif template void -JacobiSVDImpl_(_Tp* At, size_t astep, _Tp* _W, _Tp* Vt, size_t vstep, int m, int n, int n1, double minval) +JacobiSVDImpl_(_Tp* At, size_t astep, _Tp* _W, _Tp* Vt, size_t vstep, + int m, int n, int n1, double minval, _Tp eps) { VBLAS<_Tp> vblas; AutoBuffer Wbuf(n); double* W = Wbuf; - _Tp eps = DBL_EPSILON*10; int i, j, k, iter, max_iter = std::max(m, 30); _Tp c, s; double sd; @@ -729,12 +729,12 @@ JacobiSVDImpl_(_Tp* At, size_t astep, _Tp* _W, _Tp* Vt, size_t vstep, int m, int static void JacobiSVD(float* At, size_t astep, float* W, float* Vt, size_t vstep, int m, int n, int n1=-1) { - JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, FLT_MIN); + JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, FLT_MIN, FLT_EPSILON*2); } static void JacobiSVD(double* At, size_t astep, double* W, double* Vt, size_t vstep, int m, int n, int n1=-1) { - JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, DBL_MIN); + JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, DBL_MIN, DBL_EPSILON*10); } /* y[0:m,0:n] += diag(a[0:1,0:m]) * x[0:m,0:n] */ diff --git a/modules/core/test/test_math.cpp b/modules/core/test/test_math.cpp index 1203961311..c3d88bda6b 100644 --- a/modules/core/test/test_math.cpp +++ b/modules/core/test/test_math.cpp @@ -2487,6 +2487,35 @@ TEST(Core_SVBkSb, accuracy) { Core_SVBkSbTest test; test.safe_run(); } TEST(Core_Trace, accuracy) { Core_TraceTest test; test.safe_run(); } TEST(Core_SolvePoly, accuracy) { Core_SolvePolyTest test; test.safe_run(); } + +TEST(Core_SVD, flt) +{ + float a[] = { + 1.23377746e+011f, -7.05490125e+010f, -4.18380882e+010f, -11693456.f, + -39091328.f, 77492224.f, -7.05490125e+010f, 2.36211143e+011f, + -3.51093473e+010f, 70773408.f, -4.83386156e+005f, -129560368.f, + -4.18380882e+010f, -3.51093473e+010f, 9.25311222e+010f, -49052424.f, + 43922752.f, 12176842.f, -11693456.f, 70773408.f, -49052424.f, 8.40836094e+004f, + 5.17475293e+003f, -1.16122949e+004f, -39091328.f, -4.83386156e+005f, + 43922752.f, 5.17475293e+003f, 5.16047969e+004f, 5.68887842e+003f, 77492224.f, + -129560368.f, 12176842.f, -1.16122949e+004f, 5.68887842e+003f, + 1.28060578e+005f + }; + + float b[] = { + 283751232.f, 2.61604198e+009f, -745033216.f, 2.31125625e+005f, + -4.52429188e+005f, -1.37596525e+006f + }; + + Mat A(6, 6, CV_32F, a); + Mat B(6, 1, CV_32F, b); + Mat X, B1; + solve(A, B, X, DECOMP_SVD); + B1 = A*X; + EXPECT_LE(norm(B1, B, NORM_L2 + NORM_RELATIVE), FLT_EPSILON*10); +} + + // TODO: eigenvv, invsqrt, cbrt, fastarctan, (round, floor, ceil(?)), From 94b12eae92aeac48eed4fedef1a3e4b59ccebb7a Mon Sep 17 00:00:00 2001 From: Bo Li Date: Wed, 20 Mar 2013 09:53:44 +0100 Subject: [PATCH 0040/1333] update five-point license --- modules/calib3d/src/five-point.cpp | 71 +++++++++++++----------------- 1 file changed, 30 insertions(+), 41 deletions(-) diff --git a/modules/calib3d/src/five-point.cpp b/modules/calib3d/src/five-point.cpp index bdea34c08e..e69bb11ee0 100644 --- a/modules/calib3d/src/five-point.cpp +++ b/modules/calib3d/src/five-point.cpp @@ -1,44 +1,33 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ +/* This is a 5-point algorithm contributed to OpenCV by the author, Bo Li. + It implements the 5-point algorithm solver from Nister's paper: + Nister, An efficient solution to the five-point relative pose problem, PAMI, 2004. +*/ + +/* Copyright (c) 2013, Bo Li (prclibo@gmail.com), ETH Zurich + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ #include "precomp.hpp" #include From 89356ff16d1f4c8c88d8bf9e3223f429196ae607 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Thu, 14 Mar 2013 20:10:54 +0400 Subject: [PATCH 0041/1333] Move non-CV functionality from core.hpp to separate utility.hpp header --- apps/sft/include/sft/common.hpp | 1 + include/opencv/cv.h | 1 + modules/calib3d/src/precomp.hpp | 5 +- modules/calib3d/test/test_precomp.hpp | 2 +- .../contrib/src/detection_based_tracker.cpp | 1 + modules/contrib/src/precomp.hpp | 2 + modules/core/include/opencv2/core.hpp | 297 +----------- modules/core/include/opencv2/core/core_c.h | 12 - modules/core/include/opencv2/core/cvdef.h | 17 +- modules/core/include/opencv2/core/mat.hpp | 5 - .../core/include/opencv2/core/operations.hpp | 108 ----- modules/core/include/opencv2/core/utility.hpp | 459 ++++++++++++++++++ modules/core/src/precomp.hpp | 1 + modules/core/test/test_precomp.hpp | 2 +- modules/features2d/src/precomp.hpp | 2 + modules/flann/src/precomp.hpp | 1 + modules/flann/test/test_precomp.hpp | 1 - modules/highgui/src/precomp.hpp | 2 + modules/highgui/test/test_precomp.hpp | 2 +- modules/imgproc/src/precomp.hpp | 2 + modules/imgproc/test/test_precomp.hpp | 2 +- modules/java/generator/config/core.filelist | 1 + modules/java/generator/src/cpp/common.h | 2 + .../java/generator/src/cpp/core_manual.cpp | 2 + modules/legacy/src/precomp.hpp | 7 +- modules/legacy/test/test_precomp.hpp | 2 +- modules/ml/src/precomp.hpp | 1 + modules/ml/test/test_precomp.hpp | 4 +- modules/nonfree/src/precomp.hpp | 2 + modules/nonfree/test/test_precomp.hpp | 2 +- modules/objdetect/src/precomp.hpp | 2 + modules/ocl/perf/precomp.hpp | 4 +- modules/ocl/src/precomp.hpp | 1 + modules/ocl/test/precomp.hpp | 6 +- modules/photo/test/test_precomp.hpp | 2 +- modules/python/CMakeLists.txt | 1 + modules/python/src2/cv2.cpp | 1 + modules/ts/include/opencv2/ts.hpp | 17 +- modules/ts/src/precomp.hpp | 5 +- modules/ts/src/ts.cpp | 16 - modules/video/perf/perf_precomp.hpp | 2 +- modules/video/src/precomp.hpp | 5 +- modules/video/test/test_precomp.hpp | 2 +- samples/c/bgfg_codebook.cpp | 7 +- samples/c/find_obj_ferns.cpp | 12 +- samples/c/mser_sample.cpp | 7 +- samples/cpp/bgfg_gmg.cpp | 1 + samples/cpp/bgfg_segm.cpp | 7 +- samples/cpp/brief_match_test.cpp | 11 +- samples/cpp/build3dmodel.cpp | 11 +- samples/cpp/calibration.cpp | 9 +- samples/cpp/camshiftdemo.cpp | 5 +- samples/cpp/chamfer.cpp | 7 +- samples/cpp/connected_components.cpp | 5 +- samples/cpp/demhist.cpp | 5 +- .../cpp/detection_based_tracker_sample.cpp | 9 +- ...detector_descriptor_matcher_evaluation.cpp | 7 +- samples/cpp/dft.cpp | 7 +- samples/cpp/distrans.cpp | 5 +- samples/cpp/edge.cpp | 5 +- samples/cpp/facerec_demo.cpp | 7 +- samples/cpp/freak_demo.cpp | 11 +- samples/cpp/image_alignment.cpp | 8 +- samples/cpp/linemod.cpp | 9 +- samples/cpp/opencv_version.cpp | 2 +- samples/cpp/peopledetect.cpp | 1 + samples/cpp/select3dobj.cpp | 9 +- samples/cpp/simpleflow_demo.cpp | 5 +- samples/cpp/stereo_match.cpp | 1 + samples/cpp/stitching_detailed.cpp | 3 +- .../camera_calibration/camera_calibration.cpp | 9 +- .../how_to_scan_images/how_to_scan_images.cpp | 5 +- .../mat_mask_operations.cpp | 7 +- .../gpu-basics-similarity.cpp | 9 +- samples/cpp/tvl1_optical_flow.cpp | 5 +- samples/cpp/videostab.cpp | 1 + samples/cpp/watershed.cpp | 5 +- samples/gpu/bgfg_segm.cpp | 7 +- samples/gpu/brox_optical_flow.cpp | 8 +- samples/gpu/farneback_optical_flow.cpp | 9 +- samples/gpu/generalized_hough.cpp | 11 +- samples/gpu/hog.cpp | 5 +- samples/gpu/houghlines.cpp | 9 +- samples/gpu/optical_flow.cpp | 7 +- samples/gpu/performance/performance.h | 4 +- samples/gpu/pyrlk_optical_flow.cpp | 12 +- samples/gpu/softcascade.cpp | 1 + samples/gpu/stereo_match.cpp | 5 +- samples/ocl/hog.cpp | 5 +- samples/ocl/performance.cpp | 18 +- 90 files changed, 709 insertions(+), 621 deletions(-) create mode 100644 modules/core/include/opencv2/core/utility.hpp diff --git a/apps/sft/include/sft/common.hpp b/apps/sft/include/sft/common.hpp index 93439a48ed..7e5c0ff265 100644 --- a/apps/sft/include/sft/common.hpp +++ b/apps/sft/include/sft/common.hpp @@ -44,6 +44,7 @@ #define __SFT_COMMON_HPP__ #include +#include #include namespace cv {using namespace softcascade;} diff --git a/include/opencv/cv.h b/include/opencv/cv.h index c878e68818..4b98ff3fbd 100644 --- a/include/opencv/cv.h +++ b/include/opencv/cv.h @@ -62,6 +62,7 @@ #include "opencv2/core/core_c.h" #include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" #include "opencv2/imgproc/imgproc_c.h" #include "opencv2/imgproc.hpp" #include "opencv2/video.hpp" diff --git a/modules/calib3d/src/precomp.hpp b/modules/calib3d/src/precomp.hpp index 5951ea1fd2..7a7140d593 100644 --- a/modules/calib3d/src/precomp.hpp +++ b/modules/calib3d/src/precomp.hpp @@ -49,8 +49,11 @@ #include "opencv2/calib3d.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" -#include "opencv2/core/internal.hpp" #include "opencv2/features2d.hpp" + +#include "opencv2/core/utility.hpp" +#include "opencv2/core/internal.hpp" + #include #ifdef HAVE_TEGRA_OPTIMIZATION diff --git a/modules/calib3d/test/test_precomp.hpp b/modules/calib3d/test/test_precomp.hpp index fee6551f0c..de30e80290 100644 --- a/modules/calib3d/test/test_precomp.hpp +++ b/modules/calib3d/test/test_precomp.hpp @@ -9,12 +9,12 @@ #ifndef __OPENCV_TEST_PRECOMP_HPP__ #define __OPENCV_TEST_PRECOMP_HPP__ +#include #include "opencv2/ts.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" #include "opencv2/calib3d.hpp" #include "opencv2/highgui.hpp" -#include namespace cvtest { diff --git a/modules/contrib/src/detection_based_tracker.cpp b/modules/contrib/src/detection_based_tracker.cpp index 117a6e916a..49d09d1bfd 100644 --- a/modules/contrib/src/detection_based_tracker.cpp +++ b/modules/contrib/src/detection_based_tracker.cpp @@ -1,5 +1,6 @@ #if defined(__linux__) || defined(LINUX) || defined(__APPLE__) || defined(ANDROID) #include "opencv2/contrib/detection_based_tracker.hpp" +#include "opencv2/core/utility.hpp" #include diff --git a/modules/contrib/src/precomp.hpp b/modules/contrib/src/precomp.hpp index 7819148ddc..59c76cf166 100644 --- a/modules/contrib/src/precomp.hpp +++ b/modules/contrib/src/precomp.hpp @@ -52,6 +52,8 @@ #include "opencv2/objdetect.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" + +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" namespace cv diff --git a/modules/core/include/opencv2/core.hpp b/modules/core/include/opencv2/core.hpp index 5e204e8411..337ddb059e 100644 --- a/modules/core/include/opencv2/core.hpp +++ b/modules/core/include/opencv2/core.hpp @@ -101,13 +101,6 @@ template class CV_EXPORTS MatIterator_; template class CV_EXPORTS MatConstIterator_; template class CV_EXPORTS MatCommaInitializer_; -template class CV_EXPORTS AutoBuffer; - -CV_EXPORTS std::string format( const char* fmt, ... ); -CV_EXPORTS std::string tempfile( const char* suffix CV_DEFAULT(0)); - -CV_EXPORTS void glob(std::string pattern, std::vector& result, bool recursive = false); - // matrix decomposition types enum { DECOMP_LU=0, DECOMP_SVD=1, DECOMP_EIG=2, DECOMP_CHOLESKY=3, DECOMP_QR=4, DECOMP_NORMAL=16 }; enum { NORM_INF=1, NORM_L1=2, NORM_L2=4, NORM_L2SQR=5, NORM_HAMMING=6, NORM_HAMMING2=7, NORM_TYPE_MASK=7, NORM_RELATIVE=8, NORM_MINMAX=32 }; @@ -162,34 +155,6 @@ public: */ CV_EXPORTS void error( const Exception& exc ); -//! Sets/resets the break-on-error mode. - -/*! - When the break-on-error mode is set, the default error handler - issues a hardware exception, which can make debugging more convenient. - - \return the previous state - */ -CV_EXPORTS bool setBreakOnError(bool flag); - -typedef int (CV_CDECL *ErrorCallback)( int status, const char* func_name, - const char* err_msg, const char* file_name, - int line, void* userdata ); - -//! Sets the new error handler and the optional user data. - -/*! - The function sets the new error handler, called from cv::error(). - - \param errCallback the new error handler. If NULL, the default error handler is used. - \param userdata the optional user data pointer, passed to the callback. - \param prevUserdata the optional output parameter where the previous user data pointer is stored - - \return the previous error handler -*/ -CV_EXPORTS ErrorCallback redirectError( ErrorCallback errCallback, - void* userdata=0, void** prevUserdata=0); - #ifdef __GNUC__ #define CV_Error( code, msg ) cv::error( cv::Exception(code, msg, __func__, __FILE__, __LINE__) ) #define CV_Error_( code, args ) cv::error( cv::Exception(code, cv::format args, __func__, __FILE__, __LINE__) ) @@ -206,70 +171,6 @@ CV_EXPORTS ErrorCallback redirectError( ErrorCallback errCallback, #define CV_DbgAssert(expr) #endif -CV_EXPORTS void setNumThreads(int nthreads); -CV_EXPORTS int getNumThreads(); -CV_EXPORTS int getThreadNum(); - -CV_EXPORTS_W const std::string& getBuildInformation(); - -//! Returns the number of ticks. - -/*! - The function returns the number of ticks since the certain event (e.g. when the machine was turned on). - It can be used to initialize cv::RNG or to measure a function execution time by reading the tick count - before and after the function call. The granularity of ticks depends on the hardware and OS used. Use - cv::getTickFrequency() to convert ticks to seconds. -*/ -CV_EXPORTS_W int64 getTickCount(); - -/*! - Returns the number of ticks per seconds. - - The function returns the number of ticks (as returned by cv::getTickCount()) per second. - The following code computes the execution time in milliseconds: - - \code - double exec_time = (double)getTickCount(); - // do something ... - exec_time = ((double)getTickCount() - exec_time)*1000./getTickFrequency(); - \endcode -*/ -CV_EXPORTS_W double getTickFrequency(); - -/*! - Returns the number of CPU ticks. - - On platforms where the feature is available, the function returns the number of CPU ticks - since the certain event (normally, the system power-on moment). Using this function - one can accurately measure the execution time of very small code fragments, - for which cv::getTickCount() granularity is not enough. -*/ -CV_EXPORTS_W int64 getCPUTickCount(); - -/*! - Returns SSE etc. support status - - The function returns true if certain hardware features are available. - Currently, the following features are recognized: - - CV_CPU_MMX - MMX - - CV_CPU_SSE - SSE - - CV_CPU_SSE2 - SSE 2 - - CV_CPU_SSE3 - SSE 3 - - CV_CPU_SSSE3 - SSSE 3 - - CV_CPU_SSE4_1 - SSE 4.1 - - CV_CPU_SSE4_2 - SSE 4.2 - - CV_CPU_POPCNT - POPCOUNT - - CV_CPU_AVX - AVX - - \note {Note that the function output is not static. Once you called cv::useOptimized(false), - most of the hardware acceleration is disabled and thus the function will returns false, - until you call cv::useOptimized(true)} -*/ -CV_EXPORTS_W bool checkHardwareSupport(int feature); - -//! returns the number of CPUs (including hyper-threading) -CV_EXPORTS_W int getNumberOfCPUs(); - /*! Allocates memory buffer @@ -300,45 +201,6 @@ template static inline void deallocate(_Tp* ptr, size_t) delete[] ptr; } -/*! - Aligns pointer by the certain number of bytes - - This small inline function aligns the pointer by the certian number of bytes by shifting - it forward by 0 or a positive offset. -*/ -template static inline _Tp* alignPtr(_Tp* ptr, int n=(int)sizeof(_Tp)) -{ - return (_Tp*)(((size_t)ptr + n-1) & -n); -} - -/*! - Aligns buffer size by the certain number of bytes - - This small inline function aligns a buffer size by the certian number of bytes by enlarging it. -*/ -static inline size_t alignSize(size_t sz, int n) -{ - return (sz + n-1) & -n; -} - -/*! - Turns on/off available optimization - - The function turns on or off the optimized code in OpenCV. Some optimization can not be enabled - or disabled, but, for example, most of SSE code in OpenCV can be temporarily turned on or off this way. - - \note{Since optimization may imply using special data structures, it may be unsafe - to call this function anywhere in the code. Instead, call it somewhere at the top level.} -*/ -CV_EXPORTS_W void setUseOptimized(bool onoff); - -/*! - Returns the current optimization status - - The function returns the current optimization status, which is controlled by cv::setUseOptimized(). -*/ -CV_EXPORTS_W bool useOptimized(); - /*! The STL-compilant memory Allocator based on cv::fastMalloc() and cv::fastFree() */ @@ -1421,8 +1283,6 @@ CV_EXPORTS OutputArray noArray(); enum { MAGIC_MASK=0xFFFF0000, TYPE_MASK=0x00000FFF, DEPTH_MASK=7 }; -static inline size_t getElemSize(int type) { return CV_ELEM_SIZE(type); } - /*! Custom array allocator @@ -2084,10 +1944,6 @@ CV_EXPORTS BinaryFunc getCopyMaskFunc(size_t esz); //! swaps two matrices CV_EXPORTS void swap(Mat& a, Mat& b); -//! converts array (CvMat or IplImage) to cv::Mat -CV_EXPORTS Mat cvarrToMat(const CvArr* arr, bool copyData=false, - bool allowND=true, int coiMode=0, - AutoBuffer* buf=0); //! extracts Channel of Interest from CvMat or IplImage and makes cv::Mat out of it. CV_EXPORTS void extractImageCOI(const CvArr* arr, OutputArray coiimg, int coi=-1); //! inserts single-channel cv::Mat into a multi-channel CvMat or IplImage @@ -3088,73 +2944,6 @@ public: Vec<_Tp, m> operator *() const; }; -/*! - Automatically Allocated Buffer Class - - The class is used for temporary buffers in functions and methods. - If a temporary buffer is usually small (a few K's of memory), - but its size depends on the parameters, it makes sense to create a small - fixed-size array on stack and use it if it's large enough. If the required buffer size - is larger than the fixed size, another buffer of sufficient size is allocated dynamically - and released after the processing. Therefore, in typical cases, when the buffer size is small, - there is no overhead associated with malloc()/free(). - At the same time, there is no limit on the size of processed data. - - This is what AutoBuffer does. The template takes 2 parameters - type of the buffer elements and - the number of stack-allocated elements. Here is how the class is used: - - \code - void my_func(const cv::Mat& m) - { - cv::AutoBuffer buf; // create automatic buffer containing 1000 floats - - buf.allocate(m.rows); // if m.rows <= 1000, the pre-allocated buffer is used, - // otherwise the buffer of "m.rows" floats will be allocated - // dynamically and deallocated in cv::AutoBuffer destructor - ... - } - \endcode -*/ -template class CV_EXPORTS AutoBuffer -{ -public: - typedef _Tp value_type; - - //! the default contructor - AutoBuffer(); - //! constructor taking the real buffer size - AutoBuffer(size_t _size); - - //! the copy constructor - AutoBuffer(const AutoBuffer<_Tp, fixed_size>& buf); - //! the assignment operator - AutoBuffer<_Tp, fixed_size>& operator = (const AutoBuffer<_Tp, fixed_size>& buf); - - //! destructor. calls deallocate() - ~AutoBuffer(); - - //! allocates the new buffer of size _size. if the _size is small enough, stack-allocated buffer is used - void allocate(size_t _size); - //! deallocates the buffer if it was dynamically allocated - void deallocate(); - //! resizes the buffer and preserves the content - void resize(size_t _size); - //! returns the current buffer size - size_t size() const; - //! returns pointer to the real buffer, stack-allocated or head-allocated - operator _Tp* (); - //! returns read-only pointer to the real buffer, stack-allocated or head-allocated - operator const _Tp* () const; - -protected: - //! pointer to the real buffer, can point to buf if the buffer is small enough - _Tp* ptr; - //! size of the real buffer - size_t sz; - //! pre-allocated buffer - _Tp buf[fixed_size]; -}; - /////////////////////////// multi-dimensional dense matrix ////////////////////////// /*! @@ -4628,91 +4417,7 @@ template<> struct ParamType enum { type = Param::UCHAR }; }; -// The CommandLineParser class is designed for command line arguments parsing - -class CV_EXPORTS CommandLineParser -{ - public: - CommandLineParser(int argc, const char* const argv[], const std::string& keys); - CommandLineParser(const CommandLineParser& parser); - CommandLineParser& operator = (const CommandLineParser& parser); - - std::string getPathToApplication() const; - - template - T get(const std::string& name, bool space_delete = true) const - { - T val = T(); - getByName(name, space_delete, ParamType::type, (void*)&val); - return val; - } - - template - T get(int index, bool space_delete = true) const - { - T val = T(); - getByIndex(index, space_delete, ParamType::type, (void*)&val); - return val; - } - - bool has(const std::string& name) const; - - bool check() const; - - void about(const std::string& message); - - void printMessage() const; - void printErrors() const; - -protected: - void getByName(const std::string& name, bool space_delete, int type, void* dst) const; - void getByIndex(int index, bool space_delete, int type, void* dst) const; - - struct Impl; - Impl* impl; -}; - -/////////////////////////////// Parallel Primitives ////////////////////////////////// - -// a base body class -class CV_EXPORTS ParallelLoopBody -{ -public: - virtual ~ParallelLoopBody(); - virtual void operator() (const Range& range) const = 0; -}; - -CV_EXPORTS void parallel_for_(const Range& range, const ParallelLoopBody& body, double nstripes=-1.); - -/////////////////////////// Synchronization Primitives /////////////////////////////// - -class CV_EXPORTS Mutex -{ -public: - Mutex(); - ~Mutex(); - Mutex(const Mutex& m); - Mutex& operator = (const Mutex& m); - - void lock(); - bool trylock(); - void unlock(); - - struct Impl; -protected: - Impl* impl; -}; - -class CV_EXPORTS AutoLock -{ -public: - AutoLock(Mutex& m) : mutex(&m) { mutex->lock(); } - ~AutoLock() { mutex->unlock(); } -protected: - Mutex* mutex; -}; - -} +} //namespace cv #endif // __cplusplus diff --git a/modules/core/include/opencv2/core/core_c.h b/modules/core/include/opencv2/core/core_c.h index df763ab9a4..4c4b390467 100644 --- a/modules/core/include/opencv2/core/core_c.h +++ b/modules/core/include/opencv2/core/core_c.h @@ -1696,18 +1696,6 @@ CVAPI(double) cvGetTickFrequency( void ); /*********************************** CPU capabilities ***********************************/ -#define CV_CPU_NONE 0 -#define CV_CPU_MMX 1 -#define CV_CPU_SSE 2 -#define CV_CPU_SSE2 3 -#define CV_CPU_SSE3 4 -#define CV_CPU_SSSE3 5 -#define CV_CPU_SSE4_1 6 -#define CV_CPU_SSE4_2 7 -#define CV_CPU_POPCNT 8 -#define CV_CPU_AVX 10 -#define CV_HARDWARE_MAX_FEATURE 255 - CVAPI(int) cvCheckHardwareSupport(int feature); /*********************************** Multi-Threading ************************************/ diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h index 06b2b5f255..903332e6d0 100644 --- a/modules/core/include/opencv2/core/cvdef.h +++ b/modules/core/include/opencv2/core/cvdef.h @@ -97,7 +97,20 @@ # endif #endif -/* intrinsics support */ +/* CPU features and intrinsics support */ +#define CV_CPU_NONE 0 +#define CV_CPU_MMX 1 +#define CV_CPU_SSE 2 +#define CV_CPU_SSE2 3 +#define CV_CPU_SSE3 4 +#define CV_CPU_SSSE3 5 +#define CV_CPU_SSE4_1 6 +#define CV_CPU_SSE4_2 7 +#define CV_CPU_POPCNT 8 +#define CV_CPU_AVX 10 +#define CV_CPU_NEON 11 +#define CV_HARDWARE_MAX_FEATURE 255 + #if defined __SSE2__ || defined _M_X64 || (defined _M_IX86_FP && _M_IX86_FP >= 2) # include "emmintrin.h" # define CV_SSE 1 @@ -421,4 +434,4 @@ CV_INLINE int cvIsInf( double value ) CV_INLINE CV_XADD(int* addr, int delta) { int tmp = *addr; *addr += delta; return tmp; } #endif -#endif // __OPENCV_CORE_CVDEF_H__ \ No newline at end of file +#endif // __OPENCV_CORE_CVDEF_H__ diff --git a/modules/core/include/opencv2/core/mat.hpp b/modules/core/include/opencv2/core/mat.hpp index 8e7890568c..6b0c47943f 100644 --- a/modules/core/include/opencv2/core/mat.hpp +++ b/modules/core/include/opencv2/core/mat.hpp @@ -748,11 +748,6 @@ inline Mat::MStep& Mat::MStep::operator = (size_t s) return *this; } -static inline Mat cvarrToMatND(const CvArr* arr, bool copyData=false, int coiMode=0) -{ - return cvarrToMat(arr, copyData, true, coiMode); -} - ///////////////////////////////////////////// SVD ////////////////////////////////////////////////////// inline SVD::SVD() {} diff --git a/modules/core/include/opencv2/core/operations.hpp b/modules/core/include/opencv2/core/operations.hpp index c259b892bc..dd09f41aa7 100644 --- a/modules/core/include/opencv2/core/operations.hpp +++ b/modules/core/include/opencv2/core/operations.hpp @@ -2482,114 +2482,6 @@ inline Point LineIterator::pos() const return p; } -/////////////////////////////// AutoBuffer //////////////////////////////////////// - -template inline -AutoBuffer<_Tp, fixed_size>::AutoBuffer() -{ - ptr = buf; - sz = fixed_size; -} - -template inline -AutoBuffer<_Tp, fixed_size>::AutoBuffer(size_t _size) -{ - ptr = buf; - sz = fixed_size; - allocate(_size); -} - -template inline -AutoBuffer<_Tp, fixed_size>::AutoBuffer(const AutoBuffer<_Tp, fixed_size>& abuf ) -{ - ptr = buf; - sz = fixed_size; - allocate(abuf.size); - for( size_t i = 0; i < sz; i++ ) - ptr[i] = abuf.ptr[i]; -} - -template inline AutoBuffer<_Tp, fixed_size>& -AutoBuffer<_Tp, fixed_size>::operator = (const AutoBuffer<_Tp, fixed_size>& abuf) -{ - if( this != &abuf ) - { - deallocate(); - allocate(abuf.size); - for( size_t i = 0; i < sz; i++ ) - ptr[i] = abuf.ptr[i]; - } - return *this; -} - -template inline -AutoBuffer<_Tp, fixed_size>::~AutoBuffer() -{ deallocate(); } - -template inline void -AutoBuffer<_Tp, fixed_size>::allocate(size_t _size) -{ - if(_size <= sz) - { - sz = _size; - return; - } - deallocate(); - if(_size > fixed_size) - { - ptr = new _Tp[_size]; - sz = _size; - } -} - -template inline void -AutoBuffer<_Tp, fixed_size>::deallocate() -{ - if( ptr != buf ) - { - delete[] ptr; - ptr = buf; - sz = fixed_size; - } -} - -template inline void -AutoBuffer<_Tp, fixed_size>::resize(size_t _size) -{ - if(_size <= sz) - { - sz = _size; - return; - } - size_t i, prevsize = sz, minsize = MIN(prevsize, _size); - _Tp* prevptr = ptr; - - ptr = _size > fixed_size ? new _Tp[_size] : buf; - sz = _size; - - if( ptr != prevptr ) - for( i = 0; i < minsize; i++ ) - ptr[i] = prevptr[i]; - for( i = prevsize; i < _size; i++ ) - ptr[i] = _Tp(); - - if( prevptr != buf ) - delete[] prevptr; -} - -template inline size_t -AutoBuffer<_Tp, fixed_size>::size() const -{ return sz; } - -template inline -AutoBuffer<_Tp, fixed_size>::operator _Tp* () -{ return ptr; } - -template inline -AutoBuffer<_Tp, fixed_size>::operator const _Tp* () const -{ return ptr; } - - /////////////////////////////////// Ptr //////////////////////////////////////// template inline Ptr<_Tp>::Ptr() : obj(0), refcount(0) {} diff --git a/modules/core/include/opencv2/core/utility.hpp b/modules/core/include/opencv2/core/utility.hpp new file mode 100644 index 0000000000..6a08c37af5 --- /dev/null +++ b/modules/core/include/opencv2/core/utility.hpp @@ -0,0 +1,459 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef __OPENCV_CORE_UTILITY_H__ +#define __OPENCV_CORE_UTILITY_H__ + +#include "opencv2/core.hpp" + +namespace cv +{ + +/*! + Automatically Allocated Buffer Class + + The class is used for temporary buffers in functions and methods. + If a temporary buffer is usually small (a few K's of memory), + but its size depends on the parameters, it makes sense to create a small + fixed-size array on stack and use it if it's large enough. If the required buffer size + is larger than the fixed size, another buffer of sufficient size is allocated dynamically + and released after the processing. Therefore, in typical cases, when the buffer size is small, + there is no overhead associated with malloc()/free(). + At the same time, there is no limit on the size of processed data. + + This is what AutoBuffer does. The template takes 2 parameters - type of the buffer elements and + the number of stack-allocated elements. Here is how the class is used: + + \code + void my_func(const cv::Mat& m) + { + cv::AutoBuffer buf; // create automatic buffer containing 1000 floats + + buf.allocate(m.rows); // if m.rows <= 1000, the pre-allocated buffer is used, + // otherwise the buffer of "m.rows" floats will be allocated + // dynamically and deallocated in cv::AutoBuffer destructor + ... + } + \endcode +*/ +template class CV_EXPORTS AutoBuffer +{ +public: + typedef _Tp value_type; + + //! the default contructor + AutoBuffer(); + //! constructor taking the real buffer size + AutoBuffer(size_t _size); + + //! the copy constructor + AutoBuffer(const AutoBuffer<_Tp, fixed_size>& buf); + //! the assignment operator + AutoBuffer<_Tp, fixed_size>& operator = (const AutoBuffer<_Tp, fixed_size>& buf); + + //! destructor. calls deallocate() + ~AutoBuffer(); + + //! allocates the new buffer of size _size. if the _size is small enough, stack-allocated buffer is used + void allocate(size_t _size); + //! deallocates the buffer if it was dynamically allocated + void deallocate(); + //! resizes the buffer and preserves the content + void resize(size_t _size); + //! returns the current buffer size + size_t size() const; + //! returns pointer to the real buffer, stack-allocated or head-allocated + operator _Tp* (); + //! returns read-only pointer to the real buffer, stack-allocated or head-allocated + operator const _Tp* () const; + +protected: + //! pointer to the real buffer, can point to buf if the buffer is small enough + _Tp* ptr; + //! size of the real buffer + size_t sz; + //! pre-allocated buffer + _Tp buf[fixed_size]; +}; + +//! Sets/resets the break-on-error mode. + +/*! + When the break-on-error mode is set, the default error handler + issues a hardware exception, which can make debugging more convenient. + + \return the previous state + */ +CV_EXPORTS bool setBreakOnError(bool flag); + +typedef int (CV_CDECL *ErrorCallback)( int status, const char* func_name, + const char* err_msg, const char* file_name, + int line, void* userdata ); + +//! Sets the new error handler and the optional user data. + +/*! + The function sets the new error handler, called from cv::error(). + + \param errCallback the new error handler. If NULL, the default error handler is used. + \param userdata the optional user data pointer, passed to the callback. + \param prevUserdata the optional output parameter where the previous user data pointer is stored + + \return the previous error handler +*/ +CV_EXPORTS ErrorCallback redirectError( ErrorCallback errCallback, void* userdata=0, void** prevUserdata=0); + +CV_EXPORTS std::string format( const char* fmt, ... ); +CV_EXPORTS std::string tempfile( const char* suffix CV_DEFAULT(0)); +CV_EXPORTS void glob(std::string pattern, std::vector& result, bool recursive = false); +CV_EXPORTS void setNumThreads(int nthreads); +CV_EXPORTS int getNumThreads(); +CV_EXPORTS int getThreadNum(); + +CV_EXPORTS_W const std::string& getBuildInformation(); + +//! Returns the number of ticks. + +/*! + The function returns the number of ticks since the certain event (e.g. when the machine was turned on). + It can be used to initialize cv::RNG or to measure a function execution time by reading the tick count + before and after the function call. The granularity of ticks depends on the hardware and OS used. Use + cv::getTickFrequency() to convert ticks to seconds. +*/ +CV_EXPORTS_W int64 getTickCount(); + +/*! + Returns the number of ticks per seconds. + + The function returns the number of ticks (as returned by cv::getTickCount()) per second. + The following code computes the execution time in milliseconds: + + \code + double exec_time = (double)getTickCount(); + // do something ... + exec_time = ((double)getTickCount() - exec_time)*1000./getTickFrequency(); + \endcode +*/ +CV_EXPORTS_W double getTickFrequency(); + +/*! + Returns the number of CPU ticks. + + On platforms where the feature is available, the function returns the number of CPU ticks + since the certain event (normally, the system power-on moment). Using this function + one can accurately measure the execution time of very small code fragments, + for which cv::getTickCount() granularity is not enough. +*/ +CV_EXPORTS_W int64 getCPUTickCount(); + +/*! + Returns SSE etc. support status + + The function returns true if certain hardware features are available. + Currently, the following features are recognized: + - CV_CPU_MMX - MMX + - CV_CPU_SSE - SSE + - CV_CPU_SSE2 - SSE 2 + - CV_CPU_SSE3 - SSE 3 + - CV_CPU_SSSE3 - SSSE 3 + - CV_CPU_SSE4_1 - SSE 4.1 + - CV_CPU_SSE4_2 - SSE 4.2 + - CV_CPU_POPCNT - POPCOUNT + - CV_CPU_AVX - AVX + + \note {Note that the function output is not static. Once you called cv::useOptimized(false), + most of the hardware acceleration is disabled and thus the function will returns false, + until you call cv::useOptimized(true)} +*/ +CV_EXPORTS_W bool checkHardwareSupport(int feature); + +//! returns the number of CPUs (including hyper-threading) +CV_EXPORTS_W int getNumberOfCPUs(); + + +/*! + Aligns pointer by the certain number of bytes + + This small inline function aligns the pointer by the certian number of bytes by shifting + it forward by 0 or a positive offset. +*/ +template static inline _Tp* alignPtr(_Tp* ptr, int n=(int)sizeof(_Tp)) +{ + return (_Tp*)(((size_t)ptr + n-1) & -n); +} + +/*! + Aligns buffer size by the certain number of bytes + + This small inline function aligns a buffer size by the certian number of bytes by enlarging it. +*/ +static inline size_t alignSize(size_t sz, int n) +{ + return (sz + n-1) & -n; +} + +/*! + Turns on/off available optimization + + The function turns on or off the optimized code in OpenCV. Some optimization can not be enabled + or disabled, but, for example, most of SSE code in OpenCV can be temporarily turned on or off this way. + + \note{Since optimization may imply using special data structures, it may be unsafe + to call this function anywhere in the code. Instead, call it somewhere at the top level.} +*/ +CV_EXPORTS_W void setUseOptimized(bool onoff); + +/*! + Returns the current optimization status + + The function returns the current optimization status, which is controlled by cv::setUseOptimized(). +*/ +CV_EXPORTS_W bool useOptimized(); + +static inline size_t getElemSize(int type) { return CV_ELEM_SIZE(type); } + +/////////////////////////////// Parallel Primitives ////////////////////////////////// + +// a base body class +class CV_EXPORTS ParallelLoopBody +{ +public: + virtual ~ParallelLoopBody(); + virtual void operator() (const Range& range) const = 0; +}; + +CV_EXPORTS void parallel_for_(const Range& range, const ParallelLoopBody& body, double nstripes=-1.); + +/////////////////////////// Synchronization Primitives /////////////////////////////// + +class CV_EXPORTS Mutex +{ +public: + Mutex(); + ~Mutex(); + Mutex(const Mutex& m); + Mutex& operator = (const Mutex& m); + + void lock(); + bool trylock(); + void unlock(); + + struct Impl; +protected: + Impl* impl; +}; + +class CV_EXPORTS AutoLock +{ +public: + AutoLock(Mutex& m) : mutex(&m) { mutex->lock(); } + ~AutoLock() { mutex->unlock(); } +protected: + Mutex* mutex; +}; + +// The CommandLineParser class is designed for command line arguments parsing + +class CV_EXPORTS CommandLineParser +{ + public: + CommandLineParser(int argc, const char* const argv[], const std::string& keys); + CommandLineParser(const CommandLineParser& parser); + CommandLineParser& operator = (const CommandLineParser& parser); + + std::string getPathToApplication() const; + + template + T get(const std::string& name, bool space_delete = true) const + { + T val = T(); + getByName(name, space_delete, ParamType::type, (void*)&val); + return val; + } + + template + T get(int index, bool space_delete = true) const + { + T val = T(); + getByIndex(index, space_delete, ParamType::type, (void*)&val); + return val; + } + + bool has(const std::string& name) const; + + bool check() const; + + void about(const std::string& message); + + void printMessage() const; + void printErrors() const; + +protected: + void getByName(const std::string& name, bool space_delete, int type, void* dst) const; + void getByIndex(int index, bool space_delete, int type, void* dst) const; + + struct Impl; + Impl* impl; +}; + +/////////////////////////////// AutoBuffer implementation //////////////////////////////////////// + +template inline +AutoBuffer<_Tp, fixed_size>::AutoBuffer() +{ + ptr = buf; + sz = fixed_size; +} + +template inline +AutoBuffer<_Tp, fixed_size>::AutoBuffer(size_t _size) +{ + ptr = buf; + sz = fixed_size; + allocate(_size); +} + +template inline +AutoBuffer<_Tp, fixed_size>::AutoBuffer(const AutoBuffer<_Tp, fixed_size>& abuf ) +{ + ptr = buf; + sz = fixed_size; + allocate(abuf.size); + for( size_t i = 0; i < sz; i++ ) + ptr[i] = abuf.ptr[i]; +} + +template inline AutoBuffer<_Tp, fixed_size>& +AutoBuffer<_Tp, fixed_size>::operator = (const AutoBuffer<_Tp, fixed_size>& abuf) +{ + if( this != &abuf ) + { + deallocate(); + allocate(abuf.size); + for( size_t i = 0; i < sz; i++ ) + ptr[i] = abuf.ptr[i]; + } + return *this; +} + +template inline +AutoBuffer<_Tp, fixed_size>::~AutoBuffer() +{ deallocate(); } + +template inline void +AutoBuffer<_Tp, fixed_size>::allocate(size_t _size) +{ + if(_size <= sz) + { + sz = _size; + return; + } + deallocate(); + if(_size > fixed_size) + { + ptr = new _Tp[_size]; + sz = _size; + } +} + +template inline void +AutoBuffer<_Tp, fixed_size>::deallocate() +{ + if( ptr != buf ) + { + delete[] ptr; + ptr = buf; + sz = fixed_size; + } +} + +template inline void +AutoBuffer<_Tp, fixed_size>::resize(size_t _size) +{ + if(_size <= sz) + { + sz = _size; + return; + } + size_t i, prevsize = sz, minsize = MIN(prevsize, _size); + _Tp* prevptr = ptr; + + ptr = _size > fixed_size ? new _Tp[_size] : buf; + sz = _size; + + if( ptr != prevptr ) + for( i = 0; i < minsize; i++ ) + ptr[i] = prevptr[i]; + for( i = prevsize; i < _size; i++ ) + ptr[i] = _Tp(); + + if( prevptr != buf ) + delete[] prevptr; +} + +template inline size_t +AutoBuffer<_Tp, fixed_size>::size() const +{ return sz; } + +template inline +AutoBuffer<_Tp, fixed_size>::operator _Tp* () +{ return ptr; } + +template inline +AutoBuffer<_Tp, fixed_size>::operator const _Tp* () const +{ return ptr; } + +// TODO: move them to core_c.h +//! converts array (CvMat or IplImage) to cv::Mat +CV_EXPORTS Mat cvarrToMat(const CvArr* arr, bool copyData=false, + bool allowND=true, int coiMode=0, + AutoBuffer* buf=0); + +static inline Mat cvarrToMatND(const CvArr* arr, bool copyData=false, int coiMode=0) +{ + return cvarrToMat(arr, copyData, true, coiMode); +} + +} //namespace cv + +#endif //__OPENCV_CORE_UTILITY_H__ diff --git a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp index 30ce3d17b1..1fa2ae343e 100644 --- a/modules/core/src/precomp.hpp +++ b/modules/core/src/precomp.hpp @@ -48,6 +48,7 @@ #endif #include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" #include "opencv2/core/core_c.h" #include "opencv2/core/internal.hpp" diff --git a/modules/core/test/test_precomp.hpp b/modules/core/test/test_precomp.hpp index 6c0f493d4e..948293a461 100644 --- a/modules/core/test/test_precomp.hpp +++ b/modules/core/test/test_precomp.hpp @@ -9,8 +9,8 @@ #ifndef __OPENCV_TEST_PRECOMP_HPP__ #define __OPENCV_TEST_PRECOMP_HPP__ +#include #include "opencv2/ts.hpp" #include "opencv2/core/core_c.h" -#include #endif diff --git a/modules/features2d/src/precomp.hpp b/modules/features2d/src/precomp.hpp index 62936b48f3..bcaa9b26eb 100644 --- a/modules/features2d/src/precomp.hpp +++ b/modules/features2d/src/precomp.hpp @@ -50,6 +50,8 @@ #include "opencv2/features2d.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" + +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" #include diff --git a/modules/flann/src/precomp.hpp b/modules/flann/src/precomp.hpp index 0d2647932b..7f924694cb 100644 --- a/modules/flann/src/precomp.hpp +++ b/modules/flann/src/precomp.hpp @@ -9,6 +9,7 @@ # include "cvconfig.h" #endif #include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" #include "opencv2/flann/miniflann.hpp" diff --git a/modules/flann/test/test_precomp.hpp b/modules/flann/test/test_precomp.hpp index b5cd174610..cbee8957fd 100644 --- a/modules/flann/test/test_precomp.hpp +++ b/modules/flann/test/test_precomp.hpp @@ -10,7 +10,6 @@ #define __OPENCV_TEST_PRECOMP_HPP__ #include "opencv2/ts.hpp" -#include "opencv2/core.hpp" #include "opencv2/flann.hpp" #include diff --git a/modules/highgui/src/precomp.hpp b/modules/highgui/src/precomp.hpp index d83401cd65..26aae1d2de 100644 --- a/modules/highgui/src/precomp.hpp +++ b/modules/highgui/src/precomp.hpp @@ -47,6 +47,8 @@ #include "opencv2/highgui.hpp" #include "opencv2/highgui/highgui_c.h" #include "opencv2/imgproc/imgproc_c.h" + +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" #include diff --git a/modules/highgui/test/test_precomp.hpp b/modules/highgui/test/test_precomp.hpp index ba4241e25f..4d36cdd643 100644 --- a/modules/highgui/test/test_precomp.hpp +++ b/modules/highgui/test/test_precomp.hpp @@ -13,10 +13,10 @@ # include "cvconfig.h" #endif +#include #include "opencv2/ts.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" -#include #if defined(HAVE_VIDEOINPUT) || \ defined(HAVE_TYZX) || \ diff --git a/modules/imgproc/src/precomp.hpp b/modules/imgproc/src/precomp.hpp index c3e693c31c..cde17ae05d 100644 --- a/modules/imgproc/src/precomp.hpp +++ b/modules/imgproc/src/precomp.hpp @@ -49,6 +49,8 @@ #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" + +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" #include #include diff --git a/modules/imgproc/test/test_precomp.hpp b/modules/imgproc/test/test_precomp.hpp index 9e937b9416..43866800a5 100644 --- a/modules/imgproc/test/test_precomp.hpp +++ b/modules/imgproc/test/test_precomp.hpp @@ -9,11 +9,11 @@ #ifndef __OPENCV_TEST_PRECOMP_HPP__ #define __OPENCV_TEST_PRECOMP_HPP__ +#include #include "opencv2/ts.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" #include "opencv2/highgui.hpp" #include "opencv2/highgui/highgui_c.h" -#include #endif diff --git a/modules/java/generator/config/core.filelist b/modules/java/generator/config/core.filelist index 96c377786d..d0905a3c2c 100644 --- a/modules/java/generator/config/core.filelist +++ b/modules/java/generator/config/core.filelist @@ -1,2 +1,3 @@ include/opencv2/core.hpp +include/opencv2/core/utility.hpp ../java/generator/src/cpp/core_manual.hpp diff --git a/modules/java/generator/src/cpp/common.h b/modules/java/generator/src/cpp/common.h index b67f633f7b..db343823fd 100644 --- a/modules/java/generator/src/cpp/common.h +++ b/modules/java/generator/src/cpp/common.h @@ -20,6 +20,8 @@ # define LOGD(...) #endif +#include "opencv2/core/utility.hpp" + #include "converters.h" #include "core_manual.hpp" diff --git a/modules/java/generator/src/cpp/core_manual.cpp b/modules/java/generator/src/cpp/core_manual.cpp index d7ba5b9947..8a45528fc9 100644 --- a/modules/java/generator/src/cpp/core_manual.cpp +++ b/modules/java/generator/src/cpp/core_manual.cpp @@ -1,6 +1,8 @@ #define LOG_TAG "org.opencv.core.Core" #include "common.h" +#include "opencv2/core/utility.hpp" + static int quietCallback( int, const char*, const char*, const char*, int, void* ) { return 0; diff --git a/modules/legacy/src/precomp.hpp b/modules/legacy/src/precomp.hpp index 6e40e3ffd0..91ab6e3de8 100644 --- a/modules/legacy/src/precomp.hpp +++ b/modules/legacy/src/precomp.hpp @@ -47,15 +47,14 @@ #include "opencv2/legacy.hpp" -#include "opencv2/core/internal.hpp" #include "opencv2/video.hpp" - #include "opencv2/legacy/blobtrack.hpp" #include "opencv2/legacy/compat.hpp" -#include "_matrix.h" +#include "opencv2/core/utility.hpp" +#include "opencv2/core/internal.hpp" -typedef unsigned short ushort; +#include "_matrix.h" CV_INLINE bool operator == (CvSize size1, CvSize size2 ); CV_INLINE bool operator == (CvSize size1, CvSize size2 ) diff --git a/modules/legacy/test/test_precomp.hpp b/modules/legacy/test/test_precomp.hpp index ccfb359fb7..52b92fb6c1 100644 --- a/modules/legacy/test/test_precomp.hpp +++ b/modules/legacy/test/test_precomp.hpp @@ -9,12 +9,12 @@ #ifndef __OPENCV_TEST_PRECOMP_HPP__ #define __OPENCV_TEST_PRECOMP_HPP__ +#include #include "opencv2/ts.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" #include "opencv2/highgui.hpp" #include "opencv2/highgui/highgui_c.h" #include "opencv2/legacy.hpp" -#include #endif diff --git a/modules/ml/src/precomp.hpp b/modules/ml/src/precomp.hpp index 112e077911..c180244657 100644 --- a/modules/ml/src/precomp.hpp +++ b/modules/ml/src/precomp.hpp @@ -47,6 +47,7 @@ #include "opencv2/ml.hpp" #include "opencv2/core/core_c.h" +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" #include diff --git a/modules/ml/test/test_precomp.hpp b/modules/ml/test/test_precomp.hpp index f311d48786..e68e5513ba 100644 --- a/modules/ml/test/test_precomp.hpp +++ b/modules/ml/test/test_precomp.hpp @@ -9,11 +9,11 @@ #ifndef __OPENCV_TEST_PRECOMP_HPP__ #define __OPENCV_TEST_PRECOMP_HPP__ +#include +#include #include "opencv2/ts.hpp" #include "opencv2/ml.hpp" #include "opencv2/core/core_c.h" -#include -#include #define CV_NBAYES "nbayes" #define CV_KNEAREST "knearest" diff --git a/modules/nonfree/src/precomp.hpp b/modules/nonfree/src/precomp.hpp index ea0aa6bd4a..f4494d4420 100644 --- a/modules/nonfree/src/precomp.hpp +++ b/modules/nonfree/src/precomp.hpp @@ -49,6 +49,8 @@ #include "opencv2/nonfree.hpp" #include "opencv2/imgproc.hpp" + +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" #endif diff --git a/modules/nonfree/test/test_precomp.hpp b/modules/nonfree/test/test_precomp.hpp index daa79c90d3..4a14b31fb4 100644 --- a/modules/nonfree/test/test_precomp.hpp +++ b/modules/nonfree/test/test_precomp.hpp @@ -9,10 +9,10 @@ #ifndef __OPENCV_TEST_PRECOMP_HPP__ #define __OPENCV_TEST_PRECOMP_HPP__ +#include #include "opencv2/ts.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include "opencv2/nonfree.hpp" -#include #endif diff --git a/modules/objdetect/src/precomp.hpp b/modules/objdetect/src/precomp.hpp index 2b237a1563..be3547c752 100644 --- a/modules/objdetect/src/precomp.hpp +++ b/modules/objdetect/src/precomp.hpp @@ -51,6 +51,8 @@ #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" #include "opencv2/core/core_c.h" + +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" #include "opencv2/opencv_modules.hpp" diff --git a/modules/ocl/perf/precomp.hpp b/modules/ocl/perf/precomp.hpp index ac7bd8be5d..d8b4931ff8 100644 --- a/modules/ocl/perf/precomp.hpp +++ b/modules/ocl/perf/precomp.hpp @@ -62,14 +62,12 @@ #include #include #include "cvconfig.h" -#include "opencv2/core.hpp" #include "opencv2/highgui.hpp" -//#include "opencv2/calib3d.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/video.hpp" #include "opencv2/ts.hpp" -#include "opencv2/ts/ts_perf.hpp" #include "opencv2/ocl.hpp" +//#include "opencv2/calib3d.hpp" //#include "opencv2/nonfree.hpp" #include "utility.hpp" diff --git a/modules/ocl/src/precomp.hpp b/modules/ocl/src/precomp.hpp index 5cbc5364f0..873e11b80d 100644 --- a/modules/ocl/src/precomp.hpp +++ b/modules/ocl/src/precomp.hpp @@ -69,6 +69,7 @@ #include "opencv2/imgproc/imgproc_c.h" #include "opencv2/core/core_c.h" +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" //#include "opencv2/highgui.hpp" diff --git a/modules/ocl/test/precomp.hpp b/modules/ocl/test/precomp.hpp index 25c95eb77a..755a2d2bc4 100644 --- a/modules/ocl/test/precomp.hpp +++ b/modules/ocl/test/precomp.hpp @@ -62,14 +62,12 @@ #include #include #include "cvconfig.h" -#include "opencv2/core.hpp" +#include "opencv2/ts.hpp" #include "opencv2/highgui.hpp" -//#include "opencv2/calib3d.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/video.hpp" -#include "opencv2/ts.hpp" -#include "opencv2/ts/ts_perf.hpp" #include "opencv2/ocl.hpp" +//#include "opencv2/calib3d.hpp" //#include "opencv2/nonfree.hpp" #include "utility.hpp" diff --git a/modules/photo/test/test_precomp.hpp b/modules/photo/test/test_precomp.hpp index 278abb496f..5b22a1c755 100644 --- a/modules/photo/test/test_precomp.hpp +++ b/modules/photo/test/test_precomp.hpp @@ -9,9 +9,9 @@ #ifndef __OPENCV_TEST_PRECOMP_HPP__ #define __OPENCV_TEST_PRECOMP_HPP__ +#include #include "opencv2/ts.hpp" #include "opencv2/photo.hpp" #include "opencv2/highgui.hpp" -#include #endif diff --git a/modules/python/CMakeLists.txt b/modules/python/CMakeLists.txt index d39e91921d..5a42a7b62b 100644 --- a/modules/python/CMakeLists.txt +++ b/modules/python/CMakeLists.txt @@ -24,6 +24,7 @@ ocv_module_include_directories( set(opencv_hdrs "${OPENCV_MODULE_opencv_core_LOCATION}/include/opencv2/core.hpp" + "${OPENCV_MODULE_opencv_core_LOCATION}/include/opencv2/core/utility.hpp" "${OPENCV_MODULE_opencv_flann_LOCATION}/include/opencv2/flann/miniflann.hpp" "${OPENCV_MODULE_opencv_imgproc_LOCATION}/include/opencv2/imgproc.hpp" "${OPENCV_MODULE_opencv_video_LOCATION}/include/opencv2/video/background_segm.hpp" diff --git a/modules/python/src2/cv2.cpp b/modules/python/src2/cv2.cpp index bbdd5abbe7..06c0f35157 100644 --- a/modules/python/src2/cv2.cpp +++ b/modules/python/src2/cv2.cpp @@ -9,6 +9,7 @@ #include "numpy/ndarrayobject.h" #include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" #include "opencv2/contrib.hpp" #include "opencv2/flann/miniflann.hpp" #include "opencv2/imgproc.hpp" diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp index 61e75be381..e2735da3e0 100644 --- a/modules/ts/include/opencv2/ts.hpp +++ b/modules/ts/include/opencv2/ts.hpp @@ -36,6 +36,7 @@ #endif #include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" namespace cvtest { @@ -478,26 +479,10 @@ protected: virtual int run_test_case( int expected_code, const string& descr ); virtual void run_func(void) = 0; int test_case_idx; - int progress; - double t, freq; template int run_test_case( int expected_code, const string& _descr, F f) { - double new_t = (double)cv::getTickCount(), dt; - if( test_case_idx < 0 ) - { - test_case_idx = 0; - progress = 0; - dt = 0; - } - else - { - dt = (new_t - t)/(freq*1000); - t = new_t; - } - progress = update_progress(progress, test_case_idx, 0, dt); - int errcount = 0; bool thrown = false; const char* descr = _descr.c_str() ? _descr.c_str() : ""; diff --git a/modules/ts/src/precomp.hpp b/modules/ts/src/precomp.hpp index 0bc076376c..a4306d2d86 100644 --- a/modules/ts/src/precomp.hpp +++ b/modules/ts/src/precomp.hpp @@ -1,6 +1,9 @@ -#include "opencv2/core/core_c.h" #include "opencv2/ts.hpp" +#include "opencv2/core/core_c.h" +#include "opencv2/core/utility.hpp" + + #ifdef GTEST_LINKED_AS_SHARED_LIBRARY #error ts module should not have GTEST_LINKED_AS_SHARED_LIBRARY defined #endif diff --git a/modules/ts/src/ts.cpp b/modules/ts/src/ts.cpp index 7ce37752db..65a9727e70 100644 --- a/modules/ts/src/ts.cpp +++ b/modules/ts/src/ts.cpp @@ -321,9 +321,7 @@ int BaseTest::update_progress( int progress, int test_case_idx, int count, doubl BadArgTest::BadArgTest() { - progress = -1; test_case_idx = -1; - freq = cv::getTickFrequency(); // oldErrorCbk = 0; // oldErrorCbkData = 0; } @@ -334,20 +332,6 @@ BadArgTest::~BadArgTest(void) int BadArgTest::run_test_case( int expected_code, const string& _descr ) { - double new_t = (double)cv::getTickCount(), dt; - if( test_case_idx < 0 ) - { - test_case_idx = 0; - progress = 0; - dt = 0; - } - else - { - dt = (new_t - t)/(freq*1000); - t = new_t; - } - progress = update_progress(progress, test_case_idx, 0, dt); - int errcount = 0; bool thrown = false; const char* descr = _descr.c_str() ? _descr.c_str() : ""; diff --git a/modules/video/perf/perf_precomp.hpp b/modules/video/perf/perf_precomp.hpp index 94f8d92234..0ea88f0da5 100644 --- a/modules/video/perf/perf_precomp.hpp +++ b/modules/video/perf/perf_precomp.hpp @@ -9,10 +9,10 @@ #ifndef __OPENCV_VIDEO_PRECOMP_HPP__ #define __OPENCV_VIDEO_PRECOMP_HPP__ +#include "opencv2/ts.hpp" #include #include #include -#include "opencv2/ts.hpp" #ifdef GTEST_CREATE_SHARED_LIBRARY #error no modules except ts should have GTEST_CREATE_SHARED_LIBRARY defined diff --git a/modules/video/src/precomp.hpp b/modules/video/src/precomp.hpp index 58fc550862..0b9e58283a 100644 --- a/modules/video/src/precomp.hpp +++ b/modules/video/src/precomp.hpp @@ -47,9 +47,10 @@ #include "cvconfig.h" #endif -#include "opencv2/video/tracking.hpp" -#include "opencv2/video/background_segm.hpp" +#include "opencv2/video.hpp" #include "opencv2/imgproc/imgproc_c.h" + +#include "opencv2/core/utility.hpp" #include "opencv2/core/internal.hpp" #include diff --git a/modules/video/test/test_precomp.hpp b/modules/video/test/test_precomp.hpp index 7025dff8f7..524ba80fcb 100644 --- a/modules/video/test/test_precomp.hpp +++ b/modules/video/test/test_precomp.hpp @@ -9,11 +9,11 @@ #ifndef __OPENCV_TEST_PRECOMP_HPP__ #define __OPENCV_TEST_PRECOMP_HPP__ +#include #include "opencv2/ts.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/imgproc_c.h" #include "opencv2/video.hpp" #include "opencv2/highgui.hpp" -#include #endif diff --git a/samples/c/bgfg_codebook.cpp b/samples/c/bgfg_codebook.cpp index 3054e9971b..569a2788d3 100644 --- a/samples/c/bgfg_codebook.cpp +++ b/samples/c/bgfg_codebook.cpp @@ -20,11 +20,12 @@ Or: http://oreilly.com/catalog/9780596516130/ ISBN-10: 0596516134 or: ISBN-13: 978-0596516130 ************************************************** */ -#include "opencv2/core/core.hpp" +#include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" #include "opencv2/video/background_segm.hpp" #include "opencv2/imgproc/imgproc_c.h" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/legacy/legacy.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/legacy.hpp" #include #include diff --git a/samples/c/find_obj_ferns.cpp b/samples/c/find_obj_ferns.cpp index 9d19c198f4..093d08f368 100644 --- a/samples/c/find_obj_ferns.cpp +++ b/samples/c/find_obj_ferns.cpp @@ -1,9 +1,9 @@ -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/features2d/features2d.hpp" -#include "opencv2/objdetect/objdetect.hpp" -#include "opencv2/legacy/legacy.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/features2d.hpp" +#include "opencv2/objdetect.hpp" +#include "opencv2/legacy.hpp" #include #include diff --git a/samples/c/mser_sample.cpp b/samples/c/mser_sample.cpp index e0217a2d3a..b6b96c3434 100644 --- a/samples/c/mser_sample.cpp +++ b/samples/c/mser_sample.cpp @@ -2,9 +2,10 @@ * Copyright (C) 2009, Liu Liu All rights reserved. */ -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/features2d/features2d.hpp" -#include "opencv2/imgproc/imgproc.hpp" +#include +#include "opencv2/highgui.hpp" +#include "opencv2/features2d.hpp" +#include "opencv2/imgproc.hpp" #include #include diff --git a/samples/cpp/bgfg_gmg.cpp b/samples/cpp/bgfg_gmg.cpp index 3d2da44ab2..94640d0762 100644 --- a/samples/cpp/bgfg_gmg.cpp +++ b/samples/cpp/bgfg_gmg.cpp @@ -6,6 +6,7 @@ */ #include +#include #include using namespace cv; diff --git a/samples/cpp/bgfg_segm.cpp b/samples/cpp/bgfg_segm.cpp index 399c7ad28a..27abe6ff9f 100644 --- a/samples/cpp/bgfg_segm.cpp +++ b/samples/cpp/bgfg_segm.cpp @@ -1,7 +1,8 @@ -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/core.hpp" +#include +#include "opencv2/imgproc.hpp" #include "opencv2/video/background_segm.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/highgui.hpp" #include using namespace std; diff --git a/samples/cpp/brief_match_test.cpp b/samples/cpp/brief_match_test.cpp index dea48d38ee..13902206a5 100644 --- a/samples/cpp/brief_match_test.cpp +++ b/samples/cpp/brief_match_test.cpp @@ -4,11 +4,12 @@ * Created on: Oct 17, 2010 * Author: ethan */ -#include "opencv2/core/core.hpp" -#include "opencv2/calib3d/calib3d.hpp" -#include "opencv2/features2d/features2d.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/core.hpp" +#include +#include "opencv2/calib3d.hpp" +#include "opencv2/features2d.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" #include #include diff --git a/samples/cpp/build3dmodel.cpp b/samples/cpp/build3dmodel.cpp index b896a39369..2ce1abd2de 100644 --- a/samples/cpp/build3dmodel.cpp +++ b/samples/cpp/build3dmodel.cpp @@ -1,8 +1,9 @@ -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/calib3d/calib3d.hpp" -#include "opencv2/features2d/features2d.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/core.hpp" +#include +#include "opencv2/imgproc.hpp" +#include "opencv2/calib3d.hpp" +#include "opencv2/features2d.hpp" +#include "opencv2/highgui.hpp" #include diff --git a/samples/cpp/calibration.cpp b/samples/cpp/calibration.cpp index f4ff81077b..8cbf6c5387 100644 --- a/samples/cpp/calibration.cpp +++ b/samples/cpp/calibration.cpp @@ -1,7 +1,8 @@ -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/calib3d/calib3d.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/core.hpp" +#include +#include "opencv2/imgproc.hpp" +#include "opencv2/calib3d.hpp" +#include "opencv2/highgui.hpp" #include #include diff --git a/samples/cpp/camshiftdemo.cpp b/samples/cpp/camshiftdemo.cpp index 36316e6360..44bce7637e 100644 --- a/samples/cpp/camshiftdemo.cpp +++ b/samples/cpp/camshiftdemo.cpp @@ -1,6 +1,7 @@ +#include #include "opencv2/video/tracking.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" #include #include diff --git a/samples/cpp/chamfer.cpp b/samples/cpp/chamfer.cpp index 8a51b0bae2..a7d3578d4d 100644 --- a/samples/cpp/chamfer.cpp +++ b/samples/cpp/chamfer.cpp @@ -1,6 +1,7 @@ -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/contrib/contrib.hpp" +#include +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/contrib.hpp" #include diff --git a/samples/cpp/connected_components.cpp b/samples/cpp/connected_components.cpp index d20991ecd1..50c677d372 100644 --- a/samples/cpp/connected_components.cpp +++ b/samples/cpp/connected_components.cpp @@ -1,5 +1,6 @@ -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" +#include +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" #include using namespace cv; diff --git a/samples/cpp/demhist.cpp b/samples/cpp/demhist.cpp index 8b9189f32d..eef25964af 100644 --- a/samples/cpp/demhist.cpp +++ b/samples/cpp/demhist.cpp @@ -1,5 +1,6 @@ -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" #include diff --git a/samples/cpp/detection_based_tracker_sample.cpp b/samples/cpp/detection_based_tracker_sample.cpp index 61106f3a9c..2b9eef1a94 100644 --- a/samples/cpp/detection_based_tracker_sample.cpp +++ b/samples/cpp/detection_based_tracker_sample.cpp @@ -1,10 +1,11 @@ #if defined(__linux__) || defined(LINUX) || defined(__APPLE__) || defined(ANDROID) -#include +#include +#include #include -#include -#include -#include +#include +#include +#include #include "opencv2/contrib/detection_based_tracker.hpp" #include diff --git a/samples/cpp/detector_descriptor_matcher_evaluation.cpp b/samples/cpp/detector_descriptor_matcher_evaluation.cpp index bf92e7da33..194cddfe35 100644 --- a/samples/cpp/detector_descriptor_matcher_evaluation.cpp +++ b/samples/cpp/detector_descriptor_matcher_evaluation.cpp @@ -39,9 +39,10 @@ // //M*/ -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/features2d/features2d.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/features2d.hpp" #include #include diff --git a/samples/cpp/dft.cpp b/samples/cpp/dft.cpp index d538c103e6..234dc9a4e3 100644 --- a/samples/cpp/dft.cpp +++ b/samples/cpp/dft.cpp @@ -1,6 +1,7 @@ -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" #include diff --git a/samples/cpp/distrans.cpp b/samples/cpp/distrans.cpp index 472c168e30..71ed71a984 100644 --- a/samples/cpp/distrans.cpp +++ b/samples/cpp/distrans.cpp @@ -1,5 +1,6 @@ -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" +#include +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" #include diff --git a/samples/cpp/edge.cpp b/samples/cpp/edge.cpp index c6a8db3b6a..0944c90ee2 100644 --- a/samples/cpp/edge.cpp +++ b/samples/cpp/edge.cpp @@ -1,5 +1,6 @@ -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" #include diff --git a/samples/cpp/facerec_demo.cpp b/samples/cpp/facerec_demo.cpp index 6402082e82..81953e3c80 100644 --- a/samples/cpp/facerec_demo.cpp +++ b/samples/cpp/facerec_demo.cpp @@ -16,9 +16,10 @@ * See */ -#include "opencv2/core/core.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/contrib/contrib.hpp" +#include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/contrib.hpp" #include #include diff --git a/samples/cpp/freak_demo.cpp b/samples/cpp/freak_demo.cpp index 60778fd4e2..d6ea45ac04 100644 --- a/samples/cpp/freak_demo.cpp +++ b/samples/cpp/freak_demo.cpp @@ -38,11 +38,12 @@ #include #include -#include -#include -#include -#include -#include +#include +#include "opencv2/core/utility.hpp" +#include +#include +#include +#include using namespace cv; diff --git a/samples/cpp/image_alignment.cpp b/samples/cpp/image_alignment.cpp index 179a751847..08f9c0dd22 100644 --- a/samples/cpp/image_alignment.cpp +++ b/samples/cpp/image_alignment.cpp @@ -13,10 +13,10 @@ * Authors: G. Evangelidis, INRIA, Grenoble, France * M. Asbach, Fraunhofer IAIS, St. Augustin, Germany */ -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/samples/cpp/linemod.cpp b/samples/cpp/linemod.cpp index 8f0c71a31b..267103788b 100644 --- a/samples/cpp/linemod.cpp +++ b/samples/cpp/linemod.cpp @@ -1,8 +1,9 @@ -#include +#include +#include #include // cvFindContours -#include -#include -#include +#include +#include +#include #include #include #include diff --git a/samples/cpp/opencv_version.cpp b/samples/cpp/opencv_version.cpp index b735f2a6cc..ec9b47d58e 100644 --- a/samples/cpp/opencv_version.cpp +++ b/samples/cpp/opencv_version.cpp @@ -1,4 +1,4 @@ -#include "opencv2/core/core.hpp" +#include #include const char* keys = diff --git a/samples/cpp/peopledetect.cpp b/samples/cpp/peopledetect.cpp index fee17897be..ff79ee68f9 100644 --- a/samples/cpp/peopledetect.cpp +++ b/samples/cpp/peopledetect.cpp @@ -1,3 +1,4 @@ +#include #include #include #include diff --git a/samples/cpp/select3dobj.cpp b/samples/cpp/select3dobj.cpp index a21ee2d291..8652f7ebfe 100644 --- a/samples/cpp/select3dobj.cpp +++ b/samples/cpp/select3dobj.cpp @@ -8,10 +8,11 @@ * */ -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/calib3d/calib3d.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/core.hpp" +#include +#include "opencv2/imgproc.hpp" +#include "opencv2/calib3d.hpp" +#include "opencv2/highgui.hpp" #include #include diff --git a/samples/cpp/simpleflow_demo.cpp b/samples/cpp/simpleflow_demo.cpp index 2562a2bb62..c9cde783da 100644 --- a/samples/cpp/simpleflow_demo.cpp +++ b/samples/cpp/simpleflow_demo.cpp @@ -1,6 +1,7 @@ +#include #include "opencv2/video/tracking.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" #include #include diff --git a/samples/cpp/stereo_match.cpp b/samples/cpp/stereo_match.cpp index 7e1f6cb687..743185e451 100644 --- a/samples/cpp/stereo_match.cpp +++ b/samples/cpp/stereo_match.cpp @@ -11,6 +11,7 @@ #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/contrib/contrib.hpp" +#include "opencv2/core/utility.hpp" #include diff --git a/samples/cpp/stitching_detailed.cpp b/samples/cpp/stitching_detailed.cpp index 73d139e41b..29cffca1b3 100644 --- a/samples/cpp/stitching_detailed.cpp +++ b/samples/cpp/stitching_detailed.cpp @@ -45,7 +45,8 @@ #include #include #include "opencv2/opencv_modules.hpp" -#include "opencv2/highgui/highgui.hpp" +#include +#include "opencv2/highgui.hpp" #include "opencv2/stitching/detail/autocalib.hpp" #include "opencv2/stitching/detail/blenders.hpp" #include "opencv2/stitching/detail/camera.hpp" diff --git a/samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp b/samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp index aa4a0361d9..aeac2c8237 100644 --- a/samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp +++ b/samples/cpp/tutorial_code/calib3d/camera_calibration/camera_calibration.cpp @@ -3,10 +3,11 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include +#include using namespace cv; using namespace std; diff --git a/samples/cpp/tutorial_code/core/how_to_scan_images/how_to_scan_images.cpp b/samples/cpp/tutorial_code/core/how_to_scan_images/how_to_scan_images.cpp index 49aca426e1..421c8a620f 100644 --- a/samples/cpp/tutorial_code/core/how_to_scan_images/how_to_scan_images.cpp +++ b/samples/cpp/tutorial_code/core/how_to_scan_images/how_to_scan_images.cpp @@ -1,5 +1,6 @@ -#include -#include +#include +#include +#include #include #include diff --git a/samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp b/samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp index 94e0a29a61..429f52ead9 100644 --- a/samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp +++ b/samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp @@ -1,6 +1,7 @@ -#include -#include -#include +#include +#include +#include +#include #include using namespace std; diff --git a/samples/cpp/tutorial_code/gpu/gpu-basics-similarity/gpu-basics-similarity.cpp b/samples/cpp/tutorial_code/gpu/gpu-basics-similarity/gpu-basics-similarity.cpp index 0bcb6fafeb..f3f2b683d9 100644 --- a/samples/cpp/tutorial_code/gpu/gpu-basics-similarity/gpu-basics-similarity.cpp +++ b/samples/cpp/tutorial_code/gpu/gpu-basics-similarity/gpu-basics-similarity.cpp @@ -1,10 +1,11 @@ #include // Console I/O #include // String to number conversion -#include // Basic OpenCV structures -#include // Image processing methods for the CPU -#include // Read images -#include // GPU structures and methods +#include // Basic OpenCV structures +#include +#include // Image processing methods for the CPU +#include // Read images +#include // GPU structures and methods using namespace std; using namespace cv; diff --git a/samples/cpp/tvl1_optical_flow.cpp b/samples/cpp/tvl1_optical_flow.cpp index 4f9a02b5a9..f5e71863c2 100644 --- a/samples/cpp/tvl1_optical_flow.cpp +++ b/samples/cpp/tvl1_optical_flow.cpp @@ -1,8 +1,9 @@ #include #include -#include "opencv2/video/tracking.hpp" -#include "opencv2/highgui/highgui.hpp" +#include +#include "opencv2/video.hpp" +#include "opencv2/highgui.hpp" using namespace cv; using namespace std; diff --git a/samples/cpp/videostab.cpp b/samples/cpp/videostab.cpp index effd9e61f4..025a0279b2 100644 --- a/samples/cpp/videostab.cpp +++ b/samples/cpp/videostab.cpp @@ -4,6 +4,7 @@ #include #include #include "opencv2/core.hpp" +#include #include "opencv2/video.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" diff --git a/samples/cpp/watershed.cpp b/samples/cpp/watershed.cpp index de7f5256f9..923b8bf839 100644 --- a/samples/cpp/watershed.cpp +++ b/samples/cpp/watershed.cpp @@ -1,5 +1,6 @@ -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" +#include +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" #include #include diff --git a/samples/gpu/bgfg_segm.cpp b/samples/gpu/bgfg_segm.cpp index 9456b15e88..e7db9a168a 100644 --- a/samples/gpu/bgfg_segm.cpp +++ b/samples/gpu/bgfg_segm.cpp @@ -1,9 +1,10 @@ #include #include -#include "opencv2/core/core.hpp" -#include "opencv2/gpu/gpu.hpp" -#include "opencv2/highgui/highgui.hpp" +#include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/gpu.hpp" +#include "opencv2/highgui.hpp" using namespace std; using namespace cv; diff --git a/samples/gpu/brox_optical_flow.cpp b/samples/gpu/brox_optical_flow.cpp index 56832c4def..1d92e4b3ff 100644 --- a/samples/gpu/brox_optical_flow.cpp +++ b/samples/gpu/brox_optical_flow.cpp @@ -3,10 +3,10 @@ #include #include -#include "cvconfig.h" -#include "opencv2/core/core.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/gpu/gpu.hpp" +#include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/gpu.hpp" using namespace std; using namespace cv; diff --git a/samples/gpu/farneback_optical_flow.cpp b/samples/gpu/farneback_optical_flow.cpp index 77ee49e1a1..c93ceb055f 100644 --- a/samples/gpu/farneback_optical_flow.cpp +++ b/samples/gpu/farneback_optical_flow.cpp @@ -2,10 +2,11 @@ #include #include -#include "opencv2/core/core.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/video/video.hpp" -#include "opencv2/gpu/gpu.hpp" +#include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/video.hpp" +#include "opencv2/gpu.hpp" using namespace std; using namespace cv; diff --git a/samples/gpu/generalized_hough.cpp b/samples/gpu/generalized_hough.cpp index c41e7903c8..3febbf0f5f 100644 --- a/samples/gpu/generalized_hough.cpp +++ b/samples/gpu/generalized_hough.cpp @@ -2,11 +2,12 @@ #include #include -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/gpu/gpu.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/contrib/contrib.hpp" +#include "opencv2/core.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/gpu.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/contrib.hpp" using namespace std; using namespace cv; diff --git a/samples/gpu/hog.cpp b/samples/gpu/hog.cpp index 2e0b70bcf9..59bddb187a 100644 --- a/samples/gpu/hog.cpp +++ b/samples/gpu/hog.cpp @@ -4,8 +4,9 @@ #include #include #include -#include "opencv2/gpu/gpu.hpp" -#include "opencv2/highgui/highgui.hpp" +#include +#include "opencv2/gpu.hpp" +#include "opencv2/highgui.hpp" using namespace std; using namespace cv; diff --git a/samples/gpu/houghlines.cpp b/samples/gpu/houghlines.cpp index e98dcc6e7c..f104e16fa5 100644 --- a/samples/gpu/houghlines.cpp +++ b/samples/gpu/houghlines.cpp @@ -1,10 +1,11 @@ #include #include -#include "opencv2/core/core.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/gpu/gpu.hpp" +#include "opencv2/core.hpp" +#include +#include "opencv2/highgui.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/gpu.hpp" using namespace std; using namespace cv; diff --git a/samples/gpu/optical_flow.cpp b/samples/gpu/optical_flow.cpp index 3f74d1b676..cae00fcc35 100644 --- a/samples/gpu/optical_flow.cpp +++ b/samples/gpu/optical_flow.cpp @@ -1,9 +1,10 @@ #include #include -#include "opencv2/core/core.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/gpu/gpu.hpp" +#include "opencv2/core.hpp" +#include +#include "opencv2/highgui.hpp" +#include "opencv2/gpu.hpp" using namespace std; using namespace cv; diff --git a/samples/gpu/performance/performance.h b/samples/gpu/performance/performance.h index 4f58061ace..8ee007f0aa 100644 --- a/samples/gpu/performance/performance.h +++ b/samples/gpu/performance/performance.h @@ -6,8 +6,8 @@ #include #include #include -#include "opencv2/core/core.hpp" -#include "opencv2/gpu/gpu.hpp" +#include +#include "opencv2/gpu.hpp" #define TAB " " diff --git a/samples/gpu/pyrlk_optical_flow.cpp b/samples/gpu/pyrlk_optical_flow.cpp index c2e765da13..95170cc7e9 100644 --- a/samples/gpu/pyrlk_optical_flow.cpp +++ b/samples/gpu/pyrlk_optical_flow.cpp @@ -1,12 +1,12 @@ #include #include -#include "cvconfig.h" -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/video/video.hpp" -#include "opencv2/gpu/gpu.hpp" +#include "opencv2/core.hpp" +#include +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/video.hpp" +#include "opencv2/gpu.hpp" using namespace std; using namespace cv; diff --git a/samples/gpu/softcascade.cpp b/samples/gpu/softcascade.cpp index acc43af1b3..980d6ffdf7 100644 --- a/samples/gpu/softcascade.cpp +++ b/samples/gpu/softcascade.cpp @@ -1,3 +1,4 @@ +#include #include #include #include diff --git a/samples/gpu/stereo_match.cpp b/samples/gpu/stereo_match.cpp index 62745d749d..4b849a8c03 100644 --- a/samples/gpu/stereo_match.cpp +++ b/samples/gpu/stereo_match.cpp @@ -3,8 +3,9 @@ #include #include #include -#include "opencv2/gpu/gpu.hpp" -#include "opencv2/highgui/highgui.hpp" +#include +#include "opencv2/gpu.hpp" +#include "opencv2/highgui.hpp" using namespace cv; using namespace std; diff --git a/samples/ocl/hog.cpp b/samples/ocl/hog.cpp index 76b6d2830e..c1623db8b9 100644 --- a/samples/ocl/hog.cpp +++ b/samples/ocl/hog.cpp @@ -4,8 +4,9 @@ #include #include #include -#include "opencv2/ocl/ocl.hpp" -#include "opencv2/highgui/highgui.hpp" +#include +#include "opencv2/ocl.hpp" +#include "opencv2/highgui.hpp" using namespace std; using namespace cv; diff --git a/samples/ocl/performance.cpp b/samples/ocl/performance.cpp index 262e4320b2..2c999ac693 100644 --- a/samples/ocl/performance.cpp +++ b/samples/ocl/performance.cpp @@ -5,17 +5,17 @@ #include #include #include -#include "opencv2/core/core.hpp" -#include "opencv2/imgproc/imgproc.hpp" -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/calib3d/calib3d.hpp" -#include "opencv2/video/video.hpp" -#include "opencv2/nonfree/nonfree.hpp" -#include "opencv2/objdetect/objdetect.hpp" -#include "opencv2/features2d/features2d.hpp" +#include +#include "opencv2/imgproc.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/calib3d.hpp" +#include "opencv2/video.hpp" +#include "opencv2/nonfree.hpp" +#include "opencv2/objdetect.hpp" +#include "opencv2/features2d.hpp" #define USE_OPENCL #ifdef USE_OPENCL -#include "opencv2/ocl/ocl.hpp" +#include "opencv2/ocl.hpp" #endif #define TAB " " From 14a0abbfa9ce6900ce4febd2ab95679445a5ca1f Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Wed, 20 Mar 2013 19:51:33 +0400 Subject: [PATCH 0042/1333] refactored video module; use the new-style algorithms now --- modules/video/src/affineflow.cpp | 850 +++++++++++++++++++++++++++++ modules/video/src/compat_video.cpp | 388 +++++++++++++ modules/video/src/simpleflow.hpp | 86 --- 3 files changed, 1238 insertions(+), 86 deletions(-) create mode 100644 modules/video/src/affineflow.cpp create mode 100644 modules/video/src/compat_video.cpp delete mode 100644 modules/video/src/simpleflow.hpp diff --git a/modules/video/src/affineflow.cpp b/modules/video/src/affineflow.cpp new file mode 100644 index 0000000000..f833a89ca8 --- /dev/null +++ b/modules/video/src/affineflow.cpp @@ -0,0 +1,850 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000, Intel Corporation, all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" + +// to be moved to legacy + +static int icvMinimalPyramidSize( CvSize imgSize ) +{ + return cvAlign(imgSize.width,8) * imgSize.height / 3; +} + + +static void +icvInitPyramidalAlgorithm( const CvMat* imgA, const CvMat* imgB, + CvMat* pyrA, CvMat* pyrB, + int level, CvTermCriteria * criteria, + int max_iters, int flags, + uchar *** imgI, uchar *** imgJ, + int **step, CvSize** size, + double **scale, cv::AutoBuffer* buffer ) +{ + const int ALIGN = 8; + int pyrBytes, bufferBytes = 0, elem_size; + int level1 = level + 1; + + int i; + CvSize imgSize, levelSize; + + *imgI = *imgJ = 0; + *step = 0; + *scale = 0; + *size = 0; + + /* check input arguments */ + if( ((flags & CV_LKFLOW_PYR_A_READY) != 0 && !pyrA) || + ((flags & CV_LKFLOW_PYR_B_READY) != 0 && !pyrB) ) + CV_Error( CV_StsNullPtr, "Some of the precomputed pyramids are missing" ); + + if( level < 0 ) + CV_Error( CV_StsOutOfRange, "The number of pyramid levels is negative" ); + + switch( criteria->type ) + { + case CV_TERMCRIT_ITER: + criteria->epsilon = 0.f; + break; + case CV_TERMCRIT_EPS: + criteria->max_iter = max_iters; + break; + case CV_TERMCRIT_ITER | CV_TERMCRIT_EPS: + break; + default: + assert( 0 ); + CV_Error( CV_StsBadArg, "Invalid termination criteria" ); + } + + /* compare squared values */ + criteria->epsilon *= criteria->epsilon; + + /* set pointers and step for every level */ + pyrBytes = 0; + + imgSize = cvGetSize(imgA); + elem_size = CV_ELEM_SIZE(imgA->type); + levelSize = imgSize; + + for( i = 1; i < level1; i++ ) + { + levelSize.width = (levelSize.width + 1) >> 1; + levelSize.height = (levelSize.height + 1) >> 1; + + int tstep = cvAlign(levelSize.width,ALIGN) * elem_size; + pyrBytes += tstep * levelSize.height; + } + + assert( pyrBytes <= imgSize.width * imgSize.height * elem_size * 4 / 3 ); + + /* buffer_size = + */ + bufferBytes = (int)((level1 >= 0) * ((pyrA->data.ptr == 0) + + (pyrB->data.ptr == 0)) * pyrBytes + + (sizeof(imgI[0][0]) * 2 + sizeof(step[0][0]) + + sizeof(size[0][0]) + sizeof(scale[0][0])) * level1); + + buffer->allocate( bufferBytes ); + + *imgI = (uchar **) (uchar*)(*buffer); + *imgJ = *imgI + level1; + *step = (int *) (*imgJ + level1); + *scale = (double *) (*step + level1); + *size = (CvSize *)(*scale + level1); + + imgI[0][0] = imgA->data.ptr; + imgJ[0][0] = imgB->data.ptr; + step[0][0] = imgA->step; + scale[0][0] = 1; + size[0][0] = imgSize; + + if( level > 0 ) + { + uchar *bufPtr = (uchar *) (*size + level1); + uchar *ptrA = pyrA->data.ptr; + uchar *ptrB = pyrB->data.ptr; + + if( !ptrA ) + { + ptrA = bufPtr; + bufPtr += pyrBytes; + } + + if( !ptrB ) + ptrB = bufPtr; + + levelSize = imgSize; + + /* build pyramids for both frames */ + for( i = 1; i <= level; i++ ) + { + int levelBytes; + CvMat prev_level, next_level; + + levelSize.width = (levelSize.width + 1) >> 1; + levelSize.height = (levelSize.height + 1) >> 1; + + size[0][i] = levelSize; + step[0][i] = cvAlign( levelSize.width, ALIGN ) * elem_size; + scale[0][i] = scale[0][i - 1] * 0.5; + + levelBytes = step[0][i] * levelSize.height; + imgI[0][i] = (uchar *) ptrA; + ptrA += levelBytes; + + if( !(flags & CV_LKFLOW_PYR_A_READY) ) + { + prev_level = cvMat( size[0][i-1].height, size[0][i-1].width, CV_8UC1 ); + next_level = cvMat( size[0][i].height, size[0][i].width, CV_8UC1 ); + cvSetData( &prev_level, imgI[0][i-1], step[0][i-1] ); + cvSetData( &next_level, imgI[0][i], step[0][i] ); + cvPyrDown( &prev_level, &next_level ); + } + + imgJ[0][i] = (uchar *) ptrB; + ptrB += levelBytes; + + if( !(flags & CV_LKFLOW_PYR_B_READY) ) + { + prev_level = cvMat( size[0][i-1].height, size[0][i-1].width, CV_8UC1 ); + next_level = cvMat( size[0][i].height, size[0][i].width, CV_8UC1 ); + cvSetData( &prev_level, imgJ[0][i-1], step[0][i-1] ); + cvSetData( &next_level, imgJ[0][i], step[0][i] ); + cvPyrDown( &prev_level, &next_level ); + } + } + } +} + + +/* compute dI/dx and dI/dy */ +static void +icvCalcIxIy_32f( const float* src, int src_step, float* dstX, float* dstY, int dst_step, + CvSize src_size, const float* smooth_k, float* buffer0 ) +{ + int src_width = src_size.width, dst_width = src_size.width-2; + int x, height = src_size.height - 2; + float* buffer1 = buffer0 + src_width; + + src_step /= sizeof(src[0]); + dst_step /= sizeof(dstX[0]); + + for( ; height--; src += src_step, dstX += dst_step, dstY += dst_step ) + { + const float* src2 = src + src_step; + const float* src3 = src + src_step*2; + + for( x = 0; x < src_width; x++ ) + { + float t0 = (src3[x] + src[x])*smooth_k[0] + src2[x]*smooth_k[1]; + float t1 = src3[x] - src[x]; + buffer0[x] = t0; buffer1[x] = t1; + } + + for( x = 0; x < dst_width; x++ ) + { + float t0 = buffer0[x+2] - buffer0[x]; + float t1 = (buffer1[x] + buffer1[x+2])*smooth_k[0] + buffer1[x+1]*smooth_k[1]; + dstX[x] = t0; dstY[x] = t1; + } + } +} + + +#undef CV_8TO32F +#define CV_8TO32F(a) (a) + +static const void* +icvAdjustRect( const void* srcptr, int src_step, int pix_size, + CvSize src_size, CvSize win_size, + CvPoint ip, CvRect* pRect ) +{ + CvRect rect; + const char* src = (const char*)srcptr; + + if( ip.x >= 0 ) + { + src += ip.x*pix_size; + rect.x = 0; + } + else + { + rect.x = -ip.x; + if( rect.x > win_size.width ) + rect.x = win_size.width; + } + + if( ip.x + win_size.width < src_size.width ) + rect.width = win_size.width; + else + { + rect.width = src_size.width - ip.x - 1; + if( rect.width < 0 ) + { + src += rect.width*pix_size; + rect.width = 0; + } + assert( rect.width <= win_size.width ); + } + + if( ip.y >= 0 ) + { + src += ip.y * src_step; + rect.y = 0; + } + else + rect.y = -ip.y; + + if( ip.y + win_size.height < src_size.height ) + rect.height = win_size.height; + else + { + rect.height = src_size.height - ip.y - 1; + if( rect.height < 0 ) + { + src += rect.height*src_step; + rect.height = 0; + } + } + + *pRect = rect; + return src - rect.x*pix_size; +} + + +static CvStatus CV_STDCALL icvGetRectSubPix_8u32f_C1R +( const uchar* src, int src_step, CvSize src_size, + float* dst, int dst_step, CvSize win_size, CvPoint2D32f center ) +{ + CvPoint ip; + float a12, a22, b1, b2; + float a, b; + double s = 0; + int i, j; + + center.x -= (win_size.width-1)*0.5f; + center.y -= (win_size.height-1)*0.5f; + + ip.x = cvFloor( center.x ); + ip.y = cvFloor( center.y ); + + if( win_size.width <= 0 || win_size.height <= 0 ) + return CV_BADRANGE_ERR; + + a = center.x - ip.x; + b = center.y - ip.y; + a = MAX(a,0.0001f); + a12 = a*(1.f-b); + a22 = a*b; + b1 = 1.f - b; + b2 = b; + s = (1. - a)/a; + + src_step /= sizeof(src[0]); + dst_step /= sizeof(dst[0]); + + if( 0 <= ip.x && ip.x + win_size.width < src_size.width && + 0 <= ip.y && ip.y + win_size.height < src_size.height ) + { + // extracted rectangle is totally inside the image + src += ip.y * src_step + ip.x; + +#if 0 + if( icvCopySubpix_8u32f_C1R_p && + icvCopySubpix_8u32f_C1R_p( src, src_step, dst, + dst_step*sizeof(dst[0]), win_size, a, b ) >= 0 ) + return CV_OK; +#endif + + for( ; win_size.height--; src += src_step, dst += dst_step ) + { + float prev = (1 - a)*(b1*CV_8TO32F(src[0]) + b2*CV_8TO32F(src[src_step])); + for( j = 0; j < win_size.width; j++ ) + { + float t = a12*CV_8TO32F(src[j+1]) + a22*CV_8TO32F(src[j+1+src_step]); + dst[j] = prev + t; + prev = (float)(t*s); + } + } + } + else + { + CvRect r; + + src = (const uchar*)icvAdjustRect( src, src_step*sizeof(*src), + sizeof(*src), src_size, win_size,ip, &r); + + for( i = 0; i < win_size.height; i++, dst += dst_step ) + { + const uchar *src2 = src + src_step; + + if( i < r.y || i >= r.height ) + src2 -= src_step; + + for( j = 0; j < r.x; j++ ) + { + float s0 = CV_8TO32F(src[r.x])*b1 + + CV_8TO32F(src2[r.x])*b2; + + dst[j] = (float)(s0); + } + + if( j < r.width ) + { + float prev = (1 - a)*(b1*CV_8TO32F(src[j]) + b2*CV_8TO32F(src2[j])); + + for( ; j < r.width; j++ ) + { + float t = a12*CV_8TO32F(src[j+1]) + a22*CV_8TO32F(src2[j+1]); + dst[j] = prev + t; + prev = (float)(t*s); + } + } + + for( ; j < win_size.width; j++ ) + { + float s0 = CV_8TO32F(src[r.width])*b1 + + CV_8TO32F(src2[r.width])*b2; + + dst[j] = (float)(s0); + } + + if( i < r.height ) + src = src2; + } + } + + return CV_OK; +} + + +#define ICV_32F8U(x) ((uchar)cvRound(x)) + +#define ICV_DEF_GET_QUADRANGLE_SUB_PIX_FUNC( flavor, srctype, dsttype, \ +worktype, cast_macro, cvt ) \ +static CvStatus CV_STDCALL \ +icvGetQuadrangleSubPix_##flavor##_C1R \ +( const srctype * src, int src_step, CvSize src_size, \ +dsttype *dst, int dst_step, CvSize win_size, const float *matrix ) \ +{ \ +int x, y; \ +double dx = (win_size.width - 1)*0.5; \ +double dy = (win_size.height - 1)*0.5; \ +double A11 = matrix[0], A12 = matrix[1], A13 = matrix[2]-A11*dx-A12*dy; \ +double A21 = matrix[3], A22 = matrix[4], A23 = matrix[5]-A21*dx-A22*dy; \ +\ +src_step /= sizeof(srctype); \ +dst_step /= sizeof(dsttype); \ +\ +for( y = 0; y < win_size.height; y++, dst += dst_step ) \ +{ \ +double xs = A12*y + A13; \ +double ys = A22*y + A23; \ +double xe = A11*(win_size.width-1) + A12*y + A13; \ +double ye = A21*(win_size.width-1) + A22*y + A23; \ +\ +if( (unsigned)(cvFloor(xs)-1) < (unsigned)(src_size.width - 3) && \ +(unsigned)(cvFloor(ys)-1) < (unsigned)(src_size.height - 3) && \ +(unsigned)(cvFloor(xe)-1) < (unsigned)(src_size.width - 3) && \ +(unsigned)(cvFloor(ye)-1) < (unsigned)(src_size.height - 3)) \ +{ \ +for( x = 0; x < win_size.width; x++ ) \ +{ \ +int ixs = cvFloor( xs ); \ +int iys = cvFloor( ys ); \ +const srctype *ptr = src + src_step*iys + ixs; \ +double a = xs - ixs, b = ys - iys, a1 = 1.f - a; \ +worktype p0 = cvt(ptr[0])*a1 + cvt(ptr[1])*a; \ +worktype p1 = cvt(ptr[src_step])*a1 + cvt(ptr[src_step+1])*a;\ +xs += A11; \ +ys += A21; \ +\ +dst[x] = cast_macro(p0 + b * (p1 - p0)); \ +} \ +} \ +else \ +{ \ +for( x = 0; x < win_size.width; x++ ) \ +{ \ +int ixs = cvFloor( xs ), iys = cvFloor( ys ); \ +double a = xs - ixs, b = ys - iys, a1 = 1.f - a; \ +const srctype *ptr0, *ptr1; \ +worktype p0, p1; \ +xs += A11; ys += A21; \ +\ +if( (unsigned)iys < (unsigned)(src_size.height-1) ) \ +ptr0 = src + src_step*iys, ptr1 = ptr0 + src_step; \ +else \ +ptr0 = ptr1 = src + (iys < 0 ? 0 : src_size.height-1)*src_step; \ +\ +if( (unsigned)ixs < (unsigned)(src_size.width-1) ) \ +{ \ +p0 = cvt(ptr0[ixs])*a1 + cvt(ptr0[ixs+1])*a; \ +p1 = cvt(ptr1[ixs])*a1 + cvt(ptr1[ixs+1])*a; \ +} \ +else \ +{ \ +ixs = ixs < 0 ? 0 : src_size.width - 1; \ +p0 = cvt(ptr0[ixs]); p1 = cvt(ptr1[ixs]); \ +} \ +dst[x] = cast_macro(p0 + b * (p1 - p0)); \ +} \ +} \ +} \ +\ +return CV_OK; \ +} + +ICV_DEF_GET_QUADRANGLE_SUB_PIX_FUNC( 8u32f, uchar, float, double, CV_CAST_32F, CV_8TO32F ) + +/* Affine tracking algorithm */ + +CV_IMPL void +cvCalcAffineFlowPyrLK( const void* arrA, const void* arrB, + void* pyrarrA, void* pyrarrB, + const CvPoint2D32f * featuresA, + CvPoint2D32f * featuresB, + float *matrices, int count, + CvSize winSize, int level, + char *status, float *error, + CvTermCriteria criteria, int flags ) +{ + const int MAX_ITERS = 100; + + cv::AutoBuffer _status; + cv::AutoBuffer buffer; + cv::AutoBuffer pyr_buffer; + + CvMat stubA, *imgA = (CvMat*)arrA; + CvMat stubB, *imgB = (CvMat*)arrB; + CvMat pstubA, *pyrA = (CvMat*)pyrarrA; + CvMat pstubB, *pyrB = (CvMat*)pyrarrB; + + static const float smoothKernel[] = { 0.09375, 0.3125, 0.09375 }; /* 3/32, 10/32, 3/32 */ + + int bufferBytes = 0; + + uchar **imgI = 0; + uchar **imgJ = 0; + int *step = 0; + double *scale = 0; + CvSize* size = 0; + + float *patchI; + float *patchJ; + float *Ix; + float *Iy; + + int i, j, k, l; + + CvSize patchSize = cvSize( winSize.width * 2 + 1, winSize.height * 2 + 1 ); + int patchLen = patchSize.width * patchSize.height; + int patchStep = patchSize.width * sizeof( patchI[0] ); + + CvSize srcPatchSize = cvSize( patchSize.width + 2, patchSize.height + 2 ); + int srcPatchLen = srcPatchSize.width * srcPatchSize.height; + int srcPatchStep = srcPatchSize.width * sizeof( patchI[0] ); + CvSize imgSize; + float eps = (float)MIN(winSize.width, winSize.height); + + imgA = cvGetMat( imgA, &stubA ); + imgB = cvGetMat( imgB, &stubB ); + + if( CV_MAT_TYPE( imgA->type ) != CV_8UC1 ) + CV_Error( CV_StsUnsupportedFormat, "" ); + + if( !CV_ARE_TYPES_EQ( imgA, imgB )) + CV_Error( CV_StsUnmatchedFormats, "" ); + + if( !CV_ARE_SIZES_EQ( imgA, imgB )) + CV_Error( CV_StsUnmatchedSizes, "" ); + + if( imgA->step != imgB->step ) + CV_Error( CV_StsUnmatchedSizes, "imgA and imgB must have equal steps" ); + + if( !matrices ) + CV_Error( CV_StsNullPtr, "" ); + + imgSize = cvGetMatSize( imgA ); + + if( pyrA ) + { + pyrA = cvGetMat( pyrA, &pstubA ); + + if( pyrA->step*pyrA->height < icvMinimalPyramidSize( imgSize ) ) + CV_Error( CV_StsBadArg, "pyramid A has insufficient size" ); + } + else + { + pyrA = &pstubA; + pyrA->data.ptr = 0; + } + + if( pyrB ) + { + pyrB = cvGetMat( pyrB, &pstubB ); + + if( pyrB->step*pyrB->height < icvMinimalPyramidSize( imgSize ) ) + CV_Error( CV_StsBadArg, "pyramid B has insufficient size" ); + } + else + { + pyrB = &pstubB; + pyrB->data.ptr = 0; + } + + if( count == 0 ) + return; + + /* check input arguments */ + if( !featuresA || !featuresB || !matrices ) + CV_Error( CV_StsNullPtr, "" ); + + if( winSize.width <= 1 || winSize.height <= 1 ) + CV_Error( CV_StsOutOfRange, "the search window is too small" ); + + if( count < 0 ) + CV_Error( CV_StsOutOfRange, "" ); + + icvInitPyramidalAlgorithm( imgA, imgB, + pyrA, pyrB, level, &criteria, MAX_ITERS, flags, + &imgI, &imgJ, &step, &size, &scale, &pyr_buffer ); + + /* buffer_size = + */ + bufferBytes = (srcPatchLen + patchLen*3)*sizeof(patchI[0]) + (36*2 + 6)*sizeof(double); + + buffer.allocate(bufferBytes); + + if( !status ) + { + _status.allocate(count); + status = _status; + } + + patchI = (float *)(uchar*)buffer; + patchJ = patchI + srcPatchLen; + Ix = patchJ + patchLen; + Iy = Ix + patchLen; + + if( status ) + memset( status, 1, count ); + + if( !(flags & CV_LKFLOW_INITIAL_GUESSES) ) + { + memcpy( featuresB, featuresA, count * sizeof( featuresA[0] )); + for( i = 0; i < count * 4; i += 4 ) + { + matrices[i] = matrices[i + 3] = 1.f; + matrices[i + 1] = matrices[i + 2] = 0.f; + } + } + + for( i = 0; i < count; i++ ) + { + featuresB[i].x = (float)(featuresB[i].x * scale[level] * 0.5); + featuresB[i].y = (float)(featuresB[i].y * scale[level] * 0.5); + } + + /* do processing from top pyramid level (smallest image) + to the bottom (original image) */ + for( l = level; l >= 0; l-- ) + { + CvSize levelSize = size[l]; + int levelStep = step[l]; + + /* find flow for each given point at the particular level */ + for( i = 0; i < count; i++ ) + { + CvPoint2D32f u; + float Av[6]; + double G[36]; + double meanI = 0, meanJ = 0; + int x, y; + int pt_status = status[i]; + CvMat mat; + + if( !pt_status ) + continue; + + Av[0] = matrices[i*4]; + Av[1] = matrices[i*4+1]; + Av[3] = matrices[i*4+2]; + Av[4] = matrices[i*4+3]; + + Av[2] = featuresB[i].x += featuresB[i].x; + Av[5] = featuresB[i].y += featuresB[i].y; + + u.x = (float) (featuresA[i].x * scale[l]); + u.y = (float) (featuresA[i].y * scale[l]); + + if( u.x < -eps || u.x >= levelSize.width+eps || + u.y < -eps || u.y >= levelSize.height+eps || + icvGetRectSubPix_8u32f_C1R( imgI[l], levelStep, + levelSize, patchI, srcPatchStep, srcPatchSize, u ) < 0 ) + { + /* point is outside the image. take the next */ + if( l == 0 ) + status[i] = 0; + continue; + } + + icvCalcIxIy_32f( patchI, srcPatchStep, Ix, Iy, + (srcPatchSize.width-2)*sizeof(patchI[0]), srcPatchSize, + smoothKernel, patchJ ); + + /* repack patchI (remove borders) */ + for( k = 0; k < patchSize.height; k++ ) + memcpy( patchI + k * patchSize.width, + patchI + (k + 1) * srcPatchSize.width + 1, patchStep ); + + memset( G, 0, sizeof( G )); + + /* calculate G matrix */ + for( y = -winSize.height, k = 0; y <= winSize.height; y++ ) + { + for( x = -winSize.width; x <= winSize.width; x++, k++ ) + { + double ixix = ((double) Ix[k]) * Ix[k]; + double ixiy = ((double) Ix[k]) * Iy[k]; + double iyiy = ((double) Iy[k]) * Iy[k]; + + double xx, xy, yy; + + G[0] += ixix; + G[1] += ixiy; + G[2] += x * ixix; + G[3] += y * ixix; + G[4] += x * ixiy; + G[5] += y * ixiy; + + // G[6] == G[1] + G[7] += iyiy; + // G[8] == G[4] + // G[9] == G[5] + G[10] += x * iyiy; + G[11] += y * iyiy; + + xx = x * x; + xy = x * y; + yy = y * y; + + // G[12] == G[2] + // G[13] == G[8] == G[4] + G[14] += xx * ixix; + G[15] += xy * ixix; + G[16] += xx * ixiy; + G[17] += xy * ixiy; + + // G[18] == G[3] + // G[19] == G[9] + // G[20] == G[15] + G[21] += yy * ixix; + // G[22] == G[17] + G[23] += yy * ixiy; + + // G[24] == G[4] + // G[25] == G[10] + // G[26] == G[16] + // G[27] == G[22] + G[28] += xx * iyiy; + G[29] += xy * iyiy; + + // G[30] == G[5] + // G[31] == G[11] + // G[32] == G[17] + // G[33] == G[23] + // G[34] == G[29] + G[35] += yy * iyiy; + + meanI += patchI[k]; + } + } + + meanI /= patchSize.width*patchSize.height; + + G[8] = G[4]; + G[9] = G[5]; + G[22] = G[17]; + + // fill part of G below its diagonal + for( y = 1; y < 6; y++ ) + for( x = 0; x < y; x++ ) + G[y * 6 + x] = G[x * 6 + y]; + + cvInitMatHeader( &mat, 6, 6, CV_64FC1, G ); + + if( cvInvert( &mat, &mat, CV_SVD ) < 1e-4 ) + { + /* bad matrix. take the next point */ + if( l == 0 ) + status[i] = 0; + continue; + } + + for( j = 0; j < criteria.max_iter; j++ ) + { + double b[6] = {0,0,0,0,0,0}, eta[6]; + double t0, t1, s = 0; + + if( Av[2] < -eps || Av[2] >= levelSize.width+eps || + Av[5] < -eps || Av[5] >= levelSize.height+eps || + icvGetQuadrangleSubPix_8u32f_C1R( imgJ[l], levelStep, + levelSize, patchJ, patchStep, patchSize, Av ) < 0 ) + { + pt_status = 0; + break; + } + + for( y = -winSize.height, k = 0, meanJ = 0; y <= winSize.height; y++ ) + for( x = -winSize.width; x <= winSize.width; x++, k++ ) + meanJ += patchJ[k]; + + meanJ = meanJ / (patchSize.width * patchSize.height) - meanI; + + for( y = -winSize.height, k = 0; y <= winSize.height; y++ ) + { + for( x = -winSize.width; x <= winSize.width; x++, k++ ) + { + double t = patchI[k] - patchJ[k] + meanJ; + double ixt = Ix[k] * t; + double iyt = Iy[k] * t; + + s += t; + + b[0] += ixt; + b[1] += iyt; + b[2] += x * ixt; + b[3] += y * ixt; + b[4] += x * iyt; + b[5] += y * iyt; + } + } + + for( k = 0; k < 6; k++ ) + eta[k] = G[k*6]*b[0] + G[k*6+1]*b[1] + G[k*6+2]*b[2] + + G[k*6+3]*b[3] + G[k*6+4]*b[4] + G[k*6+5]*b[5]; + + Av[2] = (float)(Av[2] + Av[0] * eta[0] + Av[1] * eta[1]); + Av[5] = (float)(Av[5] + Av[3] * eta[0] + Av[4] * eta[1]); + + t0 = Av[0] * (1 + eta[2]) + Av[1] * eta[4]; + t1 = Av[0] * eta[3] + Av[1] * (1 + eta[5]); + Av[0] = (float)t0; + Av[1] = (float)t1; + + t0 = Av[3] * (1 + eta[2]) + Av[4] * eta[4]; + t1 = Av[3] * eta[3] + Av[4] * (1 + eta[5]); + Av[3] = (float)t0; + Av[4] = (float)t1; + + if( eta[0] * eta[0] + eta[1] * eta[1] < criteria.epsilon ) + break; + } + + if( pt_status != 0 || l == 0 ) + { + status[i] = (char)pt_status; + featuresB[i].x = Av[2]; + featuresB[i].y = Av[5]; + + matrices[i*4] = Av[0]; + matrices[i*4+1] = Av[1]; + matrices[i*4+2] = Av[3]; + matrices[i*4+3] = Av[4]; + } + + if( pt_status && l == 0 && error ) + { + /* calc error */ + double err = 0; + + for( y = 0, k = 0; y < patchSize.height; y++ ) + { + for( x = 0; x < patchSize.width; x++, k++ ) + { + double t = patchI[k] - patchJ[k] + meanJ; + err += t * t; + } + } + error[i] = (float)std::sqrt(err); + } + } + } +} diff --git a/modules/video/src/compat_video.cpp b/modules/video/src/compat_video.cpp new file mode 100644 index 0000000000..5f70c893ea --- /dev/null +++ b/modules/video/src/compat_video.cpp @@ -0,0 +1,388 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000, Intel Corporation, all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "precomp.hpp" + + +/////////////////////////// Meanshift & CAMShift /////////////////////////// + +CV_IMPL int +cvMeanShift( const void* imgProb, CvRect windowIn, + CvTermCriteria criteria, CvConnectedComp* comp ) +{ + cv::Mat img = cv::cvarrToMat(imgProb); + cv::Rect window = windowIn; + int iters = cv::meanShift(img, window, criteria); + + if( comp ) + { + comp->rect = window; + comp->area = cvRound(cv::sum(img(window))[0]); + } + + return iters; +} + + +CV_IMPL int +cvCamShift( const void* imgProb, CvRect windowIn, + CvTermCriteria criteria, + CvConnectedComp* comp, + CvBox2D* box ) +{ + cv::Mat img = cv::cvarrToMat(imgProb); + cv::Rect window = windowIn; + cv::RotatedRect rr = cv::CamShift(img, window, criteria); + + if( comp ) + { + comp->rect = window; + cv::Rect roi = rr.boundingRect() & cv::Rect(0, 0, img.cols, img.rows); + comp->area = cvRound(cv::sum(img(roi))[0]); + } + + if( box ) + *box = rr; + + return rr.size.width*rr.size.height > 0.f ? 1 : -1; +} + + +///////////////////////// Motion Templates //////////////////////////// + +CV_IMPL void +cvUpdateMotionHistory( const void* silhouette, void* mhimg, + double timestamp, double mhi_duration ) +{ + cv::Mat silh = cv::cvarrToMat(silhouette), mhi = cv::cvarrToMat(mhimg); + cv::updateMotionHistory(silh, mhi, timestamp, mhi_duration); +} + + +CV_IMPL void +cvCalcMotionGradient( const CvArr* mhimg, CvArr* maskimg, + CvArr* orientation, + double delta1, double delta2, + int aperture_size ) +{ + cv::Mat mhi = cv::cvarrToMat(mhimg); + const cv::Mat mask = cv::cvarrToMat(maskimg), orient = cv::cvarrToMat(orientation); + cv::calcMotionGradient(mhi, mask, orient, delta1, delta2, aperture_size); +} + + +CV_IMPL double +cvCalcGlobalOrientation( const void* orientation, const void* maskimg, const void* mhimg, + double curr_mhi_timestamp, double mhi_duration ) +{ + cv::Mat mhi = cv::cvarrToMat(mhimg); + cv::Mat mask = cv::cvarrToMat(maskimg), orient = cv::cvarrToMat(orientation); + return cv::calcGlobalOrientation(orient, mask, mhi, curr_mhi_timestamp, mhi_duration); +} + + +CV_IMPL CvSeq* +cvSegmentMotion( const CvArr* mhimg, CvArr* segmaskimg, CvMemStorage* storage, + double timestamp, double segThresh ) +{ + cv::Mat mhi = cv::cvarrToMat(mhimg); + const cv::Mat segmask = cv::cvarrToMat(segmaskimg); + std::vector brs; + cv::segmentMotion(mhi, segmask, brs, timestamp, segThresh); + CvSeq* seq = cvCreateSeq(0, sizeof(CvSeq), sizeof(CvConnectedComp), storage); + + CvConnectedComp comp; + memset(&comp, 0, sizeof(comp)); + for( size_t i = 0; i < brs.size(); i++ ) + { + cv::Rect roi = brs[i]; + float compLabel = (float)(i+1); + int x, y, area = 0; + + cv::Mat part = segmask(roi); + for( y = 0; y < roi.height; y++ ) + { + const float* partptr = part.ptr(y); + for( x = 0; x < roi.width; x++ ) + area += partptr[x] == compLabel; + } + + comp.value = cv::Scalar(compLabel); + comp.rect = roi; + comp.area = area; + cvSeqPush(seq, &comp); + } + + return seq; +} + + +///////////////////////////////// Kalman /////////////////////////////// + +CV_IMPL CvKalman* +cvCreateKalman( int DP, int MP, int CP ) +{ + CvKalman *kalman = 0; + + if( DP <= 0 || MP <= 0 ) + CV_Error( CV_StsOutOfRange, + "state and measurement vectors must have positive number of dimensions" ); + + if( CP < 0 ) + CP = DP; + + /* allocating memory for the structure */ + kalman = (CvKalman *)cvAlloc( sizeof( CvKalman )); + memset( kalman, 0, sizeof(*kalman)); + + kalman->DP = DP; + kalman->MP = MP; + kalman->CP = CP; + + kalman->state_pre = cvCreateMat( DP, 1, CV_32FC1 ); + cvZero( kalman->state_pre ); + + kalman->state_post = cvCreateMat( DP, 1, CV_32FC1 ); + cvZero( kalman->state_post ); + + kalman->transition_matrix = cvCreateMat( DP, DP, CV_32FC1 ); + cvSetIdentity( kalman->transition_matrix ); + + kalman->process_noise_cov = cvCreateMat( DP, DP, CV_32FC1 ); + cvSetIdentity( kalman->process_noise_cov ); + + kalman->measurement_matrix = cvCreateMat( MP, DP, CV_32FC1 ); + cvZero( kalman->measurement_matrix ); + + kalman->measurement_noise_cov = cvCreateMat( MP, MP, CV_32FC1 ); + cvSetIdentity( kalman->measurement_noise_cov ); + + kalman->error_cov_pre = cvCreateMat( DP, DP, CV_32FC1 ); + + kalman->error_cov_post = cvCreateMat( DP, DP, CV_32FC1 ); + cvZero( kalman->error_cov_post ); + + kalman->gain = cvCreateMat( DP, MP, CV_32FC1 ); + + if( CP > 0 ) + { + kalman->control_matrix = cvCreateMat( DP, CP, CV_32FC1 ); + cvZero( kalman->control_matrix ); + } + + kalman->temp1 = cvCreateMat( DP, DP, CV_32FC1 ); + kalman->temp2 = cvCreateMat( MP, DP, CV_32FC1 ); + kalman->temp3 = cvCreateMat( MP, MP, CV_32FC1 ); + kalman->temp4 = cvCreateMat( MP, DP, CV_32FC1 ); + kalman->temp5 = cvCreateMat( MP, 1, CV_32FC1 ); + +#if 1 + kalman->PosterState = kalman->state_pre->data.fl; + kalman->PriorState = kalman->state_post->data.fl; + kalman->DynamMatr = kalman->transition_matrix->data.fl; + kalman->MeasurementMatr = kalman->measurement_matrix->data.fl; + kalman->MNCovariance = kalman->measurement_noise_cov->data.fl; + kalman->PNCovariance = kalman->process_noise_cov->data.fl; + kalman->KalmGainMatr = kalman->gain->data.fl; + kalman->PriorErrorCovariance = kalman->error_cov_pre->data.fl; + kalman->PosterErrorCovariance = kalman->error_cov_post->data.fl; +#endif + + return kalman; +} + + +CV_IMPL void +cvReleaseKalman( CvKalman** _kalman ) +{ + CvKalman *kalman; + + if( !_kalman ) + CV_Error( CV_StsNullPtr, "" ); + + kalman = *_kalman; + if( !kalman ) + return; + + /* freeing the memory */ + cvReleaseMat( &kalman->state_pre ); + cvReleaseMat( &kalman->state_post ); + cvReleaseMat( &kalman->transition_matrix ); + cvReleaseMat( &kalman->control_matrix ); + cvReleaseMat( &kalman->measurement_matrix ); + cvReleaseMat( &kalman->process_noise_cov ); + cvReleaseMat( &kalman->measurement_noise_cov ); + cvReleaseMat( &kalman->error_cov_pre ); + cvReleaseMat( &kalman->gain ); + cvReleaseMat( &kalman->error_cov_post ); + cvReleaseMat( &kalman->temp1 ); + cvReleaseMat( &kalman->temp2 ); + cvReleaseMat( &kalman->temp3 ); + cvReleaseMat( &kalman->temp4 ); + cvReleaseMat( &kalman->temp5 ); + + memset( kalman, 0, sizeof(*kalman)); + + /* deallocating the structure */ + cvFree( _kalman ); +} + + +CV_IMPL const CvMat* +cvKalmanPredict( CvKalman* kalman, const CvMat* control ) +{ + if( !kalman ) + CV_Error( CV_StsNullPtr, "" ); + + /* update the state */ + /* x'(k) = A*x(k) */ + cvMatMulAdd( kalman->transition_matrix, kalman->state_post, 0, kalman->state_pre ); + + if( control && kalman->CP > 0 ) + /* x'(k) = x'(k) + B*u(k) */ + cvMatMulAdd( kalman->control_matrix, control, kalman->state_pre, kalman->state_pre ); + + /* update error covariance matrices */ + /* temp1 = A*P(k) */ + cvMatMulAdd( kalman->transition_matrix, kalman->error_cov_post, 0, kalman->temp1 ); + + /* P'(k) = temp1*At + Q */ + cvGEMM( kalman->temp1, kalman->transition_matrix, 1, kalman->process_noise_cov, 1, + kalman->error_cov_pre, CV_GEMM_B_T ); + + /* handle the case when there will be measurement before the next predict */ + cvCopy(kalman->state_pre, kalman->state_post); + + return kalman->state_pre; +} + + +CV_IMPL const CvMat* +cvKalmanCorrect( CvKalman* kalman, const CvMat* measurement ) +{ + if( !kalman || !measurement ) + CV_Error( CV_StsNullPtr, "" ); + + /* temp2 = H*P'(k) */ + cvMatMulAdd( kalman->measurement_matrix, kalman->error_cov_pre, 0, kalman->temp2 ); + /* temp3 = temp2*Ht + R */ + cvGEMM( kalman->temp2, kalman->measurement_matrix, 1, + kalman->measurement_noise_cov, 1, kalman->temp3, CV_GEMM_B_T ); + + /* temp4 = inv(temp3)*temp2 = Kt(k) */ + cvSolve( kalman->temp3, kalman->temp2, kalman->temp4, CV_SVD ); + + /* K(k) */ + cvTranspose( kalman->temp4, kalman->gain ); + + /* temp5 = z(k) - H*x'(k) */ + cvGEMM( kalman->measurement_matrix, kalman->state_pre, -1, measurement, 1, kalman->temp5 ); + + /* x(k) = x'(k) + K(k)*temp5 */ + cvMatMulAdd( kalman->gain, kalman->temp5, kalman->state_pre, kalman->state_post ); + + /* P(k) = P'(k) - K(k)*temp2 */ + cvGEMM( kalman->gain, kalman->temp2, -1, kalman->error_cov_pre, 1, + kalman->error_cov_post, 0 ); + + return kalman->state_post; +} + +///////////////////////////////////// Optical Flow //////////////////////////////// + +CV_IMPL void +cvCalcOpticalFlowPyrLK( const void* arrA, const void* arrB, + void* /*pyrarrA*/, void* /*pyrarrB*/, + const CvPoint2D32f * featuresA, + CvPoint2D32f * featuresB, + int count, CvSize winSize, int level, + char *status, float *error, + CvTermCriteria criteria, int flags ) +{ + if( count <= 0 ) + return; + CV_Assert( featuresA && featuresB ); + cv::Mat A = cv::cvarrToMat(arrA), B = cv::cvarrToMat(arrB); + cv::Mat ptA(count, 1, CV_32FC2, (void*)featuresA); + cv::Mat ptB(count, 1, CV_32FC2, (void*)featuresB); + cv::Mat st, err; + + if( status ) + st = cv::Mat(count, 1, CV_8U, (void*)status); + if( error ) + err = cv::Mat(count, 1, CV_32F, (void*)error); + cv::calcOpticalFlowPyrLK( A, B, ptA, ptB, st, + error ? cv::_OutputArray(err) : cv::noArray(), + winSize, level, criteria, flags); +} + + +CV_IMPL void cvCalcOpticalFlowFarneback( + const CvArr* _prev, const CvArr* _next, + CvArr* _flow, double pyr_scale, int levels, + int winsize, int iterations, int poly_n, + double poly_sigma, int flags ) +{ + cv::Mat prev = cv::cvarrToMat(_prev), next = cv::cvarrToMat(_next); + cv::Mat flow = cv::cvarrToMat(_flow); + CV_Assert( flow.size() == prev.size() && flow.type() == CV_32FC2 ); + cv::calcOpticalFlowFarneback( prev, next, flow, pyr_scale, levels, + winsize, iterations, poly_n, poly_sigma, flags ); +} + + +CV_IMPL int +cvEstimateRigidTransform( const CvArr* arrA, const CvArr* arrB, CvMat* arrM, int full_affine ) +{ + cv::Mat matA = cv::cvarrToMat(arrA), matB = cv::cvarrToMat(arrB); + const cv::Mat matM0 = cv::cvarrToMat(arrM); + + cv::Mat matM = cv::estimateRigidTransform(matA, matB, full_affine != 0); + if( matM.empty() ) + { + matM = cv::cvarrToMat(arrM); + matM.setTo(cv::Scalar::all(0)); + return 0; + } + matM.convertTo(matM0, matM0.type()); + return 1; +} diff --git a/modules/video/src/simpleflow.hpp b/modules/video/src/simpleflow.hpp deleted file mode 100644 index 363fdea168..0000000000 --- a/modules/video/src/simpleflow.hpp +++ /dev/null @@ -1,86 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef __OPENCV_SIMPLEFLOW_H__ -#define __OPENCV_SIMPLEFLOW_H__ - -#include - -#define MASK_TRUE_VALUE 255 -#define UNKNOWN_FLOW_THRESH 1e9 - -namespace cv { - -inline static float dist(const Vec3b& p1, const Vec3b& p2) { - return (float)((p1[0] - p2[0]) * (p1[0] - p2[0]) + - (p1[1] - p2[1]) * (p1[1] - p2[1]) + - (p1[2] - p2[2]) * (p1[2] - p2[2])); -} - -inline static float dist(const Vec2f& p1, const Vec2f& p2) { - return (p1[0] - p2[0]) * (p1[0] - p2[0]) + - (p1[1] - p2[1]) * (p1[1] - p2[1]); -} - -inline static float dist(const Point2f& p1, const Point2f& p2) { - return (p1.x - p2.x) * (p1.x - p2.x) + - (p1.y - p2.y) * (p1.y - p2.y); -} - -inline static float dist(float x1, float y1, float x2, float y2) { - return (x1 - x2) * (x1 - x2) + - (y1 - y2) * (y1 - y2); -} - -inline static int dist(int x1, int y1, int x2, int y2) { - return (x1 - x2) * (x1 - x2) + - (y1 - y2) * (y1 - y2); -} - -template -inline static T min(T t1, T t2, T t3) { - return (t1 <= t2 && t1 <= t3) ? t1 : min(t2, t3); -} - -} - -#endif From 07e0f7bf59d3e1b44f069c5005b6b3d81ce4ccf3 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Wed, 20 Mar 2013 19:51:49 +0400 Subject: [PATCH 0043/1333] refactored video module; use the new-style algorithms now --- modules/contrib/src/facerec.cpp | 2 +- .../core/include/opencv2/core/internal.hpp | 4 +- modules/gpu/perf/perf_video.cpp | 30 +- modules/gpu/test/test_bgfg.cpp | 14 +- modules/legacy/src/bgfg_gaussmix.cpp | 18 +- modules/ml/src/ml_init.cpp | 2 +- modules/nonfree/src/nonfree_init.cpp | 2 +- modules/python/src2/cv2.cpp | 1 + modules/softcascade/src/softcascade_init.cpp | 4 +- .../include/opencv2/video/background_segm.hpp | 220 ++-- .../video/include/opencv2/video/tracking.hpp | 25 +- modules/video/src/bgfg_gaussmix.cpp | 136 +- modules/video/src/bgfg_gaussmix2.cpp | 269 ++-- modules/video/src/bgfg_gmg.cpp | 193 ++- modules/video/src/camshift.cpp | 362 ++---- modules/video/src/ecc.cpp | 15 - modules/video/src/kalman.cpp | 170 --- modules/video/src/lkpyramid.cpp | 1135 ++--------------- modules/video/src/motempl.cpp | 542 ++++---- modules/video/src/optflowgf.cpp | 15 - modules/video/src/simpleflow.cpp | 34 +- modules/video/src/video_init.cpp | 43 +- .../test/test_backgroundsubtractor_gbh.cpp | 108 +- modules/video/test/test_estimaterigid.cpp | 2 +- samples/cpp/bgfg_gmg.cpp | 9 +- samples/cpp/bgfg_segm.cpp | 6 +- samples/cpp/segment_objects.cpp | 6 +- samples/gpu/performance/tests.cpp | 16 +- 28 files changed, 1113 insertions(+), 2270 deletions(-) diff --git a/modules/contrib/src/facerec.cpp b/modules/contrib/src/facerec.cpp index 9ce082819e..fedaeab880 100644 --- a/modules/contrib/src/facerec.cpp +++ b/modules/contrib/src/facerec.cpp @@ -893,7 +893,7 @@ CV_INIT_ALGORITHM(LBPH, "FaceRecognizer.LBPH", bool initModule_contrib() { - Ptr efaces = createEigenfaces(), ffaces = createFisherfaces(), lbph = createLBPH(); + Ptr efaces = createEigenfaces_hidden(), ffaces = createFisherfaces_hidden(), lbph = createLBPH_hidden(); return efaces->info() != 0 && ffaces->info() != 0 && lbph->info() != 0; } diff --git a/modules/core/include/opencv2/core/internal.hpp b/modules/core/include/opencv2/core/internal.hpp index 1faa0944a5..d8a623fbb5 100644 --- a/modules/core/include/opencv2/core/internal.hpp +++ b/modules/core/include/opencv2/core/internal.hpp @@ -254,14 +254,14 @@ namespace cv } //namespace cv #define CV_INIT_ALGORITHM(classname, algname, memberinit) \ - static ::cv::Algorithm* create##classname() \ + static ::cv::Algorithm* create##classname##_hidden() \ { \ return new classname; \ } \ \ static ::cv::AlgorithmInfo& classname##_info() \ { \ - static ::cv::AlgorithmInfo classname##_info_var(algname, create##classname); \ + static ::cv::AlgorithmInfo classname##_info_var(algname, create##classname##_hidden); \ return classname##_info_var; \ } \ \ diff --git a/modules/gpu/perf/perf_video.cpp b/modules/gpu/perf/perf_video.cpp index 61c2687ca9..69dadc9838 100644 --- a/modules/gpu/perf/perf_video.cpp +++ b/modules/gpu/perf/perf_video.cpp @@ -614,10 +614,10 @@ PERF_TEST_P(Video_Cn_LearningRate, Video_MOG, } else { - cv::BackgroundSubtractorMOG mog; + cv::Ptr mog = cv::createBackgroundSubtractorMOG(); cv::Mat foreground; - mog(frame, foreground, learningRate); + mog->apply(frame, foreground, learningRate); for (int i = 0; i < 10; ++i) { @@ -635,7 +635,7 @@ PERF_TEST_P(Video_Cn_LearningRate, Video_MOG, } startTimer(); next(); - mog(frame, foreground, learningRate); + mog->apply(frame, foreground, learningRate); stopTimer(); } @@ -709,12 +709,12 @@ PERF_TEST_P(Video_Cn, Video_MOG2, } else { - cv::BackgroundSubtractorMOG2 mog2; - mog2.set("detectShadows", false); + cv::Ptr mog2 = cv::createBackgroundSubtractorMOG2(); + mog2->set("detectShadows", false); cv::Mat foreground; - mog2(frame, foreground); + mog2->apply(frame, foreground); for (int i = 0; i < 10; ++i) { @@ -732,7 +732,7 @@ PERF_TEST_P(Video_Cn, Video_MOG2, } startTimer(); next(); - mog2(frame, foreground); + mog2->apply(frame, foreground); stopTimer(); } @@ -789,7 +789,7 @@ PERF_TEST_P(Video_Cn, Video_MOG2GetBackgroundImage, } else { - cv::BackgroundSubtractorMOG2 mog2; + cv::Ptr mog2 = cv::createBackgroundSubtractorMOG2(); cv::Mat foreground; for (int i = 0; i < 10; ++i) @@ -807,12 +807,12 @@ PERF_TEST_P(Video_Cn, Video_MOG2GetBackgroundImage, cv::swap(temp, frame); } - mog2(frame, foreground); + mog2->apply(frame, foreground); } cv::Mat background; - TEST_CYCLE() mog2.getBackgroundImage(background); + TEST_CYCLE() mog2->getBackgroundImage(background); CPU_SANITY_CHECK(background); } @@ -958,11 +958,11 @@ PERF_TEST_P(Video_Cn_MaxFeatures, Video_GMG, cv::Mat foreground; cv::Mat zeros(frame.size(), CV_8UC1, cv::Scalar::all(0)); - cv::BackgroundSubtractorGMG gmg; - gmg.set("maxFeatures", maxFeatures); - gmg.initialize(frame.size(), 0.0, 255.0); + cv::Ptr gmg = cv::createBackgroundSubtractorGMG(); + gmg->set("maxFeatures", maxFeatures); + //gmg.initialize(frame.size(), 0.0, 255.0); - gmg(frame, foreground); + gmg->apply(frame, foreground); for (int i = 0; i < 150; ++i) { @@ -985,7 +985,7 @@ PERF_TEST_P(Video_Cn_MaxFeatures, Video_GMG, } startTimer(); next(); - gmg(frame, foreground); + gmg->apply(frame, foreground); stopTimer(); } diff --git a/modules/gpu/test/test_bgfg.cpp b/modules/gpu/test/test_bgfg.cpp index ebf0a88afa..b56d7ad869 100644 --- a/modules/gpu/test/test_bgfg.cpp +++ b/modules/gpu/test/test_bgfg.cpp @@ -245,8 +245,8 @@ GPU_TEST_P(MOG2, Update) mog2.bShadowDetection = detectShadow; cv::gpu::GpuMat foreground = createMat(frame.size(), CV_8UC1, useRoi); - cv::BackgroundSubtractorMOG2 mog2_gold; - mog2_gold.set("detectShadows", detectShadow); + cv::Ptr mog2_gold = cv::createBackgroundSubtractorMOG2(); + mog2_gold.setDetectShadows(detectShadow); cv::Mat foreground_gold; for (int i = 0; i < 10; ++i) @@ -263,7 +263,7 @@ GPU_TEST_P(MOG2, Update) mog2(loadMat(frame, useRoi), foreground); - mog2_gold(frame, foreground_gold); + mog2_gold->apply(frame, foreground_gold); if (detectShadow) { @@ -290,8 +290,8 @@ GPU_TEST_P(MOG2, getBackgroundImage) mog2.bShadowDetection = detectShadow; cv::gpu::GpuMat foreground; - cv::BackgroundSubtractorMOG2 mog2_gold; - mog2_gold.set("detectShadows", detectShadow); + cv::Ptr mog2_gold = cv::createBackgroundSubtractorMOG2(); + mog2_gold.setDetectShadows(detectShadow); cv::Mat foreground_gold; for (int i = 0; i < 10; ++i) @@ -301,14 +301,14 @@ GPU_TEST_P(MOG2, getBackgroundImage) mog2(loadMat(frame, useRoi), foreground); - mog2_gold(frame, foreground_gold); + mog2_gold->apply(frame, foreground_gold); } cv::gpu::GpuMat background = createMat(frame.size(), frame.type(), useRoi); mog2.getBackgroundImage(background); cv::Mat background_gold; - mog2_gold.getBackgroundImage(background_gold); + mog2_gold->getBackgroundImage(background_gold); ASSERT_MAT_NEAR(background_gold, background, 0); } diff --git a/modules/legacy/src/bgfg_gaussmix.cpp b/modules/legacy/src/bgfg_gaussmix.cpp index f4c65f55c3..e678bdfd6c 100644 --- a/modules/legacy/src/bgfg_gaussmix.cpp +++ b/modules/legacy/src/bgfg_gaussmix.cpp @@ -50,7 +50,7 @@ icvReleaseGaussianBGModel( CvGaussBGModel** bg_model ) if( *bg_model ) { - delete (cv::BackgroundSubtractorMOG*)((*bg_model)->mog); + delete (cv::Ptr*)((*bg_model)->mog); cvReleaseImage( &(*bg_model)->background ); cvReleaseImage( &(*bg_model)->foreground ); memset( *bg_model, 0, sizeof(**bg_model) ); @@ -65,10 +65,10 @@ icvUpdateGaussianBGModel( IplImage* curr_frame, CvGaussBGModel* bg_model, doubl { cv::Mat image = cv::cvarrToMat(curr_frame), mask = cv::cvarrToMat(bg_model->foreground); - cv::BackgroundSubtractorMOG* mog = (cv::BackgroundSubtractorMOG*)(bg_model->mog); + cv::Ptr* mog = (cv::Ptr*)(bg_model->mog); CV_Assert(mog != 0); - (*mog)(image, mask, learningRate); + (*mog)->apply(image, mask, learningRate); bg_model->countFrames++; return 0; @@ -105,13 +105,11 @@ cvCreateGaussianBGModel( IplImage* first_frame, CvGaussBGStatModelParams* parame bg_model->params = params; - cv::BackgroundSubtractorMOG* mog = - new cv::BackgroundSubtractorMOG(params.win_size, - params.n_gauss, - params.bg_threshold, - params.variance_init); - - bg_model->mog = mog; + cv::Ptr mog = cv::createBackgroundSubtractorMOG(params.win_size, params.n_gauss, + params.bg_threshold); + cv::Ptr* pmog = new cv::Ptr; + *pmog = mog; + bg_model->mog = pmog; CvSize sz = cvGetSize(first_frame); bg_model->background = cvCreateImage(sz, IPL_DEPTH_8U, first_frame->nChannels); diff --git a/modules/ml/src/ml_init.cpp b/modules/ml/src/ml_init.cpp index 276f6f5d47..3d6669c263 100644 --- a/modules/ml/src/ml_init.cpp +++ b/modules/ml/src/ml_init.cpp @@ -56,7 +56,7 @@ CV_INIT_ALGORITHM(EM, "StatModel.EM", bool initModule_ml(void) { - Ptr em = createEM(); + Ptr em = createEM_hidden(); return em->info() != 0; } diff --git a/modules/nonfree/src/nonfree_init.cpp b/modules/nonfree/src/nonfree_init.cpp index 3c530e3257..827853cfd6 100644 --- a/modules/nonfree/src/nonfree_init.cpp +++ b/modules/nonfree/src/nonfree_init.cpp @@ -67,7 +67,7 @@ CV_INIT_ALGORITHM(SIFT, "Feature2D.SIFT", bool initModule_nonfree(void) { - Ptr sift = createSIFT(), surf = createSURF(); + Ptr sift = createSIFT_hidden(), surf = createSURF_hidden(); return sift->info() != 0 && surf->info() != 0; } diff --git a/modules/python/src2/cv2.cpp b/modules/python/src2/cv2.cpp index bbdd5abbe7..8f4e3ee4fd 100644 --- a/modules/python/src2/cv2.cpp +++ b/modules/python/src2/cv2.cpp @@ -125,6 +125,7 @@ typedef Ptr Ptr_FeatureDetector; typedef Ptr Ptr_DescriptorExtractor; typedef Ptr Ptr_Feature2D; typedef Ptr Ptr_DescriptorMatcher; +typedef Ptr Ptr_BackgroundSubtractor; typedef Ptr Ptr_ChannelFeatureBuilder; diff --git a/modules/softcascade/src/softcascade_init.cpp b/modules/softcascade/src/softcascade_init.cpp index 9563ac629a..a30f936e6b 100644 --- a/modules/softcascade/src/softcascade_init.cpp +++ b/modules/softcascade/src/softcascade_init.cpp @@ -58,8 +58,8 @@ CV_INIT_ALGORITHM(SCascade, "CascadeDetector.SCascade", bool initModule_softcascade(void) { - Ptr sc = createSCascade(); - Ptr sc1 = createDetector(); + Ptr sc = createSCascade_hidden(); + Ptr sc1 = createDetector_hidden(); return (sc1->info() != 0) && (sc->info() != 0); } diff --git a/modules/video/include/opencv2/video/background_segm.hpp b/modules/video/include/opencv2/video/background_segm.hpp index 91e9900aaf..fe90ed8e4e 100644 --- a/modules/video/include/opencv2/video/background_segm.hpp +++ b/modules/video/include/opencv2/video/background_segm.hpp @@ -12,6 +12,7 @@ // // Copyright (C) 2000-2008, Intel Corporation, all rights reserved. // Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. // Third party copyrights are property of their respective owners. // // Redistribution and use in source and binary forms, with or without modification, @@ -54,17 +55,14 @@ namespace cv The class is only used to define the common interface for the whole family of background/foreground segmentation algorithms. */ -class CV_EXPORTS_W BackgroundSubtractor : public Algorithm +class BackgroundSubtractor : public Algorithm { public: - //! the virtual destructor - virtual ~BackgroundSubtractor(); //! the update operator that takes the next video frame and returns the current foreground mask as 8-bit binary image. - CV_WRAP_AS(apply) virtual void operator()(InputArray image, OutputArray fgmask, - double learningRate=0); + virtual void apply(InputArray image, OutputArray fgmask, double learningRate=0) = 0; //! computes a background image - virtual void getBackgroundImage(OutputArray backgroundImage) const; + virtual void getBackgroundImage(OutputArray backgroundImage) const = 0; }; @@ -78,35 +76,26 @@ public: http://personal.ee.surrey.ac.uk/Personal/R.Bowden/publications/avbs01/avbs01.pdf */ -class CV_EXPORTS_W BackgroundSubtractorMOG : public BackgroundSubtractor +class BackgroundSubtractorMOG : public BackgroundSubtractor { public: - //! the default constructor - CV_WRAP BackgroundSubtractorMOG(); - //! the full constructor that takes the length of the history, the number of gaussian mixtures, the background ratio parameter and the noise strength - CV_WRAP BackgroundSubtractorMOG(int history, int nmixtures, double backgroundRatio, double noiseSigma=0); - //! the destructor - virtual ~BackgroundSubtractorMOG(); - //! the update operator - virtual void operator()(InputArray image, OutputArray fgmask, double learningRate=0); + virtual int getHistory() const = 0; + virtual void setHistory(int nframes) = 0; - //! re-initiaization method - virtual void initialize(Size frameSize, int frameType); + virtual int getNMixtures() const = 0; + virtual void setNMixtures(int nmix) = 0; - virtual AlgorithmInfo* info() const; + virtual double getBackgroundRatio() const = 0; + virtual void setBackgroundRatio(double backgroundRatio) = 0; -protected: - Size frameSize; - int frameType; - Mat bgmodel; - int nframes; - int history; - int nmixtures; - double varThreshold; - double backgroundRatio; - double noiseSigma; + virtual double getNoiseSigma() const = 0; + virtual void setNoiseSigma(double noiseSigma) = 0; }; +CV_EXPORTS Ptr + createBackgroundSubtractorMOG(int history=200, int nmixtures=5, + double backgroundRatio=0.7, double noiseSigma=0); + /*! The class implements the following algorithm: @@ -114,82 +103,51 @@ protected: Z.Zivkovic International Conference Pattern Recognition, UK, August, 2004. http://www.zoranz.net/Publications/zivkovic2004ICPR.pdf -*/ -class CV_EXPORTS BackgroundSubtractorMOG2 : public BackgroundSubtractor + */ +class BackgroundSubtractorMOG2 : public BackgroundSubtractor { public: - //! the default constructor - BackgroundSubtractorMOG2(); - //! the full constructor that takes the length of the history, the number of gaussian mixtures, the background ratio parameter and the noise strength - BackgroundSubtractorMOG2(int history, float varThreshold, bool bShadowDetection=true); - //! the destructor - virtual ~BackgroundSubtractorMOG2(); - //! the update operator - virtual void operator()(InputArray image, OutputArray fgmask, double learningRate=-1); + virtual int getHistory() const = 0; + virtual void setHistory(int nframes) = 0; - //! computes a background image which are the mean of all background gaussians - virtual void getBackgroundImage(OutputArray backgroundImage) const; + virtual int getNMixtures() const = 0; + virtual void setNMixtures(int nmix) = 0; - //! re-initiaization method - virtual void initialize(Size frameSize, int frameType); + virtual double getBackgroundRatio() const = 0; + virtual void setBackgroundRatio(double backgroundRatio) = 0; - virtual AlgorithmInfo* info() const; + virtual double getVarThreshold() const = 0; + virtual void setVarThreshold(double varThreshold) = 0; -protected: - Size frameSize; - int frameType; - Mat bgmodel; - Mat bgmodelUsedModes;//keep track of number of modes per pixel - int nframes; - int history; - int nmixtures; - //! here it is the maximum allowed number of mixture components. - //! Actual number is determined dynamically per pixel - double varThreshold; - // threshold on the squared Mahalanobis distance to decide if it is well described - // by the background model or not. Related to Cthr from the paper. - // This does not influence the update of the background. A typical value could be 4 sigma - // and that is varThreshold=4*4=16; Corresponds to Tb in the paper. + virtual double getVarThresholdGen() const = 0; + virtual void setVarThresholdGen(double varThresholdGen) = 0; - ///////////////////////// - // less important parameters - things you might change but be carefull - //////////////////////// - float backgroundRatio; - // corresponds to fTB=1-cf from the paper - // TB - threshold when the component becomes significant enough to be included into - // the background model. It is the TB=1-cf from the paper. So I use cf=0.1 => TB=0. - // For alpha=0.001 it means that the mode should exist for approximately 105 frames before - // it is considered foreground - // float noiseSigma; - float varThresholdGen; - //correspondts to Tg - threshold on the squared Mahalan. dist. to decide - //when a sample is close to the existing components. If it is not close - //to any a new component will be generated. I use 3 sigma => Tg=3*3=9. - //Smaller Tg leads to more generated components and higher Tg might make - //lead to small number of components but they can grow too large - float fVarInit; - float fVarMin; - float fVarMax; - //initial variance for the newly generated components. - //It will will influence the speed of adaptation. A good guess should be made. - //A simple way is to estimate the typical standard deviation from the images. - //I used here 10 as a reasonable value - // min and max can be used to further control the variance - float fCT;//CT - complexity reduction prior - //this is related to the number of samples needed to accept that a component - //actually exists. We use CT=0.05 of all the samples. By setting CT=0 you get - //the standard Stauffer&Grimson algorithm (maybe not exact but very similar) + virtual double getVarInit() const = 0; + virtual void setVarInit(double varInit) = 0; - //shadow detection parameters - bool bShadowDetection;//default 1 - do shadow detection - unsigned char nShadowDetection;//do shadow detection - insert this value as the detection result - 127 default value - float fTau; - // Tau - shadow threshold. The shadow is detected if the pixel is darker - //version of the background. Tau is a threshold on how much darker the shadow can be. - //Tau= 0.5 means that if pixel is more than 2 times darker then it is not shadow - //See: Prati,Mikic,Trivedi,Cucchiarra,"Detecting Moving Shadows...",IEEE PAMI,2003. + virtual double getVarMin() const = 0; + virtual void setVarMin(double varMin) = 0; + + virtual double getVarMax() const = 0; + virtual void setVarMax(double varMax) = 0; + + virtual double getComplexityReductionThreshold() const = 0; + virtual void setComplexityReductionThreshold(double ct) = 0; + + virtual bool getDetectShadows() const = 0; + virtual void setDetectShadows(bool detectshadows) = 0; + + virtual int getShadowValue() const = 0; + virtual void setShadowValue(int value) = 0; + + virtual double getShadowThreshold() const = 0; + virtual void setShadowThreshold(double value) = 0; }; +CV_EXPORTS Ptr + createBackgroundSubtractorMOG2(int history=500, double varThreshold=16, + bool detectShadows=true); + /** * Background Subtractor module. Takes a series of images and returns a sequence of mask (8UC1) * images of the same size, where 255 indicates Foreground and 0 represents Background. @@ -197,66 +155,44 @@ protected: * Variable-Lighting Conditions for a Responsive Audio Art Installation," A. Godbehere, * A. Matsukawa, K. Goldberg, American Control Conference, Montreal, June 2012. */ -class CV_EXPORTS BackgroundSubtractorGMG: public cv::BackgroundSubtractor +class BackgroundSubtractorGMG : public BackgroundSubtractor { public: - BackgroundSubtractorGMG(); - virtual ~BackgroundSubtractorGMG(); - virtual AlgorithmInfo* info() const; + virtual int getMaxFeatures() const = 0; + virtual void setMaxFeatures(int maxFeatures) = 0; - /** - * Validate parameters and set up data structures for appropriate image size. - * Must call before running on data. - * @param frameSize input frame size - * @param min minimum value taken on by pixels in image sequence. Usually 0 - * @param max maximum value taken on by pixels in image sequence. e.g. 1.0 or 255 - */ - void initialize(cv::Size frameSize, double min, double max); + virtual double getDefaultLearningRate() const = 0; + virtual void setDefaultLearningRate(double lr) = 0; - /** - * Performs single-frame background subtraction and builds up a statistical background image - * model. - * @param image Input image - * @param fgmask Output mask image representing foreground and background pixels - */ - virtual void operator()(InputArray image, OutputArray fgmask, double learningRate=-1.0); + virtual int getNumFrames() const = 0; + virtual void setNumFrames(int nframes) = 0; - /** - * Releases all inner buffers. - */ - void release(); + virtual int getQuantizationLevels() const = 0; + virtual void setQuantizationLevels(int nlevels) = 0; - //! Total number of distinct colors to maintain in histogram. - int maxFeatures; - //! Set between 0.0 and 1.0, determines how quickly features are "forgotten" from histograms. - double learningRate; - //! Number of frames of video to use to initialize histograms. - int numInitializationFrames; - //! Number of discrete levels in each channel to be used in histograms. - int quantizationLevels; - //! Prior probability that any given pixel is a background pixel. A sensitivity parameter. - double backgroundPrior; - //! Value above which pixel is determined to be FG. - double decisionThreshold; - //! Smoothing radius, in pixels, for cleaning up FG image. - int smoothingRadius; - //! Perform background model update - bool updateBackgroundModel; + virtual double getBackgroundPrior() const = 0; + virtual void setBackgroundPrior(double bgprior) = 0; -private: - double maxVal_; - double minVal_; + virtual int getSmoothingRadius() const = 0; + virtual void setSmoothingRadius(int radius) = 0; - cv::Size frameSize_; - int frameNum_; + virtual double getDecisionThreshold() const = 0; + virtual void setDecisionThreshold(double thresh) = 0; - cv::Mat_ nfeatures_; - cv::Mat_ colors_; - cv::Mat_ weights_; + virtual bool getUpdateBackgroundModel() const = 0; + virtual void setUpdateBackgroundModel(bool update) = 0; - cv::Mat buf_; + virtual double getMinVal() const = 0; + virtual void setMinVal(double val) = 0; + + virtual double getMaxVal() const = 0; + virtual void setMaxVal(double val) = 0; }; + +CV_EXPORTS Ptr createBackgroundSubtractorGMG(int initializationFrames=120, + double decisionThreshold=0.8); + } #endif diff --git a/modules/video/include/opencv2/video/tracking.hpp b/modules/video/include/opencv2/video/tracking.hpp index ed322ef770..01f80c2de5 100644 --- a/modules/video/include/opencv2/video/tracking.hpp +++ b/modules/video/include/opencv2/video/tracking.hpp @@ -219,23 +219,6 @@ CVAPI(const CvMat*) cvKalmanCorrect( CvKalman* kalman, const CvMat* measurement #define cvKalmanUpdateByMeasurement cvKalmanCorrect -/****************************************************************************************\ -* Image Alignment (ECC algorithm) * -\****************************************************************************************/ -enum -{ - MOTION_TRANSLATION, - MOTION_EUCLIDEAN, - MOTION_AFFINE, - MOTION_HOMOGRAPHY -}; - -/* Estimate the geometric transformation between 2 images (area-based alignment) */ -CVAPI(double) cvFindTransformECC (const CvArr* templateImage, const CvArr* inputImage, - CvMat* warpMatrix, - const int motionType, - const CvTermCriteria criteria); - #ifdef __cplusplus } @@ -341,6 +324,14 @@ CV_EXPORTS_W void calcOpticalFlowFarneback( InputArray prev, InputArray next, CV_EXPORTS_W Mat estimateRigidTransform( InputArray src, InputArray dst, bool fullAffine); +enum +{ + MOTION_TRANSLATION=0, + MOTION_EUCLIDEAN=1, + MOTION_AFFINE=2, + MOTION_HOMOGRAPHY=3 +}; + //! estimates the best-fit Translation, Euclidean, Affine or Perspective Transformation // with respect to Enhanced Correlation Coefficient criterion that maps one image to // another (area-based alignment) diff --git a/modules/video/src/bgfg_gaussmix.cpp b/modules/video/src/bgfg_gaussmix.cpp index be3732be58..43e1d1ce7a 100644 --- a/modules/video/src/bgfg_gaussmix.cpp +++ b/modules/video/src/bgfg_gaussmix.cpp @@ -7,9 +7,11 @@ // copy or use the software. // // -// Intel License Agreement +// License Agreement +// For Open Source Computer Vision Library // // Copyright (C) 2000, Intel Corporation, all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. // Third party copyrights are property of their respective owners. // // Redistribution and use in source and binary forms, with or without modification, @@ -22,7 +24,7 @@ // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // -// * The name of Intel Corporation may not be used to endorse or promote products +// * The name of the copyright holders may not be used to endorse or promote products // derived from this software without specific prior written permission. // // This software is provided by the copyright holders and contributors "as is" and @@ -58,15 +60,6 @@ namespace cv { -BackgroundSubtractor::~BackgroundSubtractor() {} -void BackgroundSubtractor::operator()(InputArray, OutputArray, double) -{ -} - -void BackgroundSubtractor::getBackgroundImage(OutputArray) const -{ -} - static const int defaultNMixtures = 5; static const int defaultHistory = 200; static const double defaultBackgroundRatio = 0.7; @@ -74,55 +67,88 @@ static const double defaultVarThreshold = 2.5*2.5; static const double defaultNoiseSigma = 30*0.5; static const double defaultInitialWeight = 0.05; -BackgroundSubtractorMOG::BackgroundSubtractorMOG() +class BackgroundSubtractorMOGImpl : public BackgroundSubtractorMOG { - frameSize = Size(0,0); - frameType = 0; +public: + //! the default constructor + BackgroundSubtractorMOGImpl() + { + frameSize = Size(0,0); + frameType = 0; - nframes = 0; - nmixtures = defaultNMixtures; - history = defaultHistory; - varThreshold = defaultVarThreshold; - backgroundRatio = defaultBackgroundRatio; - noiseSigma = defaultNoiseSigma; -} + nframes = 0; + nmixtures = defaultNMixtures; + history = defaultHistory; + varThreshold = defaultVarThreshold; + backgroundRatio = defaultBackgroundRatio; + noiseSigma = defaultNoiseSigma; + } + // the full constructor that takes the length of the history, + // the number of gaussian mixtures, the background ratio parameter and the noise strength + BackgroundSubtractorMOGImpl(int _history, int _nmixtures, double _backgroundRatio, double _noiseSigma=0) + { + frameSize = Size(0,0); + frameType = 0; -BackgroundSubtractorMOG::BackgroundSubtractorMOG(int _history, int _nmixtures, - double _backgroundRatio, - double _noiseSigma) -{ - frameSize = Size(0,0); - frameType = 0; + nframes = 0; + nmixtures = std::min(_nmixtures > 0 ? _nmixtures : defaultNMixtures, 8); + history = _history > 0 ? _history : defaultHistory; + varThreshold = defaultVarThreshold; + backgroundRatio = std::min(_backgroundRatio > 0 ? _backgroundRatio : 0.95, 1.); + noiseSigma = _noiseSigma <= 0 ? defaultNoiseSigma : _noiseSigma; + } - nframes = 0; - nmixtures = std::min(_nmixtures > 0 ? _nmixtures : defaultNMixtures, 8); - history = _history > 0 ? _history : defaultHistory; - varThreshold = defaultVarThreshold; - backgroundRatio = std::min(_backgroundRatio > 0 ? _backgroundRatio : 0.95, 1.); - noiseSigma = _noiseSigma <= 0 ? defaultNoiseSigma : _noiseSigma; -} + //! the update operator + virtual void apply(InputArray image, OutputArray fgmask, double learningRate=0); -BackgroundSubtractorMOG::~BackgroundSubtractorMOG() -{ -} + //! re-initiaization method + virtual void initialize(Size _frameSize, int _frameType) + { + frameSize = _frameSize; + frameType = _frameType; + nframes = 0; + int nchannels = CV_MAT_CN(frameType); + CV_Assert( CV_MAT_DEPTH(frameType) == CV_8U ); -void BackgroundSubtractorMOG::initialize(Size _frameSize, int _frameType) -{ - frameSize = _frameSize; - frameType = _frameType; - nframes = 0; + // for each gaussian mixture of each pixel bg model we store ... + // the mixture sort key (w/sum_of_variances), the mixture weight (w), + // the mean (nchannels values) and + // the diagonal covariance matrix (another nchannels values) + bgmodel.create( 1, frameSize.height*frameSize.width*nmixtures*(2 + 2*nchannels), CV_32F ); + bgmodel = Scalar::all(0); + } - int nchannels = CV_MAT_CN(frameType); - CV_Assert( CV_MAT_DEPTH(frameType) == CV_8U ); + virtual AlgorithmInfo* info() const { return 0; } - // for each gaussian mixture of each pixel bg model we store ... - // the mixture sort key (w/sum_of_variances), the mixture weight (w), - // the mean (nchannels values) and - // the diagonal covariance matrix (another nchannels values) - bgmodel.create( 1, frameSize.height*frameSize.width*nmixtures*(2 + 2*nchannels), CV_32F ); - bgmodel = Scalar::all(0); -} + virtual void getBackgroundImage(OutputArray) const + { + CV_Error( CV_StsNotImplemented, "" ); + } + + virtual int getHistory() const { return history; } + virtual void setHistory(int _nframes) { history = _nframes; } + + virtual int getNMixtures() const { return nmixtures; } + virtual void setNMixtures(int nmix) { nmixtures = nmix; } + + virtual double getBackgroundRatio() const { return backgroundRatio; } + virtual void setBackgroundRatio(double _backgroundRatio) { backgroundRatio = _backgroundRatio; } + + virtual double getNoiseSigma() const { return noiseSigma; } + virtual void setNoiseSigma(double _noiseSigma) { noiseSigma = _noiseSigma; } + +protected: + Size frameSize; + int frameType; + Mat bgmodel; + int nframes; + int history; + int nmixtures; + double varThreshold; + double backgroundRatio; + double noiseSigma; +}; template struct MixData @@ -391,7 +417,7 @@ static void process8uC3( const Mat& image, Mat& fgmask, double learningRate, } } -void BackgroundSubtractorMOG::operator()(InputArray _image, OutputArray _fgmask, double learningRate) +void BackgroundSubtractorMOGImpl::apply(InputArray _image, OutputArray _fgmask, double learningRate) { Mat image = _image.getMat(); bool needToInitialize = nframes == 0 || learningRate >= 1 || image.size() != frameSize || image.type() != frameType; @@ -415,6 +441,12 @@ void BackgroundSubtractorMOG::operator()(InputArray _image, OutputArray _fgmask, CV_Error( CV_StsUnsupportedFormat, "Only 1- and 3-channel 8-bit images are supported in BackgroundSubtractorMOG" ); } +Ptr createBackgroundSubtractorMOG(int history, int nmixtures, + double backgroundRatio, double noiseSigma) +{ + return new BackgroundSubtractorMOGImpl(history, nmixtures, backgroundRatio, noiseSigma); +} + } /* End of file. */ diff --git a/modules/video/src/bgfg_gaussmix2.cpp b/modules/video/src/bgfg_gaussmix2.cpp index e764348b4f..00857a6f0b 100644 --- a/modules/video/src/bgfg_gaussmix2.cpp +++ b/modules/video/src/bgfg_gaussmix2.cpp @@ -7,9 +7,11 @@ // copy or use the software. // // -// Intel License Agreement +// License Agreement +// For Open Source Computer Vision Library // // Copyright (C) 2000, Intel Corporation, all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. // Third party copyrights are property of their respective owners. // // Redistribution and use in source and binary forms, with or without modification, @@ -22,7 +24,7 @@ // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // -// * The name of Intel Corporation may not be used to endorse or promote products +// * The name of the copyright holders may not be used to endorse or promote products // derived from this software without specific prior written permission. // // This software is provided by the copyright holders and contributors "as is" and @@ -114,6 +116,176 @@ static const float defaultfCT2 = 0.05f; // complexity reduction prior constant 0 static const unsigned char defaultnShadowDetection2 = (unsigned char)127; // value to use in the segmentation mask for shadows, set 0 not to do shadow detection static const float defaultfTau = 0.5f; // Tau - shadow threshold, see the paper for explanation + +class CV_EXPORTS BackgroundSubtractorMOG2Impl : public BackgroundSubtractorMOG2 +{ +public: + //! the default constructor + BackgroundSubtractorMOG2Impl() + { + frameSize = Size(0,0); + frameType = 0; + + nframes = 0; + history = defaultHistory2; + varThreshold = defaultVarThreshold2; + bShadowDetection = 1; + + nmixtures = defaultNMixtures2; + backgroundRatio = defaultBackgroundRatio2; + fVarInit = defaultVarInit2; + fVarMax = defaultVarMax2; + fVarMin = defaultVarMin2; + + varThresholdGen = defaultVarThresholdGen2; + fCT = defaultfCT2; + nShadowDetection = defaultnShadowDetection2; + fTau = defaultfTau; + } + //! the full constructor that takes the length of the history, + // the number of gaussian mixtures, the background ratio parameter and the noise strength + BackgroundSubtractorMOG2Impl(int _history, float _varThreshold, bool _bShadowDetection=true) + { + frameSize = Size(0,0); + frameType = 0; + + nframes = 0; + history = _history > 0 ? _history : defaultHistory2; + varThreshold = (_varThreshold>0)? _varThreshold : defaultVarThreshold2; + bShadowDetection = _bShadowDetection; + + nmixtures = defaultNMixtures2; + backgroundRatio = defaultBackgroundRatio2; + fVarInit = defaultVarInit2; + fVarMax = defaultVarMax2; + fVarMin = defaultVarMin2; + + varThresholdGen = defaultVarThresholdGen2; + fCT = defaultfCT2; + nShadowDetection = defaultnShadowDetection2; + fTau = defaultfTau; + } + //! the destructor + ~BackgroundSubtractorMOG2Impl() {} + //! the update operator + void apply(InputArray image, OutputArray fgmask, double learningRate=-1); + + //! computes a background image which are the mean of all background gaussians + virtual void getBackgroundImage(OutputArray backgroundImage) const; + + //! re-initiaization method + void initialize(Size _frameSize, int _frameType) + { + frameSize = _frameSize; + frameType = _frameType; + nframes = 0; + + int nchannels = CV_MAT_CN(frameType); + CV_Assert( nchannels <= CV_CN_MAX ); + + // for each gaussian mixture of each pixel bg model we store ... + // the mixture weight (w), + // the mean (nchannels values) and + // the covariance + bgmodel.create( 1, frameSize.height*frameSize.width*nmixtures*(2 + nchannels), CV_32F ); + //make the array for keeping track of the used modes per pixel - all zeros at start + bgmodelUsedModes.create(frameSize,CV_8U); + bgmodelUsedModes = Scalar::all(0); + } + + virtual AlgorithmInfo* info() const { return 0; } + + virtual int getHistory() const { return history; } + virtual void setHistory(int _nframes) { history = _nframes; } + + virtual int getNMixtures() const { return nmixtures; } + virtual void setNMixtures(int nmix) { nmixtures = nmix; } + + virtual double getBackgroundRatio() const { return backgroundRatio; } + virtual void setBackgroundRatio(double _backgroundRatio) { backgroundRatio = (float)_backgroundRatio; } + + virtual double getVarThreshold() const { return varThreshold; } + virtual void setVarThreshold(double _varThreshold) { varThreshold = _varThreshold; } + + virtual double getVarThresholdGen() const { return varThresholdGen; } + virtual void setVarThresholdGen(double _varThresholdGen) { varThresholdGen = (float)_varThresholdGen; } + + virtual double getVarInit() const { return fVarInit; } + virtual void setVarInit(double varInit) { fVarInit = (float)varInit; } + + virtual double getVarMin() const { return fVarMin; } + virtual void setVarMin(double varMin) { fVarMin = (float)varMin; } + + virtual double getVarMax() const { return fVarMax; } + virtual void setVarMax(double varMax) { fVarMax = (float)varMax; } + + virtual double getComplexityReductionThreshold() const { return fCT; } + virtual void setComplexityReductionThreshold(double ct) { fCT = (float)ct; } + + virtual bool getDetectShadows() const { return bShadowDetection; } + virtual void setDetectShadows(bool detectshadows) { bShadowDetection = detectshadows; } + + virtual int getShadowValue() const { return nShadowDetection; } + virtual void setShadowValue(int value) { nShadowDetection = (uchar)value; } + + virtual double getShadowThreshold() const { return fTau; } + virtual void setShadowThreshold(double value) { fTau = (float)value; } + +protected: + Size frameSize; + int frameType; + Mat bgmodel; + Mat bgmodelUsedModes;//keep track of number of modes per pixel + int nframes; + int history; + int nmixtures; + //! here it is the maximum allowed number of mixture components. + //! Actual number is determined dynamically per pixel + double varThreshold; + // threshold on the squared Mahalanobis distance to decide if it is well described + // by the background model or not. Related to Cthr from the paper. + // This does not influence the update of the background. A typical value could be 4 sigma + // and that is varThreshold=4*4=16; Corresponds to Tb in the paper. + + ///////////////////////// + // less important parameters - things you might change but be carefull + //////////////////////// + float backgroundRatio; + // corresponds to fTB=1-cf from the paper + // TB - threshold when the component becomes significant enough to be included into + // the background model. It is the TB=1-cf from the paper. So I use cf=0.1 => TB=0. + // For alpha=0.001 it means that the mode should exist for approximately 105 frames before + // it is considered foreground + // float noiseSigma; + float varThresholdGen; + //correspondts to Tg - threshold on the squared Mahalan. dist. to decide + //when a sample is close to the existing components. If it is not close + //to any a new component will be generated. I use 3 sigma => Tg=3*3=9. + //Smaller Tg leads to more generated components and higher Tg might make + //lead to small number of components but they can grow too large + float fVarInit; + float fVarMin; + float fVarMax; + //initial variance for the newly generated components. + //It will will influence the speed of adaptation. A good guess should be made. + //A simple way is to estimate the typical standard deviation from the images. + //I used here 10 as a reasonable value + // min and max can be used to further control the variance + float fCT;//CT - complexity reduction prior + //this is related to the number of samples needed to accept that a component + //actually exists. We use CT=0.05 of all the samples. By setting CT=0 you get + //the standard Stauffer&Grimson algorithm (maybe not exact but very similar) + + //shadow detection parameters + bool bShadowDetection;//default 1 - do shadow detection + unsigned char nShadowDetection;//do shadow detection - insert this value as the detection result - 127 default value + float fTau; + // Tau - shadow threshold. The shadow is detected if the pixel is darker + //version of the background. Tau is a threshold on how much darker the shadow can be. + //Tau= 0.5 means that if pixel is more than 2 times darker then it is not shadow + //See: Prati,Mikic,Trivedi,Cucchiarra,"Detecting Moving Shadows...",IEEE PAMI,2003. +}; + struct GaussBGStatModel2Params { //image info @@ -248,8 +420,9 @@ detectShadowGMM(const float* data, int nchannels, int nmodes, //IEEE Trans. on Pattern Analysis and Machine Intelligence, vol.26, no.5, pages 651-656, 2004 //http://www.zoranz.net/Publications/zivkovic2004PAMI.pdf -struct MOG2Invoker +class MOG2Invoker : public ParallelLoopBody { +public: MOG2Invoker(const Mat& _src, Mat& _dst, GMM* _gmm, float* _mean, uchar* _modesUsed, @@ -280,9 +453,9 @@ struct MOG2Invoker cvtfunc = src->depth() != CV_32F ? getConvertFunc(src->depth(), CV_32F) : 0; } - void operator()(const BlockedRange& range) const + void operator()(const Range& range) const { - int y0 = range.begin(), y1 = range.end(); + int y0 = range.start, y1 = range.end; int ncols = src->cols, nchannels = src->channels(); AutoBuffer buf(src->cols*nchannels); float alpha1 = 1.f - alphaT; @@ -479,75 +652,7 @@ struct MOG2Invoker BinaryFunc cvtfunc; }; -BackgroundSubtractorMOG2::BackgroundSubtractorMOG2() -{ - frameSize = Size(0,0); - frameType = 0; - - nframes = 0; - history = defaultHistory2; - varThreshold = defaultVarThreshold2; - bShadowDetection = 1; - - nmixtures = defaultNMixtures2; - backgroundRatio = defaultBackgroundRatio2; - fVarInit = defaultVarInit2; - fVarMax = defaultVarMax2; - fVarMin = defaultVarMin2; - - varThresholdGen = defaultVarThresholdGen2; - fCT = defaultfCT2; - nShadowDetection = defaultnShadowDetection2; - fTau = defaultfTau; -} - -BackgroundSubtractorMOG2::BackgroundSubtractorMOG2(int _history, float _varThreshold, bool _bShadowDetection) -{ - frameSize = Size(0,0); - frameType = 0; - - nframes = 0; - history = _history > 0 ? _history : defaultHistory2; - varThreshold = (_varThreshold>0)? _varThreshold : defaultVarThreshold2; - bShadowDetection = _bShadowDetection; - - nmixtures = defaultNMixtures2; - backgroundRatio = defaultBackgroundRatio2; - fVarInit = defaultVarInit2; - fVarMax = defaultVarMax2; - fVarMin = defaultVarMin2; - - varThresholdGen = defaultVarThresholdGen2; - fCT = defaultfCT2; - nShadowDetection = defaultnShadowDetection2; - fTau = defaultfTau; -} - -BackgroundSubtractorMOG2::~BackgroundSubtractorMOG2() -{ -} - - -void BackgroundSubtractorMOG2::initialize(Size _frameSize, int _frameType) -{ - frameSize = _frameSize; - frameType = _frameType; - nframes = 0; - - int nchannels = CV_MAT_CN(frameType); - CV_Assert( nchannels <= CV_CN_MAX ); - - // for each gaussian mixture of each pixel bg model we store ... - // the mixture weight (w), - // the mean (nchannels values) and - // the covariance - bgmodel.create( 1, frameSize.height*frameSize.width*nmixtures*(2 + nchannels), CV_32F ); - //make the array for keeping track of the used modes per pixel - all zeros at start - bgmodelUsedModes.create(frameSize,CV_8U); - bgmodelUsedModes = Scalar::all(0); -} - -void BackgroundSubtractorMOG2::operator()(InputArray _image, OutputArray _fgmask, double learningRate) +void BackgroundSubtractorMOG2Impl::apply(InputArray _image, OutputArray _fgmask, double learningRate) { Mat image = _image.getMat(); bool needToInitialize = nframes == 0 || learningRate >= 1 || image.size() != frameSize || image.type() != frameType; @@ -562,18 +667,19 @@ void BackgroundSubtractorMOG2::operator()(InputArray _image, OutputArray _fgmask learningRate = learningRate >= 0 && nframes > 1 ? learningRate : 1./std::min( 2*nframes, history ); CV_Assert(learningRate >= 0); - parallel_for(BlockedRange(0, image.rows), - MOG2Invoker(image, fgmask, + parallel_for_(Range(0, image.rows), + MOG2Invoker(image, fgmask, (GMM*)bgmodel.data, (float*)(bgmodel.data + sizeof(GMM)*nmixtures*image.rows*image.cols), bgmodelUsedModes.data, nmixtures, (float)learningRate, (float)varThreshold, backgroundRatio, varThresholdGen, fVarInit, fVarMin, fVarMax, float(-learningRate*fCT), fTau, - bShadowDetection, nShadowDetection)); + bShadowDetection, nShadowDetection), + image.total()/(double)(1 << 16)); } -void BackgroundSubtractorMOG2::getBackgroundImage(OutputArray backgroundImage) const +void BackgroundSubtractorMOG2Impl::getBackgroundImage(OutputArray backgroundImage) const { int nchannels = CV_MAT_CN(frameType); CV_Assert( nchannels == 3 ); @@ -626,6 +732,13 @@ void BackgroundSubtractorMOG2::getBackgroundImage(OutputArray backgroundImage) c } } + +Ptr createBackgroundSubtractorMOG2(int _history, double _varThreshold, + bool _bShadowDetection) +{ + return new BackgroundSubtractorMOG2Impl(_history, (float)_varThreshold, _bShadowDetection); +} + } /* End of file. */ diff --git a/modules/video/src/bgfg_gmg.cpp b/modules/video/src/bgfg_gmg.cpp index 42d6fb1691..8a54fa11bd 100644 --- a/modules/video/src/bgfg_gmg.cpp +++ b/modules/video/src/bgfg_gmg.cpp @@ -8,8 +8,10 @@ // // // License Agreement +// For Open Source Computer Vision Library // // Copyright (C) 2000, Intel Corporation, all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. // Third party copyrights are property of their respective owners. // // Redistribution and use in source and binary forms, with or without modification, @@ -22,7 +24,7 @@ // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // -// * The name of Intel Corporation may not be used to endorse or promote products +// * The name of the copyright holders may not be used to endorse or promote products // derived from this software without specific prior written permission. // // This software is provided by the copyright holders and contributors "as is" and @@ -48,7 +50,105 @@ #include "precomp.hpp" -cv::BackgroundSubtractorGMG::BackgroundSubtractorGMG() +namespace cv +{ + +class CV_EXPORTS BackgroundSubtractorGMGImpl : public BackgroundSubtractorGMG +{ +public: + BackgroundSubtractorGMGImpl(); + ~BackgroundSubtractorGMGImpl(); + virtual AlgorithmInfo* info() const { return 0; } + + /** + * Validate parameters and set up data structures for appropriate image size. + * Must call before running on data. + * @param frameSize input frame size + * @param min minimum value taken on by pixels in image sequence. Usually 0 + * @param max maximum value taken on by pixels in image sequence. e.g. 1.0 or 255 + */ + void initialize(Size frameSize, double minVal, double maxVal); + + /** + * Performs single-frame background subtraction and builds up a statistical background image + * model. + * @param image Input image + * @param fgmask Output mask image representing foreground and background pixels + */ + virtual void apply(InputArray image, OutputArray fgmask, double learningRate=-1.0); + + /** + * Releases all inner buffers. + */ + void release(); + + virtual int getMaxFeatures() const { return maxFeatures; } + virtual void setMaxFeatures(int _maxFeatures) { maxFeatures = _maxFeatures; } + + virtual double getDefaultLearningRate() const { return learningRate; } + virtual void setDefaultLearningRate(double lr) { learningRate = lr; } + + virtual int getNumFrames() const { return numInitializationFrames; } + virtual void setNumFrames(int nframes) { numInitializationFrames = nframes; } + + virtual int getQuantizationLevels() const { return quantizationLevels; } + virtual void setQuantizationLevels(int nlevels) { quantizationLevels = nlevels; } + + virtual double getBackgroundPrior() const { return backgroundPrior; } + virtual void setBackgroundPrior(double bgprior) { backgroundPrior = bgprior; } + + virtual int getSmoothingRadius() const { return smoothingRadius; } + virtual void setSmoothingRadius(int radius) { smoothingRadius = radius; } + + virtual double getDecisionThreshold() const { return decisionThreshold; } + virtual void setDecisionThreshold(double thresh) { decisionThreshold = thresh; } + + virtual bool getUpdateBackgroundModel() const { return updateBackgroundModel; } + virtual void setUpdateBackgroundModel(bool update) { updateBackgroundModel = update; } + + virtual double getMinVal() const { return minVal_; } + virtual void setMinVal(double val) { minVal_ = val; } + + virtual double getMaxVal() const { return maxVal_; } + virtual void setMaxVal(double val) { maxVal_ = val; } + + virtual void getBackgroundImage(OutputArray) const + { + CV_Error( CV_StsNotImplemented, "" ); + } + + //! Total number of distinct colors to maintain in histogram. + int maxFeatures; + //! Set between 0.0 and 1.0, determines how quickly features are "forgotten" from histograms. + double learningRate; + //! Number of frames of video to use to initialize histograms. + int numInitializationFrames; + //! Number of discrete levels in each channel to be used in histograms. + int quantizationLevels; + //! Prior probability that any given pixel is a background pixel. A sensitivity parameter. + double backgroundPrior; + //! Value above which pixel is determined to be FG. + double decisionThreshold; + //! Smoothing radius, in pixels, for cleaning up FG image. + int smoothingRadius; + //! Perform background model update + bool updateBackgroundModel; + +private: + double maxVal_; + double minVal_; + + Size frameSize_; + int frameNum_; + + Mat_ nfeatures_; + Mat_ colors_; + Mat_ weights_; + + Mat buf_; +}; + +BackgroundSubtractorGMGImpl::BackgroundSubtractorGMGImpl() { /* * Default Parameter Values. Override with algorithm "set" method. @@ -61,23 +161,24 @@ cv::BackgroundSubtractorGMG::BackgroundSubtractorGMG() decisionThreshold = 0.8; smoothingRadius = 7; updateBackgroundModel = true; + minVal_ = maxVal_ = 0; } -cv::BackgroundSubtractorGMG::~BackgroundSubtractorGMG() +BackgroundSubtractorGMGImpl::~BackgroundSubtractorGMGImpl() { } -void cv::BackgroundSubtractorGMG::initialize(cv::Size frameSize, double min, double max) +void BackgroundSubtractorGMGImpl::initialize(Size frameSize, double minVal, double maxVal) { - CV_Assert(min < max); + CV_Assert(minVal < maxVal); CV_Assert(maxFeatures > 0); CV_Assert(learningRate >= 0.0 && learningRate <= 1.0); CV_Assert(numInitializationFrames >= 1); CV_Assert(quantizationLevels >= 1 && quantizationLevels <= 255); CV_Assert(backgroundPrior >= 0.0 && backgroundPrior <= 1.0); - minVal_ = min; - maxVal_ = max; + minVal_ = minVal; + maxVal_ = maxVal; frameSize_ = frameSize; frameNum_ = 0; @@ -86,7 +187,7 @@ void cv::BackgroundSubtractorGMG::initialize(cv::Size frameSize, double min, dou colors_.create(frameSize_.area(), maxFeatures); weights_.create(frameSize_.area(), maxFeatures); - nfeatures_.setTo(cv::Scalar::all(0)); + nfeatures_.setTo(Scalar::all(0)); } namespace @@ -181,10 +282,10 @@ namespace } }; - class GMG_LoopBody : public cv::ParallelLoopBody + class GMG_LoopBody : public ParallelLoopBody { public: - GMG_LoopBody(const cv::Mat& frame, const cv::Mat& fgmask, const cv::Mat_& nfeatures, const cv::Mat_& colors, const cv::Mat_& weights, + GMG_LoopBody(const Mat& frame, const Mat& fgmask, const Mat_& nfeatures, const Mat_& colors, const Mat_& weights, int maxFeatures, double learningRate, int numInitializationFrames, int quantizationLevels, double backgroundPrior, double decisionThreshold, double maxVal, double minVal, int frameNum, bool updateBackgroundModel) : frame_(frame), fgmask_(fgmask), nfeatures_(nfeatures), colors_(colors), weights_(weights), @@ -194,16 +295,16 @@ namespace { } - void operator() (const cv::Range& range) const; + void operator() (const Range& range) const; private: - cv::Mat frame_; + Mat frame_; - mutable cv::Mat_ fgmask_; + mutable Mat_ fgmask_; - mutable cv::Mat_ nfeatures_; - mutable cv::Mat_ colors_; - mutable cv::Mat_ weights_; + mutable Mat_ nfeatures_; + mutable Mat_ colors_; + mutable Mat_ weights_; int maxFeatures_; double learningRate_; @@ -218,7 +319,7 @@ namespace int frameNum_; }; - void GMG_LoopBody::operator() (const cv::Range& range) const + void GMG_LoopBody::operator() (const Range& range) const { typedef unsigned int (*func_t)(const void* src_, int x, int cn, double minVal, double maxVal, int quantizationLevels); static const func_t funcs[] = @@ -296,7 +397,7 @@ namespace } } -void cv::BackgroundSubtractorGMG::operator ()(InputArray _frame, OutputArray _fgmask, double newLearningRate) +void BackgroundSubtractorGMGImpl::apply(InputArray _frame, OutputArray _fgmask, double newLearningRate) { Mat frame = _frame.getMat(); @@ -310,7 +411,16 @@ void cv::BackgroundSubtractorGMG::operator ()(InputArray _frame, OutputArray _fg } if (frame.size() != frameSize_) - initialize(frame.size(), 0.0, frame.depth() == CV_8U ? 255.0 : frame.depth() == CV_16U ? std::numeric_limits::max() : 1.0); + { + double minval = minVal_; + double maxval = maxVal_; + if( minVal_ == 0 && maxVal_ == 0 ) + { + minval = 0; + maxval = frame.depth() == CV_8U ? 255.0 : frame.depth() == CV_16U ? std::numeric_limits::max() : 1.0; + } + initialize(frame.size(), minval, maxval); + } _fgmask.create(frameSize_, CV_8UC1); Mat fgmask = _fgmask.getMat(); @@ -323,19 +433,58 @@ void cv::BackgroundSubtractorGMG::operator ()(InputArray _frame, OutputArray _fg if (smoothingRadius > 0) { medianBlur(fgmask, buf_, smoothingRadius); - cv::swap(fgmask, buf_); + swap(fgmask, buf_); } // keep track of how many frames we have processed ++frameNum_; } -void cv::BackgroundSubtractorGMG::release() +void BackgroundSubtractorGMGImpl::release() { - frameSize_ = cv::Size(); + frameSize_ = Size(); nfeatures_.release(); colors_.release(); weights_.release(); buf_.release(); } + + +Ptr createBackgroundSubtractorGMG(int initializationFrames, double decisionThreshold) +{ + Ptr bgfg = new BackgroundSubtractorGMGImpl; + bgfg->setNumFrames(initializationFrames); + bgfg->setDecisionThreshold(decisionThreshold); + + return bgfg; +} + +/* + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + + CV_INIT_ALGORITHM(BackgroundSubtractorGMG, "BackgroundSubtractor.GMG", + obj.info()->addParam(obj, "maxFeatures", obj.maxFeatures,false,0,0, + "Maximum number of features to store in histogram. Harsh enforcement of sparsity constraint."); + obj.info()->addParam(obj, "learningRate", obj.learningRate,false,0,0, + "Adaptation rate of histogram. Close to 1, slow adaptation. Close to 0, fast adaptation, features forgotten quickly."); + obj.info()->addParam(obj, "initializationFrames", obj.numInitializationFrames,false,0,0, + "Number of frames to use to initialize histograms of pixels."); + obj.info()->addParam(obj, "quantizationLevels", obj.quantizationLevels,false,0,0, + "Number of discrete colors to be used in histograms. Up-front quantization."); + obj.info()->addParam(obj, "backgroundPrior", obj.backgroundPrior,false,0,0, + "Prior probability that each individual pixel is a background pixel."); + obj.info()->addParam(obj, "smoothingRadius", obj.smoothingRadius,false,0,0, + "Radius of smoothing kernel to filter noise from FG mask image."); + obj.info()->addParam(obj, "decisionThreshold", obj.decisionThreshold,false,0,0, + "Threshold for FG decision rule. Pixel is FG if posterior probability exceeds threshold."); + obj.info()->addParam(obj, "updateBackgroundModel", obj.updateBackgroundModel,false,0,0, + "Perform background model update."); + obj.info()->addParam(obj, "minVal", obj.minVal_,false,0,0, + "Minimum of the value range (mostly for regression testing)"); + obj.info()->addParam(obj, "maxVal", obj.maxVal_,false,0,0, + "Maximum of the value range (mostly for regression testing)"); + ); +*/ + +} diff --git a/modules/video/src/camshift.cpp b/modules/video/src/camshift.cpp index eadf166c42..5cad1b82ad 100644 --- a/modules/video/src/camshift.cpp +++ b/modules/video/src/camshift.cpp @@ -7,10 +7,11 @@ // copy or use the software. // // -// Intel License Agreement +// License Agreement // For Open Source Computer Vision Library // // Copyright (C) 2000, Intel Corporation, all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. // Third party copyrights are property of their respective owners. // // Redistribution and use in source and binary forms, with or without modification, @@ -40,285 +41,156 @@ //M*/ #include "precomp.hpp" - -/*F/////////////////////////////////////////////////////////////////////////////////////// -// Name: cvMeanShift -// Purpose: MeanShift algorithm -// Context: -// Parameters: -// imgProb - 2D object probability distribution -// windowIn - CvRect of CAMSHIFT Window intial size -// numIters - If CAMSHIFT iterates this many times, stop -// windowOut - Location, height and width of converged CAMSHIFT window -// len - If != NULL, return equivalent len -// width - If != NULL, return equivalent width -// Returns: -// Number of iterations CAMSHIFT took to converge -// Notes: -//F*/ -CV_IMPL int -cvMeanShift( const void* imgProb, CvRect windowIn, - CvTermCriteria criteria, CvConnectedComp* comp ) +int cv::meanShift( InputArray _probImage, Rect& window, TermCriteria criteria ) { - CvMoments moments; - int i = 0, eps; - CvMat stub, *mat = (CvMat*)imgProb; - CvMat cur_win; - CvRect cur_rect = windowIn; + Mat mat = _probImage.getMat(); + Rect cur_rect = window; - if( comp ) - comp->rect = windowIn; + CV_Assert( mat.channels() == 1 ); - moments.m00 = moments.m10 = moments.m01 = 0; - - mat = cvGetMat( mat, &stub ); - - if( CV_MAT_CN( mat->type ) > 1 ) - CV_Error( CV_BadNumChannels, cvUnsupportedFormat ); - - if( windowIn.height <= 0 || windowIn.width <= 0 ) + if( window.height <= 0 || window.width <= 0 ) CV_Error( CV_StsBadArg, "Input window has non-positive sizes" ); - windowIn = cv::Rect(windowIn) & cv::Rect(0, 0, mat->cols, mat->rows); + window = window & Rect(0, 0, mat.cols, mat.rows); - criteria = cvCheckTermCriteria( criteria, 1., 100 ); - eps = cvRound( criteria.epsilon * criteria.epsilon ); + double eps = (criteria.type & TermCriteria::EPS) ? std::max(criteria.epsilon, 0.) : 1.; + eps = cvRound(eps*eps); + int i, niters = (criteria.type & TermCriteria::MAX_ITER) ? std::max(criteria.maxCount, 1) : 100; - for( i = 0; i < criteria.max_iter; i++ ) + for( i = 0; i < niters; i++ ) { - int dx, dy, nx, ny; - double inv_m00; - cur_rect = cv::Rect(cur_rect) & cv::Rect(0, 0, mat->cols, mat->rows); - if( cv::Rect(cur_rect) == cv::Rect() ) + cur_rect = cur_rect & Rect(0, 0, mat.cols, mat.rows); + if( cur_rect == Rect() ) { - cur_rect.x = mat->cols/2; - cur_rect.y = mat->rows/2; + cur_rect.x = mat.cols/2; + cur_rect.y = mat.rows/2; } - cur_rect.width = MAX(cur_rect.width, 1); - cur_rect.height = MAX(cur_rect.height, 1); + cur_rect.width = std::max(cur_rect.width, 1); + cur_rect.height = std::max(cur_rect.height, 1); - cvGetSubRect( mat, &cur_win, cur_rect ); - cvMoments( &cur_win, &moments ); + Moments m = moments(mat(cur_rect)); - /* Calculating center of mass */ - if( fabs(moments.m00) < DBL_EPSILON ) + // Calculating center of mass + if( fabs(m.m00) < DBL_EPSILON ) break; - inv_m00 = moments.inv_sqrt_m00*moments.inv_sqrt_m00; - dx = cvRound( moments.m10 * inv_m00 - windowIn.width*0.5 ); - dy = cvRound( moments.m01 * inv_m00 - windowIn.height*0.5 ); + int dx = cvRound( m.m10/m.m00 - window.width*0.5 ); + int dy = cvRound( m.m01/m.m00 - window.height*0.5 ); - nx = cur_rect.x + dx; - ny = cur_rect.y + dy; - - if( nx < 0 ) - nx = 0; - else if( nx + cur_rect.width > mat->cols ) - nx = mat->cols - cur_rect.width; - - if( ny < 0 ) - ny = 0; - else if( ny + cur_rect.height > mat->rows ) - ny = mat->rows - cur_rect.height; + int nx = std::min(std::max(cur_rect.x + dx, 0), mat.cols - cur_rect.width); + int ny = std::min(std::max(cur_rect.y + dy, 0), mat.rows - cur_rect.height); dx = nx - cur_rect.x; dy = ny - cur_rect.y; cur_rect.x = nx; cur_rect.y = ny; - /* Check for coverage centers mass & window */ + // Check for coverage centers mass & window if( dx*dx + dy*dy < eps ) break; } - if( comp ) - { - comp->rect = cur_rect; - comp->area = (float)moments.m00; - } - + window = cur_rect; return i; } -/*F/////////////////////////////////////////////////////////////////////////////////////// -// Name: cvCamShift -// Purpose: CAMSHIFT algorithm -// Context: -// Parameters: -// imgProb - 2D object probability distribution -// windowIn - CvRect of CAMSHIFT Window intial size -// criteria - criteria of stop finding window -// windowOut - Location, height and width of converged CAMSHIFT window -// orientation - If != NULL, return distribution orientation -// len - If != NULL, return equivalent len -// width - If != NULL, return equivalent width -// area - sum of all elements in result window -// Returns: -// Number of iterations CAMSHIFT took to converge -// Notes: -//F*/ -CV_IMPL int -cvCamShift( const void* imgProb, CvRect windowIn, - CvTermCriteria criteria, - CvConnectedComp* _comp, - CvBox2D* box ) -{ - const int TOLERANCE = 10; - CvMoments moments; - double m00 = 0, m10, m01, mu20, mu11, mu02, inv_m00; - double a, b, c, xc, yc; - double rotate_a, rotate_c; - double theta = 0, square; - double cs, sn; - double length = 0, width = 0; - int itersUsed = 0; - CvConnectedComp comp; - CvMat cur_win, stub, *mat = (CvMat*)imgProb; - - comp.rect = windowIn; - - mat = cvGetMat( mat, &stub ); - - itersUsed = cvMeanShift( mat, windowIn, criteria, &comp ); - windowIn = comp.rect; - - windowIn.x -= TOLERANCE; - if( windowIn.x < 0 ) - windowIn.x = 0; - - windowIn.y -= TOLERANCE; - if( windowIn.y < 0 ) - windowIn.y = 0; - - windowIn.width += 2 * TOLERANCE; - if( windowIn.x + windowIn.width > mat->width ) - windowIn.width = mat->width - windowIn.x; - - windowIn.height += 2 * TOLERANCE; - if( windowIn.y + windowIn.height > mat->height ) - windowIn.height = mat->height - windowIn.y; - - cvGetSubRect( mat, &cur_win, windowIn ); - - /* Calculating moments in new center mass */ - cvMoments( &cur_win, &moments ); - - m00 = moments.m00; - m10 = moments.m10; - m01 = moments.m01; - mu11 = moments.mu11; - mu20 = moments.mu20; - mu02 = moments.mu02; - - if( fabs(m00) < DBL_EPSILON ) - return -1; - - inv_m00 = 1. / m00; - xc = cvRound( m10 * inv_m00 + windowIn.x ); - yc = cvRound( m01 * inv_m00 + windowIn.y ); - a = mu20 * inv_m00; - b = mu11 * inv_m00; - c = mu02 * inv_m00; - - /* Calculating width & height */ - square = sqrt( 4 * b * b + (a - c) * (a - c) ); - - /* Calculating orientation */ - theta = atan2( 2 * b, a - c + square ); - - /* Calculating width & length of figure */ - cs = cos( theta ); - sn = sin( theta ); - - rotate_a = cs * cs * mu20 + 2 * cs * sn * mu11 + sn * sn * mu02; - rotate_c = sn * sn * mu20 - 2 * cs * sn * mu11 + cs * cs * mu02; - length = sqrt( rotate_a * inv_m00 ) * 4; - width = sqrt( rotate_c * inv_m00 ) * 4; - - /* In case, when tetta is 0 or 1.57... the Length & Width may be exchanged */ - if( length < width ) - { - double t; - - CV_SWAP( length, width, t ); - CV_SWAP( cs, sn, t ); - theta = CV_PI*0.5 - theta; - } - - /* Saving results */ - if( _comp || box ) - { - int t0, t1; - int _xc = cvRound( xc ); - int _yc = cvRound( yc ); - - t0 = cvRound( fabs( length * cs )); - t1 = cvRound( fabs( width * sn )); - - t0 = MAX( t0, t1 ) + 2; - comp.rect.width = MIN( t0, (mat->width - _xc) * 2 ); - - t0 = cvRound( fabs( length * sn )); - t1 = cvRound( fabs( width * cs )); - - t0 = MAX( t0, t1 ) + 2; - comp.rect.height = MIN( t0, (mat->height - _yc) * 2 ); - - comp.rect.x = MAX( 0, _xc - comp.rect.width / 2 ); - comp.rect.y = MAX( 0, _yc - comp.rect.height / 2 ); - - comp.rect.width = MIN( mat->width - comp.rect.x, comp.rect.width ); - comp.rect.height = MIN( mat->height - comp.rect.y, comp.rect.height ); - comp.area = (float) m00; - } - - if( _comp ) - *_comp = comp; - - if( box ) - { - box->size.height = (float)length; - box->size.width = (float)width; - box->angle = (float)((CV_PI*0.5+theta)*180./CV_PI); - while(box->angle < 0) - box->angle += 360; - while(box->angle >= 360) - box->angle -= 360; - if(box->angle >= 180) - box->angle -= 180; - box->center = cvPoint2D32f( comp.rect.x + comp.rect.width*0.5f, - comp.rect.y + comp.rect.height*0.5f); - } - - return itersUsed; -} - - cv::RotatedRect cv::CamShift( InputArray _probImage, Rect& window, TermCriteria criteria ) { - CvConnectedComp comp; - CvBox2D box; + const int TOLERANCE = 10; + Mat mat = _probImage.getMat(); - box.center.x = box.center.y = 0; box.angle = 0; box.size.width = box.size.height = 0; - comp.rect.x = comp.rect.y = comp.rect.width = comp.rect.height = 0; + meanShift( mat, window, criteria ); - Mat probImage = _probImage.getMat(); - CvMat c_probImage = probImage; - cvCamShift(&c_probImage, window, (CvTermCriteria)criteria, &comp, &box); - window = comp.rect; - return RotatedRect(Point2f(box.center), Size2f(box.size), box.angle); -} + window.x -= TOLERANCE; + if( window.x < 0 ) + window.x = 0; -int cv::meanShift( InputArray _probImage, Rect& window, TermCriteria criteria ) -{ - CvConnectedComp comp; - Mat probImage = _probImage.getMat(); - CvMat c_probImage = probImage; - int iters = cvMeanShift(&c_probImage, window, (CvTermCriteria)criteria, &comp ); - window = comp.rect; - return iters; + window.y -= TOLERANCE; + if( window.y < 0 ) + window.y = 0; + + window.width += 2 * TOLERANCE; + if( window.x + window.width > mat.cols ) + window.width = mat.cols - window.x; + + window.height += 2 * TOLERANCE; + if( window.y + window.height > mat.rows ) + window.height = mat.rows - window.y; + + // Calculating moments in new center mass + Moments m = moments( mat(window) ); + + double m00 = m.m00, m10 = m.m10, m01 = m.m01; + double mu11 = m.mu11, mu20 = m.mu20, mu02 = m.mu02; + + if( fabs(m00) < DBL_EPSILON ) + return RotatedRect(); + + double inv_m00 = 1. / m00; + int xc = cvRound( m10 * inv_m00 + window.x ); + int yc = cvRound( m01 * inv_m00 + window.y ); + double a = mu20 * inv_m00, b = mu11 * inv_m00, c = mu02 * inv_m00; + + // Calculating width & height + double square = std::sqrt( 4 * b * b + (a - c) * (a - c) ); + + // Calculating orientation + double theta = atan2( 2 * b, a - c + square ); + + // Calculating width & length of figure + double cs = cos( theta ); + double sn = sin( theta ); + + double rotate_a = cs * cs * mu20 + 2 * cs * sn * mu11 + sn * sn * mu02; + double rotate_c = sn * sn * mu20 - 2 * cs * sn * mu11 + cs * cs * mu02; + double length = std::sqrt( rotate_a * inv_m00 ) * 4; + double width = std::sqrt( rotate_c * inv_m00 ) * 4; + + // In case, when tetta is 0 or 1.57... the Length & Width may be exchanged + if( length < width ) + { + std::swap( length, width ); + std::swap( cs, sn ); + theta = CV_PI*0.5 - theta; + } + + // Saving results + int _xc = cvRound( xc ); + int _yc = cvRound( yc ); + + int t0 = cvRound( fabs( length * cs )); + int t1 = cvRound( fabs( width * sn )); + + t0 = MAX( t0, t1 ) + 2; + window.width = MIN( t0, (mat.cols - _xc) * 2 ); + + t0 = cvRound( fabs( length * sn )); + t1 = cvRound( fabs( width * cs )); + + t0 = MAX( t0, t1 ) + 2; + window.height = MIN( t0, (mat.rows - _yc) * 2 ); + + window.x = MAX( 0, _xc - window.width / 2 ); + window.y = MAX( 0, _yc - window.height / 2 ); + + window.width = MIN( mat.cols - window.x, window.width ); + window.height = MIN( mat.rows - window.y, window.height ); + + RotatedRect box; + box.size.height = (float)length; + box.size.width = (float)width; + box.angle = (float)((CV_PI*0.5+theta)*180./CV_PI); + while(box.angle < 0) + box.angle += 360; + while(box.angle >= 360) + box.angle -= 360; + if(box.angle >= 180) + box.angle -= 180; + box.center = Point2f( window.x + window.width*0.5f, window.y + window.height*0.5f); + + return box; } /* End of file. */ diff --git a/modules/video/src/ecc.cpp b/modules/video/src/ecc.cpp index 6555c44ced..ac710d4455 100644 --- a/modules/video/src/ecc.cpp +++ b/modules/video/src/ecc.cpp @@ -305,23 +305,8 @@ static void update_warping_matrix_ECC (Mat& map_matrix, const Mat& update, const mapPtr[3] = (float) sin(new_theta); mapPtr[1] = -mapPtr[3]; } - } -CV_IMPL double cvFindTransformECC (const CvArr* _image1, const CvArr* _image2, - CvMat* _map_matrix, - const int motionType, - const CvTermCriteria _criteria) -{ - - Mat image1 = cvarrToMat(_image1); - Mat image2 = cvarrToMat(_image2); - Mat map_matrix = cvarrToMat(_map_matrix); - double cc = cv::findTransformECC(image1, image2, map_matrix, motionType, - TermCriteria(TermCriteria::EPS+TermCriteria::COUNT, _criteria.max_iter, _criteria.epsilon)); - - return cc; -} double cv::findTransformECC(InputArray templateImage, InputArray inputImage, diff --git a/modules/video/src/kalman.cpp b/modules/video/src/kalman.cpp index a5485751ec..3cb34c0d2d 100644 --- a/modules/video/src/kalman.cpp +++ b/modules/video/src/kalman.cpp @@ -40,176 +40,6 @@ //M*/ #include "precomp.hpp" - -CV_IMPL CvKalman* -cvCreateKalman( int DP, int MP, int CP ) -{ - CvKalman *kalman = 0; - - if( DP <= 0 || MP <= 0 ) - CV_Error( CV_StsOutOfRange, - "state and measurement vectors must have positive number of dimensions" ); - - if( CP < 0 ) - CP = DP; - - /* allocating memory for the structure */ - kalman = (CvKalman *)cvAlloc( sizeof( CvKalman )); - memset( kalman, 0, sizeof(*kalman)); - - kalman->DP = DP; - kalman->MP = MP; - kalman->CP = CP; - - kalman->state_pre = cvCreateMat( DP, 1, CV_32FC1 ); - cvZero( kalman->state_pre ); - - kalman->state_post = cvCreateMat( DP, 1, CV_32FC1 ); - cvZero( kalman->state_post ); - - kalman->transition_matrix = cvCreateMat( DP, DP, CV_32FC1 ); - cvSetIdentity( kalman->transition_matrix ); - - kalman->process_noise_cov = cvCreateMat( DP, DP, CV_32FC1 ); - cvSetIdentity( kalman->process_noise_cov ); - - kalman->measurement_matrix = cvCreateMat( MP, DP, CV_32FC1 ); - cvZero( kalman->measurement_matrix ); - - kalman->measurement_noise_cov = cvCreateMat( MP, MP, CV_32FC1 ); - cvSetIdentity( kalman->measurement_noise_cov ); - - kalman->error_cov_pre = cvCreateMat( DP, DP, CV_32FC1 ); - - kalman->error_cov_post = cvCreateMat( DP, DP, CV_32FC1 ); - cvZero( kalman->error_cov_post ); - - kalman->gain = cvCreateMat( DP, MP, CV_32FC1 ); - - if( CP > 0 ) - { - kalman->control_matrix = cvCreateMat( DP, CP, CV_32FC1 ); - cvZero( kalman->control_matrix ); - } - - kalman->temp1 = cvCreateMat( DP, DP, CV_32FC1 ); - kalman->temp2 = cvCreateMat( MP, DP, CV_32FC1 ); - kalman->temp3 = cvCreateMat( MP, MP, CV_32FC1 ); - kalman->temp4 = cvCreateMat( MP, DP, CV_32FC1 ); - kalman->temp5 = cvCreateMat( MP, 1, CV_32FC1 ); - -#if 1 - kalman->PosterState = kalman->state_pre->data.fl; - kalman->PriorState = kalman->state_post->data.fl; - kalman->DynamMatr = kalman->transition_matrix->data.fl; - kalman->MeasurementMatr = kalman->measurement_matrix->data.fl; - kalman->MNCovariance = kalman->measurement_noise_cov->data.fl; - kalman->PNCovariance = kalman->process_noise_cov->data.fl; - kalman->KalmGainMatr = kalman->gain->data.fl; - kalman->PriorErrorCovariance = kalman->error_cov_pre->data.fl; - kalman->PosterErrorCovariance = kalman->error_cov_post->data.fl; -#endif - - return kalman; -} - - -CV_IMPL void -cvReleaseKalman( CvKalman** _kalman ) -{ - CvKalman *kalman; - - if( !_kalman ) - CV_Error( CV_StsNullPtr, "" ); - - kalman = *_kalman; - if( !kalman ) - return; - - /* freeing the memory */ - cvReleaseMat( &kalman->state_pre ); - cvReleaseMat( &kalman->state_post ); - cvReleaseMat( &kalman->transition_matrix ); - cvReleaseMat( &kalman->control_matrix ); - cvReleaseMat( &kalman->measurement_matrix ); - cvReleaseMat( &kalman->process_noise_cov ); - cvReleaseMat( &kalman->measurement_noise_cov ); - cvReleaseMat( &kalman->error_cov_pre ); - cvReleaseMat( &kalman->gain ); - cvReleaseMat( &kalman->error_cov_post ); - cvReleaseMat( &kalman->temp1 ); - cvReleaseMat( &kalman->temp2 ); - cvReleaseMat( &kalman->temp3 ); - cvReleaseMat( &kalman->temp4 ); - cvReleaseMat( &kalman->temp5 ); - - memset( kalman, 0, sizeof(*kalman)); - - /* deallocating the structure */ - cvFree( _kalman ); -} - - -CV_IMPL const CvMat* -cvKalmanPredict( CvKalman* kalman, const CvMat* control ) -{ - if( !kalman ) - CV_Error( CV_StsNullPtr, "" ); - - /* update the state */ - /* x'(k) = A*x(k) */ - cvMatMulAdd( kalman->transition_matrix, kalman->state_post, 0, kalman->state_pre ); - - if( control && kalman->CP > 0 ) - /* x'(k) = x'(k) + B*u(k) */ - cvMatMulAdd( kalman->control_matrix, control, kalman->state_pre, kalman->state_pre ); - - /* update error covariance matrices */ - /* temp1 = A*P(k) */ - cvMatMulAdd( kalman->transition_matrix, kalman->error_cov_post, 0, kalman->temp1 ); - - /* P'(k) = temp1*At + Q */ - cvGEMM( kalman->temp1, kalman->transition_matrix, 1, kalman->process_noise_cov, 1, - kalman->error_cov_pre, CV_GEMM_B_T ); - - /* handle the case when there will be measurement before the next predict */ - cvCopy(kalman->state_pre, kalman->state_post); - - return kalman->state_pre; -} - - -CV_IMPL const CvMat* -cvKalmanCorrect( CvKalman* kalman, const CvMat* measurement ) -{ - if( !kalman || !measurement ) - CV_Error( CV_StsNullPtr, "" ); - - /* temp2 = H*P'(k) */ - cvMatMulAdd( kalman->measurement_matrix, kalman->error_cov_pre, 0, kalman->temp2 ); - /* temp3 = temp2*Ht + R */ - cvGEMM( kalman->temp2, kalman->measurement_matrix, 1, - kalman->measurement_noise_cov, 1, kalman->temp3, CV_GEMM_B_T ); - - /* temp4 = inv(temp3)*temp2 = Kt(k) */ - cvSolve( kalman->temp3, kalman->temp2, kalman->temp4, CV_SVD ); - - /* K(k) */ - cvTranspose( kalman->temp4, kalman->gain ); - - /* temp5 = z(k) - H*x'(k) */ - cvGEMM( kalman->measurement_matrix, kalman->state_pre, -1, measurement, 1, kalman->temp5 ); - - /* x(k) = x'(k) + K(k)*temp5 */ - cvMatMulAdd( kalman->gain, kalman->temp5, kalman->state_pre, kalman->state_post ); - - /* P(k) = P'(k) - K(k)*temp2 */ - cvGEMM( kalman->gain, kalman->temp2, -1, kalman->error_cov_pre, 1, - kalman->error_cov_post, 0 ); - - return kalman->state_post; -} - namespace cv { diff --git a/modules/video/src/lkpyramid.cpp b/modules/video/src/lkpyramid.cpp index 28477100fe..2fef04b483 100644 --- a/modules/video/src/lkpyramid.cpp +++ b/modules/video/src/lkpyramid.cpp @@ -7,10 +7,11 @@ // copy or use the software. // // -// Intel License Agreement +// License Agreement // For Open Source Computer Vision Library // // Copyright (C) 2000, Intel Corporation, all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. // Third party copyrights are property of their respective owners. // // Redistribution and use in source and binary forms, with or without modification, @@ -23,7 +24,7 @@ // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // -// * The name of Intel Corporation may not be used to endorse or promote products +// * The name of the copyright holders may not be used to endorse or promote products // derived from this software without specific prior written permission. // // This software is provided by the copyright holders and contributors "as is" and @@ -156,6 +157,14 @@ cv::detail::LKTrackerInvoker::LKTrackerInvoker( minEigThreshold = _minEigThreshold; } +#if defined __arm__ && !CV_NEON +typedef int64 acctype; +typedef int itemtype; +#else +typedef float acctype; +typedef float itemtype; +#endif + void cv::detail::LKTrackerInvoker::operator()(const BlockedRange& range) const { Point2f halfWin((winSize.width-1)*0.5f, (winSize.height-1)*0.5f); @@ -215,7 +224,8 @@ void cv::detail::LKTrackerInvoker::operator()(const BlockedRange& range) const int dstep = (int)(derivI.step/derivI.elemSize1()); int stepI = (int)(I.step/I.elemSize1()); int stepJ = (int)(J.step/J.elemSize1()); - float A11 = 0, A12 = 0, A22 = 0; + acctype iA11 = 0, iA12 = 0, iA22 = 0; + float A11, A12, A22; #if CV_SSE2 __m128i qw0 = _mm_set1_epi32(iw00 + (iw01 << 16)); @@ -292,9 +302,9 @@ void cv::detail::LKTrackerInvoker::operator()(const BlockedRange& range) const dIptr[0] = (short)ixval; dIptr[1] = (short)iyval; - A11 += (float)(ixval*ixval); - A12 += (float)(ixval*iyval); - A22 += (float)(iyval*iyval); + iA11 += (itemtype)(ixval*ixval); + iA12 += (itemtype)(ixval*iyval); + iA22 += (itemtype)(iyval*iyval); } } @@ -303,14 +313,14 @@ void cv::detail::LKTrackerInvoker::operator()(const BlockedRange& range) const _mm_store_ps(A11buf, qA11); _mm_store_ps(A12buf, qA12); _mm_store_ps(A22buf, qA22); - A11 += A11buf[0] + A11buf[1] + A11buf[2] + A11buf[3]; - A12 += A12buf[0] + A12buf[1] + A12buf[2] + A12buf[3]; - A22 += A22buf[0] + A22buf[1] + A22buf[2] + A22buf[3]; + iA11 += A11buf[0] + A11buf[1] + A11buf[2] + A11buf[3]; + iA12 += A12buf[0] + A12buf[1] + A12buf[2] + A12buf[3]; + iA22 += A22buf[0] + A22buf[1] + A22buf[2] + A22buf[3]; #endif - A11 *= FLT_SCALE; - A12 *= FLT_SCALE; - A22 *= FLT_SCALE; + A11 = iA11*FLT_SCALE; + A12 = iA12*FLT_SCALE; + A22 = iA22*FLT_SCALE; float D = A11*A22 - A12*A12; float minEig = (A22 + A11 - std::sqrt((A11-A22)*(A11-A22) + @@ -350,7 +360,8 @@ void cv::detail::LKTrackerInvoker::operator()(const BlockedRange& range) const iw01 = cvRound(a*(1.f - b)*(1 << W_BITS)); iw10 = cvRound((1.f - a)*b*(1 << W_BITS)); iw11 = (1 << W_BITS) - iw00 - iw01 - iw10; - float b1 = 0, b2 = 0; + acctype ib1 = 0, ib2 = 0; + float b1, b2; #if CV_SSE2 qw0 = _mm_set1_epi32(iw00 + (iw01 << 16)); qw1 = _mm_set1_epi32(iw10 + (iw11 << 16)); @@ -405,20 +416,20 @@ void cv::detail::LKTrackerInvoker::operator()(const BlockedRange& range) const int diff = CV_DESCALE(Jptr[x]*iw00 + Jptr[x+cn]*iw01 + Jptr[x+stepJ]*iw10 + Jptr[x+stepJ+cn]*iw11, W_BITS1-5) - Iptr[x]; - b1 += (float)(diff*dIptr[0]); - b2 += (float)(diff*dIptr[1]); + ib1 += (itemtype)(diff*dIptr[0]); + ib2 += (itemtype)(diff*dIptr[1]); } } #if CV_SSE2 float CV_DECL_ALIGNED(16) bbuf[4]; _mm_store_ps(bbuf, _mm_add_ps(qb0, qb1)); - b1 += bbuf[0] + bbuf[2]; - b2 += bbuf[1] + bbuf[3]; + ib1 += bbuf[0] + bbuf[2]; + ib2 += bbuf[1] + bbuf[3]; #endif - b1 *= FLT_SCALE; - b2 *= FLT_SCALE; + b1 = ib1*FLT_SCALE; + b2 = ib2*FLT_SCALE; Point2f delta( (float)((A12*b2 - A22*b1) * D), (float)((A12*b1 - A11*b2) * D)); @@ -741,870 +752,31 @@ void cv::calcOpticalFlowPyrLK( InputArray _prevImg, InputArray _nextImg, } } - -static int icvMinimalPyramidSize( CvSize imgSize ) +namespace cv { - return cvAlign(imgSize.width,8) * imgSize.height / 3; -} - static void -icvInitPyramidalAlgorithm( const CvMat* imgA, const CvMat* imgB, - CvMat* pyrA, CvMat* pyrB, - int level, CvTermCriteria * criteria, - int max_iters, int flags, - uchar *** imgI, uchar *** imgJ, - int **step, CvSize** size, - double **scale, cv::AutoBuffer* buffer ) +getRTMatrix( const Point2f* a, const Point2f* b, + int count, Mat& M, bool fullAffine ) { - const int ALIGN = 8; - int pyrBytes, bufferBytes = 0, elem_size; - int level1 = level + 1; + CV_Assert( M.isContinuous() ); - int i; - CvSize imgSize, levelSize; - - *imgI = *imgJ = 0; - *step = 0; - *scale = 0; - *size = 0; - - /* check input arguments */ - if( ((flags & CV_LKFLOW_PYR_A_READY) != 0 && !pyrA) || - ((flags & CV_LKFLOW_PYR_B_READY) != 0 && !pyrB) ) - CV_Error( CV_StsNullPtr, "Some of the precomputed pyramids are missing" ); - - if( level < 0 ) - CV_Error( CV_StsOutOfRange, "The number of pyramid levels is negative" ); - - switch( criteria->type ) + if( fullAffine ) { - case CV_TERMCRIT_ITER: - criteria->epsilon = 0.f; - break; - case CV_TERMCRIT_EPS: - criteria->max_iter = max_iters; - break; - case CV_TERMCRIT_ITER | CV_TERMCRIT_EPS: - break; - default: - assert( 0 ); - CV_Error( CV_StsBadArg, "Invalid termination criteria" ); - } + double sa[6][6]={{0.}}, sb[6]={0.}; + Mat A( 6, 6, CV_64F, &sa[0][0] ), B( 6, 1, CV_64F, sb ); + Mat MM = M.reshape(1, 6); - /* compare squared values */ - criteria->epsilon *= criteria->epsilon; - - /* set pointers and step for every level */ - pyrBytes = 0; - - imgSize = cvGetSize(imgA); - elem_size = CV_ELEM_SIZE(imgA->type); - levelSize = imgSize; - - for( i = 1; i < level1; i++ ) - { - levelSize.width = (levelSize.width + 1) >> 1; - levelSize.height = (levelSize.height + 1) >> 1; - - int tstep = cvAlign(levelSize.width,ALIGN) * elem_size; - pyrBytes += tstep * levelSize.height; - } - - assert( pyrBytes <= imgSize.width * imgSize.height * elem_size * 4 / 3 ); - - /* buffer_size = + */ - bufferBytes = (int)((level1 >= 0) * ((pyrA->data.ptr == 0) + - (pyrB->data.ptr == 0)) * pyrBytes + - (sizeof(imgI[0][0]) * 2 + sizeof(step[0][0]) + - sizeof(size[0][0]) + sizeof(scale[0][0])) * level1); - - buffer->allocate( bufferBytes ); - - *imgI = (uchar **) (uchar*)(*buffer); - *imgJ = *imgI + level1; - *step = (int *) (*imgJ + level1); - *scale = (double *) (*step + level1); - *size = (CvSize *)(*scale + level1); - - imgI[0][0] = imgA->data.ptr; - imgJ[0][0] = imgB->data.ptr; - step[0][0] = imgA->step; - scale[0][0] = 1; - size[0][0] = imgSize; - - if( level > 0 ) - { - uchar *bufPtr = (uchar *) (*size + level1); - uchar *ptrA = pyrA->data.ptr; - uchar *ptrB = pyrB->data.ptr; - - if( !ptrA ) + for( int i = 0; i < count; i++ ) { - ptrA = bufPtr; - bufPtr += pyrBytes; - } + sa[0][0] += a[i].x*a[i].x; + sa[0][1] += a[i].y*a[i].x; + sa[0][2] += a[i].x; - if( !ptrB ) - ptrB = bufPtr; + sa[1][1] += a[i].y*a[i].y; + sa[1][2] += a[i].y; - levelSize = imgSize; - - /* build pyramids for both frames */ - for( i = 1; i <= level; i++ ) - { - int levelBytes; - CvMat prev_level, next_level; - - levelSize.width = (levelSize.width + 1) >> 1; - levelSize.height = (levelSize.height + 1) >> 1; - - size[0][i] = levelSize; - step[0][i] = cvAlign( levelSize.width, ALIGN ) * elem_size; - scale[0][i] = scale[0][i - 1] * 0.5; - - levelBytes = step[0][i] * levelSize.height; - imgI[0][i] = (uchar *) ptrA; - ptrA += levelBytes; - - if( !(flags & CV_LKFLOW_PYR_A_READY) ) - { - prev_level = cvMat( size[0][i-1].height, size[0][i-1].width, CV_8UC1 ); - next_level = cvMat( size[0][i].height, size[0][i].width, CV_8UC1 ); - cvSetData( &prev_level, imgI[0][i-1], step[0][i-1] ); - cvSetData( &next_level, imgI[0][i], step[0][i] ); - cvPyrDown( &prev_level, &next_level ); - } - - imgJ[0][i] = (uchar *) ptrB; - ptrB += levelBytes; - - if( !(flags & CV_LKFLOW_PYR_B_READY) ) - { - prev_level = cvMat( size[0][i-1].height, size[0][i-1].width, CV_8UC1 ); - next_level = cvMat( size[0][i].height, size[0][i].width, CV_8UC1 ); - cvSetData( &prev_level, imgJ[0][i-1], step[0][i-1] ); - cvSetData( &next_level, imgJ[0][i], step[0][i] ); - cvPyrDown( &prev_level, &next_level ); - } - } - } -} - - -/* compute dI/dx and dI/dy */ -static void -icvCalcIxIy_32f( const float* src, int src_step, float* dstX, float* dstY, int dst_step, - CvSize src_size, const float* smooth_k, float* buffer0 ) -{ - int src_width = src_size.width, dst_width = src_size.width-2; - int x, height = src_size.height - 2; - float* buffer1 = buffer0 + src_width; - - src_step /= sizeof(src[0]); - dst_step /= sizeof(dstX[0]); - - for( ; height--; src += src_step, dstX += dst_step, dstY += dst_step ) - { - const float* src2 = src + src_step; - const float* src3 = src + src_step*2; - - for( x = 0; x < src_width; x++ ) - { - float t0 = (src3[x] + src[x])*smooth_k[0] + src2[x]*smooth_k[1]; - float t1 = src3[x] - src[x]; - buffer0[x] = t0; buffer1[x] = t1; - } - - for( x = 0; x < dst_width; x++ ) - { - float t0 = buffer0[x+2] - buffer0[x]; - float t1 = (buffer1[x] + buffer1[x+2])*smooth_k[0] + buffer1[x+1]*smooth_k[1]; - dstX[x] = t0; dstY[x] = t1; - } - } -} - - -#undef CV_8TO32F -#define CV_8TO32F(a) (a) - -static const void* -icvAdjustRect( const void* srcptr, int src_step, int pix_size, - CvSize src_size, CvSize win_size, - CvPoint ip, CvRect* pRect ) -{ - CvRect rect; - const char* src = (const char*)srcptr; - - if( ip.x >= 0 ) - { - src += ip.x*pix_size; - rect.x = 0; - } - else - { - rect.x = -ip.x; - if( rect.x > win_size.width ) - rect.x = win_size.width; - } - - if( ip.x + win_size.width < src_size.width ) - rect.width = win_size.width; - else - { - rect.width = src_size.width - ip.x - 1; - if( rect.width < 0 ) - { - src += rect.width*pix_size; - rect.width = 0; - } - assert( rect.width <= win_size.width ); - } - - if( ip.y >= 0 ) - { - src += ip.y * src_step; - rect.y = 0; - } - else - rect.y = -ip.y; - - if( ip.y + win_size.height < src_size.height ) - rect.height = win_size.height; - else - { - rect.height = src_size.height - ip.y - 1; - if( rect.height < 0 ) - { - src += rect.height*src_step; - rect.height = 0; - } - } - - *pRect = rect; - return src - rect.x*pix_size; -} - - -static CvStatus CV_STDCALL icvGetRectSubPix_8u32f_C1R -( const uchar* src, int src_step, CvSize src_size, - float* dst, int dst_step, CvSize win_size, CvPoint2D32f center ) -{ - CvPoint ip; - float a12, a22, b1, b2; - float a, b; - double s = 0; - int i, j; - - center.x -= (win_size.width-1)*0.5f; - center.y -= (win_size.height-1)*0.5f; - - ip.x = cvFloor( center.x ); - ip.y = cvFloor( center.y ); - - if( win_size.width <= 0 || win_size.height <= 0 ) - return CV_BADRANGE_ERR; - - a = center.x - ip.x; - b = center.y - ip.y; - a = MAX(a,0.0001f); - a12 = a*(1.f-b); - a22 = a*b; - b1 = 1.f - b; - b2 = b; - s = (1. - a)/a; - - src_step /= sizeof(src[0]); - dst_step /= sizeof(dst[0]); - - if( 0 <= ip.x && ip.x + win_size.width < src_size.width && - 0 <= ip.y && ip.y + win_size.height < src_size.height ) - { - // extracted rectangle is totally inside the image - src += ip.y * src_step + ip.x; - -#if 0 - if( icvCopySubpix_8u32f_C1R_p && - icvCopySubpix_8u32f_C1R_p( src, src_step, dst, - dst_step*sizeof(dst[0]), win_size, a, b ) >= 0 ) - return CV_OK; -#endif - - for( ; win_size.height--; src += src_step, dst += dst_step ) - { - float prev = (1 - a)*(b1*CV_8TO32F(src[0]) + b2*CV_8TO32F(src[src_step])); - for( j = 0; j < win_size.width; j++ ) - { - float t = a12*CV_8TO32F(src[j+1]) + a22*CV_8TO32F(src[j+1+src_step]); - dst[j] = prev + t; - prev = (float)(t*s); - } - } - } - else - { - CvRect r; - - src = (const uchar*)icvAdjustRect( src, src_step*sizeof(*src), - sizeof(*src), src_size, win_size,ip, &r); - - for( i = 0; i < win_size.height; i++, dst += dst_step ) - { - const uchar *src2 = src + src_step; - - if( i < r.y || i >= r.height ) - src2 -= src_step; - - for( j = 0; j < r.x; j++ ) - { - float s0 = CV_8TO32F(src[r.x])*b1 + - CV_8TO32F(src2[r.x])*b2; - - dst[j] = (float)(s0); - } - - if( j < r.width ) - { - float prev = (1 - a)*(b1*CV_8TO32F(src[j]) + b2*CV_8TO32F(src2[j])); - - for( ; j < r.width; j++ ) - { - float t = a12*CV_8TO32F(src[j+1]) + a22*CV_8TO32F(src2[j+1]); - dst[j] = prev + t; - prev = (float)(t*s); - } - } - - for( ; j < win_size.width; j++ ) - { - float s0 = CV_8TO32F(src[r.width])*b1 + - CV_8TO32F(src2[r.width])*b2; - - dst[j] = (float)(s0); - } - - if( i < r.height ) - src = src2; - } - } - - return CV_OK; -} - - -#define ICV_32F8U(x) ((uchar)cvRound(x)) - -#define ICV_DEF_GET_QUADRANGLE_SUB_PIX_FUNC( flavor, srctype, dsttype, \ -worktype, cast_macro, cvt ) \ -static CvStatus CV_STDCALL \ -icvGetQuadrangleSubPix_##flavor##_C1R \ -( const srctype * src, int src_step, CvSize src_size, \ -dsttype *dst, int dst_step, CvSize win_size, const float *matrix ) \ -{ \ -int x, y; \ -double dx = (win_size.width - 1)*0.5; \ -double dy = (win_size.height - 1)*0.5; \ -double A11 = matrix[0], A12 = matrix[1], A13 = matrix[2]-A11*dx-A12*dy; \ -double A21 = matrix[3], A22 = matrix[4], A23 = matrix[5]-A21*dx-A22*dy; \ -\ -src_step /= sizeof(srctype); \ -dst_step /= sizeof(dsttype); \ -\ -for( y = 0; y < win_size.height; y++, dst += dst_step ) \ -{ \ -double xs = A12*y + A13; \ -double ys = A22*y + A23; \ -double xe = A11*(win_size.width-1) + A12*y + A13; \ -double ye = A21*(win_size.width-1) + A22*y + A23; \ -\ -if( (unsigned)(cvFloor(xs)-1) < (unsigned)(src_size.width - 3) && \ -(unsigned)(cvFloor(ys)-1) < (unsigned)(src_size.height - 3) && \ -(unsigned)(cvFloor(xe)-1) < (unsigned)(src_size.width - 3) && \ -(unsigned)(cvFloor(ye)-1) < (unsigned)(src_size.height - 3)) \ -{ \ -for( x = 0; x < win_size.width; x++ ) \ -{ \ -int ixs = cvFloor( xs ); \ -int iys = cvFloor( ys ); \ -const srctype *ptr = src + src_step*iys + ixs; \ -double a = xs - ixs, b = ys - iys, a1 = 1.f - a; \ -worktype p0 = cvt(ptr[0])*a1 + cvt(ptr[1])*a; \ -worktype p1 = cvt(ptr[src_step])*a1 + cvt(ptr[src_step+1])*a;\ -xs += A11; \ -ys += A21; \ -\ -dst[x] = cast_macro(p0 + b * (p1 - p0)); \ -} \ -} \ -else \ -{ \ -for( x = 0; x < win_size.width; x++ ) \ -{ \ -int ixs = cvFloor( xs ), iys = cvFloor( ys ); \ -double a = xs - ixs, b = ys - iys, a1 = 1.f - a; \ -const srctype *ptr0, *ptr1; \ -worktype p0, p1; \ -xs += A11; ys += A21; \ -\ -if( (unsigned)iys < (unsigned)(src_size.height-1) ) \ -ptr0 = src + src_step*iys, ptr1 = ptr0 + src_step; \ -else \ -ptr0 = ptr1 = src + (iys < 0 ? 0 : src_size.height-1)*src_step; \ -\ -if( (unsigned)ixs < (unsigned)(src_size.width-1) ) \ -{ \ -p0 = cvt(ptr0[ixs])*a1 + cvt(ptr0[ixs+1])*a; \ -p1 = cvt(ptr1[ixs])*a1 + cvt(ptr1[ixs+1])*a; \ -} \ -else \ -{ \ -ixs = ixs < 0 ? 0 : src_size.width - 1; \ -p0 = cvt(ptr0[ixs]); p1 = cvt(ptr1[ixs]); \ -} \ -dst[x] = cast_macro(p0 + b * (p1 - p0)); \ -} \ -} \ -} \ -\ -return CV_OK; \ -} - -ICV_DEF_GET_QUADRANGLE_SUB_PIX_FUNC( 8u32f, uchar, float, double, CV_CAST_32F, CV_8TO32F ) - - -CV_IMPL void -cvCalcOpticalFlowPyrLK( const void* arrA, const void* arrB, - void* /*pyrarrA*/, void* /*pyrarrB*/, - const CvPoint2D32f * featuresA, - CvPoint2D32f * featuresB, - int count, CvSize winSize, int level, - char *status, float *error, - CvTermCriteria criteria, int flags ) -{ - if( count <= 0 ) - return; - CV_Assert( featuresA && featuresB ); - cv::Mat A = cv::cvarrToMat(arrA), B = cv::cvarrToMat(arrB); - cv::Mat ptA(count, 1, CV_32FC2, (void*)featuresA); - cv::Mat ptB(count, 1, CV_32FC2, (void*)featuresB); - cv::Mat st, err; - - if( status ) - st = cv::Mat(count, 1, CV_8U, (void*)status); - if( error ) - err = cv::Mat(count, 1, CV_32F, (void*)error); - cv::calcOpticalFlowPyrLK( A, B, ptA, ptB, st, - error ? cv::_OutputArray(err) : cv::noArray(), - winSize, level, criteria, flags); -} - - -/* Affine tracking algorithm */ - -CV_IMPL void -cvCalcAffineFlowPyrLK( const void* arrA, const void* arrB, - void* pyrarrA, void* pyrarrB, - const CvPoint2D32f * featuresA, - CvPoint2D32f * featuresB, - float *matrices, int count, - CvSize winSize, int level, - char *status, float *error, - CvTermCriteria criteria, int flags ) -{ - const int MAX_ITERS = 100; - - cv::AutoBuffer _status; - cv::AutoBuffer buffer; - cv::AutoBuffer pyr_buffer; - - CvMat stubA, *imgA = (CvMat*)arrA; - CvMat stubB, *imgB = (CvMat*)arrB; - CvMat pstubA, *pyrA = (CvMat*)pyrarrA; - CvMat pstubB, *pyrB = (CvMat*)pyrarrB; - - static const float smoothKernel[] = { 0.09375, 0.3125, 0.09375 }; /* 3/32, 10/32, 3/32 */ - - int bufferBytes = 0; - - uchar **imgI = 0; - uchar **imgJ = 0; - int *step = 0; - double *scale = 0; - CvSize* size = 0; - - float *patchI; - float *patchJ; - float *Ix; - float *Iy; - - int i, j, k, l; - - CvSize patchSize = cvSize( winSize.width * 2 + 1, winSize.height * 2 + 1 ); - int patchLen = patchSize.width * patchSize.height; - int patchStep = patchSize.width * sizeof( patchI[0] ); - - CvSize srcPatchSize = cvSize( patchSize.width + 2, patchSize.height + 2 ); - int srcPatchLen = srcPatchSize.width * srcPatchSize.height; - int srcPatchStep = srcPatchSize.width * sizeof( patchI[0] ); - CvSize imgSize; - float eps = (float)MIN(winSize.width, winSize.height); - - imgA = cvGetMat( imgA, &stubA ); - imgB = cvGetMat( imgB, &stubB ); - - if( CV_MAT_TYPE( imgA->type ) != CV_8UC1 ) - CV_Error( CV_StsUnsupportedFormat, "" ); - - if( !CV_ARE_TYPES_EQ( imgA, imgB )) - CV_Error( CV_StsUnmatchedFormats, "" ); - - if( !CV_ARE_SIZES_EQ( imgA, imgB )) - CV_Error( CV_StsUnmatchedSizes, "" ); - - if( imgA->step != imgB->step ) - CV_Error( CV_StsUnmatchedSizes, "imgA and imgB must have equal steps" ); - - if( !matrices ) - CV_Error( CV_StsNullPtr, "" ); - - imgSize = cvGetMatSize( imgA ); - - if( pyrA ) - { - pyrA = cvGetMat( pyrA, &pstubA ); - - if( pyrA->step*pyrA->height < icvMinimalPyramidSize( imgSize ) ) - CV_Error( CV_StsBadArg, "pyramid A has insufficient size" ); - } - else - { - pyrA = &pstubA; - pyrA->data.ptr = 0; - } - - if( pyrB ) - { - pyrB = cvGetMat( pyrB, &pstubB ); - - if( pyrB->step*pyrB->height < icvMinimalPyramidSize( imgSize ) ) - CV_Error( CV_StsBadArg, "pyramid B has insufficient size" ); - } - else - { - pyrB = &pstubB; - pyrB->data.ptr = 0; - } - - if( count == 0 ) - return; - - /* check input arguments */ - if( !featuresA || !featuresB || !matrices ) - CV_Error( CV_StsNullPtr, "" ); - - if( winSize.width <= 1 || winSize.height <= 1 ) - CV_Error( CV_StsOutOfRange, "the search window is too small" ); - - if( count < 0 ) - CV_Error( CV_StsOutOfRange, "" ); - - icvInitPyramidalAlgorithm( imgA, imgB, - pyrA, pyrB, level, &criteria, MAX_ITERS, flags, - &imgI, &imgJ, &step, &size, &scale, &pyr_buffer ); - - /* buffer_size = + */ - bufferBytes = (srcPatchLen + patchLen*3)*sizeof(patchI[0]) + (36*2 + 6)*sizeof(double); - - buffer.allocate(bufferBytes); - - if( !status ) - { - _status.allocate(count); - status = _status; - } - - patchI = (float *)(uchar*)buffer; - patchJ = patchI + srcPatchLen; - Ix = patchJ + patchLen; - Iy = Ix + patchLen; - - if( status ) - memset( status, 1, count ); - - if( !(flags & CV_LKFLOW_INITIAL_GUESSES) ) - { - memcpy( featuresB, featuresA, count * sizeof( featuresA[0] )); - for( i = 0; i < count * 4; i += 4 ) - { - matrices[i] = matrices[i + 3] = 1.f; - matrices[i + 1] = matrices[i + 2] = 0.f; - } - } - - for( i = 0; i < count; i++ ) - { - featuresB[i].x = (float)(featuresB[i].x * scale[level] * 0.5); - featuresB[i].y = (float)(featuresB[i].y * scale[level] * 0.5); - } - - /* do processing from top pyramid level (smallest image) - to the bottom (original image) */ - for( l = level; l >= 0; l-- ) - { - CvSize levelSize = size[l]; - int levelStep = step[l]; - - /* find flow for each given point at the particular level */ - for( i = 0; i < count; i++ ) - { - CvPoint2D32f u; - float Av[6]; - double G[36]; - double meanI = 0, meanJ = 0; - int x, y; - int pt_status = status[i]; - CvMat mat; - - if( !pt_status ) - continue; - - Av[0] = matrices[i*4]; - Av[1] = matrices[i*4+1]; - Av[3] = matrices[i*4+2]; - Av[4] = matrices[i*4+3]; - - Av[2] = featuresB[i].x += featuresB[i].x; - Av[5] = featuresB[i].y += featuresB[i].y; - - u.x = (float) (featuresA[i].x * scale[l]); - u.y = (float) (featuresA[i].y * scale[l]); - - if( u.x < -eps || u.x >= levelSize.width+eps || - u.y < -eps || u.y >= levelSize.height+eps || - icvGetRectSubPix_8u32f_C1R( imgI[l], levelStep, - levelSize, patchI, srcPatchStep, srcPatchSize, u ) < 0 ) - { - /* point is outside the image. take the next */ - if( l == 0 ) - status[i] = 0; - continue; - } - - icvCalcIxIy_32f( patchI, srcPatchStep, Ix, Iy, - (srcPatchSize.width-2)*sizeof(patchI[0]), srcPatchSize, - smoothKernel, patchJ ); - - /* repack patchI (remove borders) */ - for( k = 0; k < patchSize.height; k++ ) - memcpy( patchI + k * patchSize.width, - patchI + (k + 1) * srcPatchSize.width + 1, patchStep ); - - memset( G, 0, sizeof( G )); - - /* calculate G matrix */ - for( y = -winSize.height, k = 0; y <= winSize.height; y++ ) - { - for( x = -winSize.width; x <= winSize.width; x++, k++ ) - { - double ixix = ((double) Ix[k]) * Ix[k]; - double ixiy = ((double) Ix[k]) * Iy[k]; - double iyiy = ((double) Iy[k]) * Iy[k]; - - double xx, xy, yy; - - G[0] += ixix; - G[1] += ixiy; - G[2] += x * ixix; - G[3] += y * ixix; - G[4] += x * ixiy; - G[5] += y * ixiy; - - // G[6] == G[1] - G[7] += iyiy; - // G[8] == G[4] - // G[9] == G[5] - G[10] += x * iyiy; - G[11] += y * iyiy; - - xx = x * x; - xy = x * y; - yy = y * y; - - // G[12] == G[2] - // G[13] == G[8] == G[4] - G[14] += xx * ixix; - G[15] += xy * ixix; - G[16] += xx * ixiy; - G[17] += xy * ixiy; - - // G[18] == G[3] - // G[19] == G[9] - // G[20] == G[15] - G[21] += yy * ixix; - // G[22] == G[17] - G[23] += yy * ixiy; - - // G[24] == G[4] - // G[25] == G[10] - // G[26] == G[16] - // G[27] == G[22] - G[28] += xx * iyiy; - G[29] += xy * iyiy; - - // G[30] == G[5] - // G[31] == G[11] - // G[32] == G[17] - // G[33] == G[23] - // G[34] == G[29] - G[35] += yy * iyiy; - - meanI += patchI[k]; - } - } - - meanI /= patchSize.width*patchSize.height; - - G[8] = G[4]; - G[9] = G[5]; - G[22] = G[17]; - - // fill part of G below its diagonal - for( y = 1; y < 6; y++ ) - for( x = 0; x < y; x++ ) - G[y * 6 + x] = G[x * 6 + y]; - - cvInitMatHeader( &mat, 6, 6, CV_64FC1, G ); - - if( cvInvert( &mat, &mat, CV_SVD ) < 1e-4 ) - { - /* bad matrix. take the next point */ - if( l == 0 ) - status[i] = 0; - continue; - } - - for( j = 0; j < criteria.max_iter; j++ ) - { - double b[6] = {0,0,0,0,0,0}, eta[6]; - double t0, t1, s = 0; - - if( Av[2] < -eps || Av[2] >= levelSize.width+eps || - Av[5] < -eps || Av[5] >= levelSize.height+eps || - icvGetQuadrangleSubPix_8u32f_C1R( imgJ[l], levelStep, - levelSize, patchJ, patchStep, patchSize, Av ) < 0 ) - { - pt_status = 0; - break; - } - - for( y = -winSize.height, k = 0, meanJ = 0; y <= winSize.height; y++ ) - for( x = -winSize.width; x <= winSize.width; x++, k++ ) - meanJ += patchJ[k]; - - meanJ = meanJ / (patchSize.width * patchSize.height) - meanI; - - for( y = -winSize.height, k = 0; y <= winSize.height; y++ ) - { - for( x = -winSize.width; x <= winSize.width; x++, k++ ) - { - double t = patchI[k] - patchJ[k] + meanJ; - double ixt = Ix[k] * t; - double iyt = Iy[k] * t; - - s += t; - - b[0] += ixt; - b[1] += iyt; - b[2] += x * ixt; - b[3] += y * ixt; - b[4] += x * iyt; - b[5] += y * iyt; - } - } - - for( k = 0; k < 6; k++ ) - eta[k] = G[k*6]*b[0] + G[k*6+1]*b[1] + G[k*6+2]*b[2] + - G[k*6+3]*b[3] + G[k*6+4]*b[4] + G[k*6+5]*b[5]; - - Av[2] = (float)(Av[2] + Av[0] * eta[0] + Av[1] * eta[1]); - Av[5] = (float)(Av[5] + Av[3] * eta[0] + Av[4] * eta[1]); - - t0 = Av[0] * (1 + eta[2]) + Av[1] * eta[4]; - t1 = Av[0] * eta[3] + Av[1] * (1 + eta[5]); - Av[0] = (float)t0; - Av[1] = (float)t1; - - t0 = Av[3] * (1 + eta[2]) + Av[4] * eta[4]; - t1 = Av[3] * eta[3] + Av[4] * (1 + eta[5]); - Av[3] = (float)t0; - Av[4] = (float)t1; - - if( eta[0] * eta[0] + eta[1] * eta[1] < criteria.epsilon ) - break; - } - - if( pt_status != 0 || l == 0 ) - { - status[i] = (char)pt_status; - featuresB[i].x = Av[2]; - featuresB[i].y = Av[5]; - - matrices[i*4] = Av[0]; - matrices[i*4+1] = Av[1]; - matrices[i*4+2] = Av[3]; - matrices[i*4+3] = Av[4]; - } - - if( pt_status && l == 0 && error ) - { - /* calc error */ - double err = 0; - - for( y = 0, k = 0; y < patchSize.height; y++ ) - { - for( x = 0; x < patchSize.width; x++, k++ ) - { - double t = patchI[k] - patchJ[k] + meanJ; - err += t * t; - } - } - error[i] = (float)std::sqrt(err); - } - } - } -} - - - -static void -icvGetRTMatrix( const CvPoint2D32f* a, const CvPoint2D32f* b, - int count, CvMat* M, int full_affine ) -{ - if( full_affine ) - { - double sa[36], sb[6]; - CvMat A = cvMat( 6, 6, CV_64F, sa ), B = cvMat( 6, 1, CV_64F, sb ); - CvMat MM = cvMat( 6, 1, CV_64F, M->data.db ); - - int i; - - memset( sa, 0, sizeof(sa) ); - memset( sb, 0, sizeof(sb) ); - - for( i = 0; i < count; i++ ) - { - sa[0] += a[i].x*a[i].x; - sa[1] += a[i].y*a[i].x; - sa[2] += a[i].x; - - sa[6] += a[i].x*a[i].y; - sa[7] += a[i].y*a[i].y; - sa[8] += a[i].y; - - sa[12] += a[i].x; - sa[13] += a[i].y; - sa[14] += 1; + sa[2][2] += 1; sb[0] += a[i].x*b[i].x; sb[1] += a[i].y*b[i].x; @@ -1614,50 +786,35 @@ icvGetRTMatrix( const CvPoint2D32f* a, const CvPoint2D32f* b, sb[5] += b[i].y; } - sa[21] = sa[0]; - sa[22] = sa[1]; - sa[23] = sa[2]; - sa[27] = sa[6]; - sa[28] = sa[7]; - sa[29] = sa[8]; - sa[33] = sa[12]; - sa[34] = sa[13]; - sa[35] = sa[14]; + sa[3][4] = sa[4][3] = sa[1][0] = sa[0][1]; + sa[3][5] = sa[5][3] = sa[2][0] = sa[0][2]; + sa[4][5] = sa[5][4] = sa[2][1] = sa[1][2]; - cvSolve( &A, &B, &MM, CV_SVD ); + sa[3][3] = sa[0][0]; + sa[4][4] = sa[1][1]; + sa[5][5] = sa[2][2]; + + solve( A, B, MM, DECOMP_EIG ); } else { - double sa[16], sb[4], m[4], *om = M->data.db; - CvMat A = cvMat( 4, 4, CV_64F, sa ), B = cvMat( 4, 1, CV_64F, sb ); - CvMat MM = cvMat( 4, 1, CV_64F, m ); + double sa[4][4]={{0.}}, sb[4]={0.}, m[4]; + Mat A( 4, 4, CV_64F, sa ), B( 4, 1, CV_64F, sb ); + Mat MM( 4, 1, CV_64F, m ); - int i; - - memset( sa, 0, sizeof(sa) ); - memset( sb, 0, sizeof(sb) ); - - for( i = 0; i < count; i++ ) + for( int i = 0; i < count; i++ ) { - sa[0] += a[i].x*a[i].x + a[i].y*a[i].y; - sa[1] += 0; - sa[2] += a[i].x; - sa[3] += a[i].y; + sa[0][0] += a[i].x*a[i].x + a[i].y*a[i].y; + sa[0][2] += a[i].x; + sa[0][3] += a[i].y; - sa[4] += 0; - sa[5] += a[i].x*a[i].x + a[i].y*a[i].y; - sa[6] += -a[i].y; - sa[7] += a[i].x; - sa[8] += a[i].x; - sa[9] += -a[i].y; - sa[10] += 1; - sa[11] += 0; + sa[2][1] += -a[i].y; + sa[2][2] += 1; - sa[12] += a[i].y; - sa[13] += a[i].x; - sa[14] += 0; - sa[15] += 1; + sa[3][0] += a[i].y; + sa[3][1] += a[i].x; + sa[3][3] += 1; sb[0] += a[i].x*b[i].x + a[i].y*b[i].y; sb[1] += a[i].x*b[i].y - a[i].y*b[i].x; @@ -1665,8 +822,15 @@ icvGetRTMatrix( const CvPoint2D32f* a, const CvPoint2D32f* b, sb[3] += b[i].y; } - cvSolve( &A, &B, &MM, CV_SVD ); + sa[1][1] = sa[0][0]; + sa[2][1] = sa[1][2] = -sa[0][3]; + sa[3][1] = sa[1][3] = sa[2][0] = sa[0][2]; + sa[2][2] = sa[3][3] = count; + sa[3][0] = sa[0][3]; + solve( A, B, MM, DECOMP_EIG ); + + double* om = M.ptr(); om[0] = om[4] = m[0]; om[1] = -m[1]; om[3] = m[1]; @@ -1675,88 +839,84 @@ icvGetRTMatrix( const CvPoint2D32f* a, const CvPoint2D32f* b, } } +} -CV_IMPL int -cvEstimateRigidTransform( const CvArr* matA, const CvArr* matB, CvMat* matM, int full_affine ) +cv::Mat cv::estimateRigidTransform( InputArray src1, InputArray src2, bool fullAffine ) { + Mat M(2, 3, CV_64F), A = src1.getMat(), B = src2.getMat(); + const int COUNT = 15; const int WIDTH = 160, HEIGHT = 120; const int RANSAC_MAX_ITERS = 500; const int RANSAC_SIZE0 = 3; const double RANSAC_GOOD_RATIO = 0.5; - cv::Ptr sA, sB; - cv::AutoBuffer pA, pB; - cv::AutoBuffer good_idx; - cv::AutoBuffer status; - cv::Ptr gray; + std::vector pA, pB; + std::vector good_idx; + std::vector status; - CvMat stubA, *A = cvGetMat( matA, &stubA ); - CvMat stubB, *B = cvGetMat( matB, &stubB ); - CvSize sz0, sz1; - int cn, equal_sizes; + double scale = 1.; int i, j, k, k1; - int count_x, count_y, count = 0; - double scale = 1; - CvRNG rng = cvRNG(-1); - double m[6]={0}; - CvMat M = cvMat( 2, 3, CV_64F, m ); + + RNG rng((uint64)-1); int good_count = 0; - CvRect brect; - if( !CV_IS_MAT(matM) ) - CV_Error( matM ? CV_StsBadArg : CV_StsNullPtr, "Output parameter M is not a valid matrix" ); - - if( !CV_ARE_SIZES_EQ( A, B ) ) + if( A.size() != B.size() ) CV_Error( CV_StsUnmatchedSizes, "Both input images must have the same size" ); - if( !CV_ARE_TYPES_EQ( A, B ) ) + if( A.type() != B.type() ) CV_Error( CV_StsUnmatchedFormats, "Both input images must have the same data type" ); - if( CV_MAT_TYPE(A->type) == CV_8UC1 || CV_MAT_TYPE(A->type) == CV_8UC3 ) - { - cn = CV_MAT_CN(A->type); - sz0 = cvGetSize(A); - sz1 = cvSize(WIDTH, HEIGHT); + int count = A.checkVector(2); + + if( count > 0 ) + { + A.reshape(2, count).convertTo(pA, CV_32F); + B.reshape(2, count).convertTo(pB, CV_32F); + } + else if( A.depth() == CV_8U ) + { + int cn = A.channels(); + CV_Assert( cn == 1 || cn == 3 || cn == 4 ); + Size sz0 = A.size(); + Size sz1(WIDTH, HEIGHT); + + scale = std::max(1., std::max( (double)sz1.width/sz0.width, (double)sz1.height/sz0.height )); - scale = MAX( (double)sz1.width/sz0.width, (double)sz1.height/sz0.height ); - scale = MIN( scale, 1. ); sz1.width = cvRound( sz0.width * scale ); sz1.height = cvRound( sz0.height * scale ); - equal_sizes = sz1.width == sz0.width && sz1.height == sz0.height; + bool equalSizes = sz1.width == sz0.width && sz1.height == sz0.height; - if( !equal_sizes || cn != 1 ) + if( !equalSizes || cn != 1 ) { - sA = cvCreateMat( sz1.height, sz1.width, CV_8UC1 ); - sB = cvCreateMat( sz1.height, sz1.width, CV_8UC1 ); + Mat sA, sB; if( cn != 1 ) { - gray = cvCreateMat( sz0.height, sz0.width, CV_8UC1 ); - cvCvtColor( A, gray, CV_BGR2GRAY ); - cvResize( gray, sA, CV_INTER_AREA ); - cvCvtColor( B, gray, CV_BGR2GRAY ); - cvResize( gray, sB, CV_INTER_AREA ); - gray.release(); + Mat gray; + cvtColor(A, gray, COLOR_BGR2GRAY); + resize(gray, sA, sz1, 0., 0., INTER_AREA); + cvtColor(B, gray, COLOR_BGR2GRAY); + resize(gray, sB, sz1, 0., 0., INTER_AREA); } else { - cvResize( A, sA, CV_INTER_AREA ); - cvResize( B, sB, CV_INTER_AREA ); + resize(A, sA, sz1, 0., 0., INTER_AREA); + resize(B, sB, sz1, 0., 0., INTER_AREA); } A = sA; B = sB; } - count_y = COUNT; - count_x = cvRound((double)COUNT*sz1.width/sz1.height); + int count_y = COUNT; + int count_x = cvRound((double)COUNT*sz1.width/sz1.height); count = count_x * count_y; - pA.allocate(count); - pB.allocate(count); - status.allocate(count); + pA.resize(count); + pB.resize(count); + status.resize(count); for( i = 0, k = 0; i < count_y; i++ ) for( j = 0; j < count_x; j++, k++ ) @@ -1766,8 +926,8 @@ cvEstimateRigidTransform( const CvArr* matA, const CvArr* matB, CvMat* matM, int } // find the corresponding points in B - cvCalcOpticalFlowPyrLK( A, B, 0, 0, pA, pB, count, cvSize(10,10), 3, - status, 0, cvTermCriteria(CV_TERMCRIT_ITER,40,0.1), 0 ); + calcOpticalFlowPyrLK(A, B, pA, pB, status, noArray(), Size(21, 21), 3, + TermCriteria(TermCriteria::MAX_ITER,40,0.1)); // repack the remained points for( i = 0, k = 0; i < count; i++ ) @@ -1780,48 +940,34 @@ cvEstimateRigidTransform( const CvArr* matA, const CvArr* matB, CvMat* matM, int } k++; } - count = k; - } - else if( CV_MAT_TYPE(A->type) == CV_32FC2 || CV_MAT_TYPE(A->type) == CV_32SC2 ) - { - count = A->cols*A->rows; - CvMat _pA, _pB; - pA.allocate(count); - pB.allocate(count); - _pA = cvMat( A->rows, A->cols, CV_32FC2, pA ); - _pB = cvMat( B->rows, B->cols, CV_32FC2, pB ); - cvConvert( A, &_pA ); - cvConvert( B, &_pB ); + pA.resize(count); + pB.resize(count); } else CV_Error( CV_StsUnsupportedFormat, "Both input images must have either 8uC1 or 8uC3 type" ); - good_idx.allocate(count); + good_idx.resize(count); if( count < RANSAC_SIZE0 ) - return 0; + return Mat(); - CvMat _pB = cvMat(1, count, CV_32FC2, pB); - brect = cvBoundingRect(&_pB, 1); + Rect brect = boundingRect(pB); // RANSAC stuff: // 1. find the consensus for( k = 0; k < RANSAC_MAX_ITERS; k++ ) { int idx[RANSAC_SIZE0]; - CvPoint2D32f a[3]; - CvPoint2D32f b[3]; - - memset( a, 0, sizeof(a) ); - memset( b, 0, sizeof(b) ); + Point2f a[RANSAC_SIZE0]; + Point2f b[RANSAC_SIZE0]; // choose random 3 non-complanar points from A & B for( i = 0; i < RANSAC_SIZE0; i++ ) { for( k1 = 0; k1 < RANSAC_MAX_ITERS; k1++ ) { - idx[i] = cvRandInt(&rng) % count; + idx[i] = rng.uniform(0, count); for( j = 0; j < i; j++ ) { @@ -1871,12 +1017,13 @@ cvEstimateRigidTransform( const CvArr* matA, const CvArr* matB, CvMat* matM, int continue; // estimate the transformation using 3 points - icvGetRTMatrix( a, b, 3, &M, full_affine ); + getRTMatrix( a, b, 3, M, fullAffine ); + const double* m = M.ptr(); for( i = 0, good_count = 0; i < count; i++ ) { - if( fabs( m[0]*pA[i].x + m[1]*pA[i].y + m[2] - pB[i].x ) + - fabs( m[3]*pA[i].x + m[4]*pA[i].y + m[5] - pB[i].y ) < MAX(brect.width,brect.height)*0.05 ) + if( std::abs( m[0]*pA[i].x + m[1]*pA[i].y + m[2] - pB[i].x ) + + std::abs( m[3]*pA[i].x + m[4]*pA[i].y + m[5] - pB[i].y ) < std::max(brect.width,brect.height)*0.05 ) good_idx[good_count++] = i; } @@ -1885,7 +1032,7 @@ cvEstimateRigidTransform( const CvArr* matA, const CvArr* matB, CvMat* matM, int } if( k >= RANSAC_MAX_ITERS ) - return 0; + return Mat(); if( good_count < count ) { @@ -1897,25 +1044,11 @@ cvEstimateRigidTransform( const CvArr* matA, const CvArr* matB, CvMat* matM, int } } - icvGetRTMatrix( pA, pB, good_count, &M, full_affine ); - m[2] /= scale; - m[5] /= scale; - cvConvert( &M, matM ); + getRTMatrix( &pA[0], &pB[0], good_count, M, fullAffine ); + M.at(0, 2) /= scale; + M.at(1, 2) /= scale; - return 1; -} - -cv::Mat cv::estimateRigidTransform( InputArray src1, - InputArray src2, - bool fullAffine ) -{ - Mat M(2, 3, CV_64F), A = src1.getMat(), B = src2.getMat(); - CvMat matA = A, matB = B, matM = M; - int err = cvEstimateRigidTransform(&matA, &matB, &matM, fullAffine); - if (err == 1) - return M; - else - return Mat(); + return M; } /* End of file. */ diff --git a/modules/video/src/motempl.cpp b/modules/video/src/motempl.cpp index f6e52c49e0..7d992684b7 100644 --- a/modules/video/src/motempl.cpp +++ b/modules/video/src/motempl.cpp @@ -41,34 +41,23 @@ #include "precomp.hpp" - -/* motion templates */ -CV_IMPL void -cvUpdateMotionHistory( const void* silhouette, void* mhimg, - double timestamp, double mhi_duration ) +void cv::updateMotionHistory( InputArray _silhouette, InputOutputArray _mhi, + double timestamp, double duration ) { - CvMat silhstub, *silh = cvGetMat(silhouette, &silhstub); - CvMat mhistub, *mhi = cvGetMat(mhimg, &mhistub); + Mat silh = _silhouette.getMat(), mhi = _mhi.getMat(); - if( !CV_IS_MASK_ARR( silh )) - CV_Error( CV_StsBadMask, "" ); + CV_Assert( silh.type() == CV_8U && mhi.type() == CV_32F ); + CV_Assert( silh.size() == mhi.size() ); - if( CV_MAT_TYPE( mhi->type ) != CV_32FC1 ) - CV_Error( CV_StsUnsupportedFormat, "" ); - - if( !CV_ARE_SIZES_EQ( mhi, silh )) - CV_Error( CV_StsUnmatchedSizes, "" ); - - CvSize size = cvGetMatSize( mhi ); - - if( CV_IS_MAT_CONT( mhi->type & silh->type )) + Size size = silh.size(); + if( silh.isContinuous() && mhi.isContinuous() ) { size.width *= size.height; size.height = 1; } float ts = (float)timestamp; - float delbound = (float)(timestamp - mhi_duration); + float delbound = (float)(timestamp - duration); int x, y; #if CV_SSE2 volatile bool useSIMD = cv::checkHardwareSupport(CV_CPU_SSE2); @@ -76,8 +65,8 @@ cvUpdateMotionHistory( const void* silhouette, void* mhimg, for( y = 0; y < size.height; y++ ) { - const uchar* silhData = silh->data.ptr + silh->step*y; - float* mhiData = (float*)(mhi->data.ptr + mhi->step*y); + const uchar* silhData = silh.ptr(y); + float* mhiData = mhi.ptr(y); x = 0; #if CV_SSE2 @@ -117,26 +106,21 @@ cvUpdateMotionHistory( const void* silhouette, void* mhimg, } -CV_IMPL void -cvCalcMotionGradient( const CvArr* mhiimg, CvArr* maskimg, - CvArr* orientation, - double delta1, double delta2, - int aperture_size ) +void cv::calcMotionGradient( InputArray _mhi, OutputArray _mask, + OutputArray _orientation, + double delta1, double delta2, + int aperture_size ) { - cv::Ptr dX_min, dY_max; + static int runcase = 0; runcase++; - CvMat mhistub, *mhi = cvGetMat(mhiimg, &mhistub); - CvMat maskstub, *mask = cvGetMat(maskimg, &maskstub); - CvMat orientstub, *orient = cvGetMat(orientation, &orientstub); - CvMat dX_min_row, dY_max_row, orient_row, mask_row; - CvSize size; - int x, y; + Mat mhi = _mhi.getMat(); + Size size = mhi.size(); - float gradient_epsilon = 1e-4f * aperture_size * aperture_size; - float min_delta, max_delta; + _mask.create(size, CV_8U); + _orientation.create(size, CV_32F); - if( !CV_IS_MASK_ARR( mask )) - CV_Error( CV_StsBadMask, "" ); + Mat mask = _mask.getMat(); + Mat orient = _orientation.getMat(); if( aperture_size < 3 || aperture_size > 7 || (aperture_size & 1) == 0 ) CV_Error( CV_StsOutOfRange, "aperture_size must be 3, 5 or 7" ); @@ -144,343 +128,247 @@ cvCalcMotionGradient( const CvArr* mhiimg, CvArr* maskimg, if( delta1 <= 0 || delta2 <= 0 ) CV_Error( CV_StsOutOfRange, "both delta's must be positive" ); - if( CV_MAT_TYPE( mhi->type ) != CV_32FC1 || CV_MAT_TYPE( orient->type ) != CV_32FC1 ) + if( mhi.type() != CV_32FC1 ) CV_Error( CV_StsUnsupportedFormat, - "MHI and orientation must be single-channel floating-point images" ); + "MHI must be single-channel floating-point images" ); - if( !CV_ARE_SIZES_EQ( mhi, mask ) || !CV_ARE_SIZES_EQ( orient, mhi )) - CV_Error( CV_StsUnmatchedSizes, "" ); - - if( orient->data.ptr == mhi->data.ptr ) - CV_Error( CV_StsInplaceNotSupported, "orientation image must be different from MHI" ); - - if( delta1 > delta2 ) + if( orient.data == mhi.data ) { - double t; - CV_SWAP( delta1, delta2, t ); + _orientation.release(); + _orientation.create(size, CV_32F); + orient = _orientation.getMat(); } - size = cvGetMatSize( mhi ); - min_delta = (float)delta1; - max_delta = (float)delta2; - dX_min = cvCreateMat( mhi->rows, mhi->cols, CV_32F ); - dY_max = cvCreateMat( mhi->rows, mhi->cols, CV_32F ); + if( delta1 > delta2 ) + std::swap(delta1, delta2); + + float gradient_epsilon = 1e-4f * aperture_size * aperture_size; + float min_delta = (float)delta1; + float max_delta = (float)delta2; + + Mat dX_min, dY_max; // calc Dx and Dy - cvSobel( mhi, dX_min, 1, 0, aperture_size ); - cvSobel( mhi, dY_max, 0, 1, aperture_size ); - cvGetRow( dX_min, &dX_min_row, 0 ); - cvGetRow( dY_max, &dY_max_row, 0 ); - cvGetRow( orient, &orient_row, 0 ); - cvGetRow( mask, &mask_row, 0 ); + Sobel( mhi, dX_min, CV_32F, 1, 0, aperture_size, 1, 0, BORDER_REPLICATE ); + Sobel( mhi, dY_max, CV_32F, 0, 1, aperture_size, 1, 0, BORDER_REPLICATE ); + + int x, y; + + if( mhi.isContinuous() && orient.isContinuous() && mask.isContinuous() ) + { + size.width *= size.height; + size.height = 1; + } // calc gradient for( y = 0; y < size.height; y++ ) { - dX_min_row.data.ptr = dX_min->data.ptr + y*dX_min->step; - dY_max_row.data.ptr = dY_max->data.ptr + y*dY_max->step; - orient_row.data.ptr = orient->data.ptr + y*orient->step; - mask_row.data.ptr = mask->data.ptr + y*mask->step; - cvCartToPolar( &dX_min_row, &dY_max_row, 0, &orient_row, 1 ); + const float* dX_min_row = dX_min.ptr(y); + const float* dY_max_row = dY_max.ptr(y); + float* orient_row = orient.ptr(y); + uchar* mask_row = mask.ptr(y); + + fastAtan2(dY_max_row, dX_min_row, orient_row, size.width, true); // make orientation zero where the gradient is very small for( x = 0; x < size.width; x++ ) { - float dY = dY_max_row.data.fl[x]; - float dX = dX_min_row.data.fl[x]; + float dY = dY_max_row[x]; + float dX = dX_min_row[x]; - if( fabs(dX) < gradient_epsilon && fabs(dY) < gradient_epsilon ) + if( std::abs(dX) < gradient_epsilon && std::abs(dY) < gradient_epsilon ) { - mask_row.data.ptr[x] = 0; - orient_row.data.i[x] = 0; + mask_row[x] = (uchar)0; + orient_row[x] = 0.f; } else - mask_row.data.ptr[x] = 1; + mask_row[x] = (uchar)1; } } - cvErode( mhi, dX_min, 0, (aperture_size-1)/2); - cvDilate( mhi, dY_max, 0, (aperture_size-1)/2); + erode( mhi, dX_min, noArray(), Point(-1,-1), (aperture_size-1)/2, BORDER_REPLICATE ); + dilate( mhi, dY_max, noArray(), Point(-1,-1), (aperture_size-1)/2, BORDER_REPLICATE ); // mask off pixels which have little motion difference in their neighborhood for( y = 0; y < size.height; y++ ) { - dX_min_row.data.ptr = dX_min->data.ptr + y*dX_min->step; - dY_max_row.data.ptr = dY_max->data.ptr + y*dY_max->step; - mask_row.data.ptr = mask->data.ptr + y*mask->step; - orient_row.data.ptr = orient->data.ptr + y*orient->step; + const float* dX_min_row = dX_min.ptr(y); + const float* dY_max_row = dY_max.ptr(y); + float* orient_row = orient.ptr(y); + uchar* mask_row = mask.ptr(y); for( x = 0; x < size.width; x++ ) { - float d0 = dY_max_row.data.fl[x] - dX_min_row.data.fl[x]; + float d0 = dY_max_row[x] - dX_min_row[x]; - if( mask_row.data.ptr[x] == 0 || d0 < min_delta || max_delta < d0 ) + if( mask_row[x] == 0 || d0 < min_delta || max_delta < d0 ) { - mask_row.data.ptr[x] = 0; - orient_row.data.i[x] = 0; + mask_row[x] = (uchar)0; + orient_row[x] = 0.f; } } } } - -CV_IMPL double -cvCalcGlobalOrientation( const void* orientation, const void* maskimg, const void* mhiimg, - double curr_mhi_timestamp, double mhi_duration ) -{ - int hist_size = 12; - cv::Ptr hist; - - CvMat mhistub, *mhi = cvGetMat(mhiimg, &mhistub); - CvMat maskstub, *mask = cvGetMat(maskimg, &maskstub); - CvMat orientstub, *orient = cvGetMat(orientation, &orientstub); - void* _orient; - float _ranges[] = { 0, 360 }; - float* ranges = _ranges; - int base_orient; - float shift_orient = 0, shift_weight = 0; - float a, b, fbase_orient; - float delbound; - CvMat mhi_row, mask_row, orient_row; - int x, y, mhi_rows, mhi_cols; - - if( !CV_IS_MASK_ARR( mask )) - CV_Error( CV_StsBadMask, "" ); - - if( CV_MAT_TYPE( mhi->type ) != CV_32FC1 || CV_MAT_TYPE( orient->type ) != CV_32FC1 ) - CV_Error( CV_StsUnsupportedFormat, - "MHI and orientation must be single-channel floating-point images" ); - - if( !CV_ARE_SIZES_EQ( mhi, mask ) || !CV_ARE_SIZES_EQ( orient, mhi )) - CV_Error( CV_StsUnmatchedSizes, "" ); - - if( mhi_duration <= 0 ) - CV_Error( CV_StsOutOfRange, "MHI duration must be positive" ); - - if( orient->data.ptr == mhi->data.ptr ) - CV_Error( CV_StsInplaceNotSupported, "orientation image must be different from MHI" ); - - // calculate histogram of different orientation values - hist = cvCreateHist( 1, &hist_size, CV_HIST_ARRAY, &ranges ); - _orient = orient; - cvCalcArrHist( &_orient, hist, 0, mask ); - - // find the maximum index (the dominant orientation) - cvGetMinMaxHistValue( hist, 0, 0, 0, &base_orient ); - fbase_orient = base_orient*360.f/hist_size; - - // override timestamp with the maximum value in MHI - cvMinMaxLoc( mhi, 0, &curr_mhi_timestamp, 0, 0, mask ); - - // find the shift relative to the dominant orientation as weighted sum of relative angles - a = (float)(254. / 255. / mhi_duration); - b = (float)(1. - curr_mhi_timestamp * a); - delbound = (float)(curr_mhi_timestamp - mhi_duration); - mhi_rows = mhi->rows; - mhi_cols = mhi->cols; - - if( CV_IS_MAT_CONT( mhi->type & mask->type & orient->type )) - { - mhi_cols *= mhi_rows; - mhi_rows = 1; - } - - cvGetRow( mhi, &mhi_row, 0 ); - cvGetRow( mask, &mask_row, 0 ); - cvGetRow( orient, &orient_row, 0 ); - - /* - a = 254/(255*dt) - b = 1 - t*a = 1 - 254*t/(255*dur) = - (255*dt - 254*t)/(255*dt) = - (dt - (t - dt)*254)/(255*dt); - -------------------------------------------------------- - ax + b = 254*x/(255*dt) + (dt - (t - dt)*254)/(255*dt) = - (254*x + dt - (t - dt)*254)/(255*dt) = - ((x - (t - dt))*254 + dt)/(255*dt) = - (((x - (t - dt))/dt)*254 + 1)/255 = (((x - low_time)/dt)*254 + 1)/255 - */ - for( y = 0; y < mhi_rows; y++ ) - { - mhi_row.data.ptr = mhi->data.ptr + mhi->step*y; - mask_row.data.ptr = mask->data.ptr + mask->step*y; - orient_row.data.ptr = orient->data.ptr + orient->step*y; - - for( x = 0; x < mhi_cols; x++ ) - if( mask_row.data.ptr[x] != 0 && mhi_row.data.fl[x] > delbound ) - { - /* - orient in 0..360, base_orient in 0..360 - -> (rel_angle = orient - base_orient) in -360..360. - rel_angle is translated to -180..180 - */ - float weight = mhi_row.data.fl[x] * a + b; - float rel_angle = orient_row.data.fl[x] - fbase_orient; - - rel_angle += (rel_angle < -180 ? 360 : 0); - rel_angle += (rel_angle > 180 ? -360 : 0); - - if( fabs(rel_angle) < 45 ) - { - shift_orient += weight * rel_angle; - shift_weight += weight; - } - } - } - - // add the dominant orientation and the relative shift - if( shift_weight == 0 ) - shift_weight = 0.01f; - - fbase_orient += shift_orient / shift_weight; - fbase_orient -= (fbase_orient < 360 ? 0 : 360); - fbase_orient += (fbase_orient >= 0 ? 0 : 360); - - return fbase_orient; -} - - -CV_IMPL CvSeq* -cvSegmentMotion( const CvArr* mhiimg, CvArr* segmask, CvMemStorage* storage, - double timestamp, double seg_thresh ) -{ - CvSeq* components = 0; - cv::Ptr mask8u; - - CvMat mhistub, *mhi = cvGetMat(mhiimg, &mhistub); - CvMat maskstub, *mask = cvGetMat(segmask, &maskstub); - Cv32suf v, comp_idx; - int stub_val, ts; - int x, y; - - if( !storage ) - CV_Error( CV_StsNullPtr, "NULL memory storage" ); - - mhi = cvGetMat( mhi, &mhistub ); - mask = cvGetMat( mask, &maskstub ); - - if( CV_MAT_TYPE( mhi->type ) != CV_32FC1 || CV_MAT_TYPE( mask->type ) != CV_32FC1 ) - CV_Error( CV_BadDepth, "Both MHI and the destination mask" ); - - if( !CV_ARE_SIZES_EQ( mhi, mask )) - CV_Error( CV_StsUnmatchedSizes, "" ); - - mask8u = cvCreateMat( mhi->rows + 2, mhi->cols + 2, CV_8UC1 ); - cvZero( mask8u ); - cvZero( mask ); - components = cvCreateSeq( CV_SEQ_KIND_GENERIC, sizeof(CvSeq), - sizeof(CvConnectedComp), storage ); - - v.f = (float)timestamp; ts = v.i; - v.f = FLT_MAX*0.1f; stub_val = v.i; - comp_idx.f = 1; - - for( y = 0; y < mhi->rows; y++ ) - { - int* mhi_row = (int*)(mhi->data.ptr + y*mhi->step); - for( x = 0; x < mhi->cols; x++ ) - { - if( mhi_row[x] == 0 ) - mhi_row[x] = stub_val; - } - } - - for( y = 0; y < mhi->rows; y++ ) - { - int* mhi_row = (int*)(mhi->data.ptr + y*mhi->step); - uchar* mask8u_row = mask8u->data.ptr + (y+1)*mask8u->step + 1; - - for( x = 0; x < mhi->cols; x++ ) - { - if( mhi_row[x] == ts && mask8u_row[x] == 0 ) - { - CvConnectedComp comp; - int x1, y1; - CvScalar _seg_thresh = cvRealScalar(seg_thresh); - CvPoint seed = cvPoint(x,y); - - cvFloodFill( mhi, seed, cvRealScalar(0), _seg_thresh, _seg_thresh, - &comp, CV_FLOODFILL_MASK_ONLY + 2*256 + 4, mask8u ); - - for( y1 = 0; y1 < comp.rect.height; y1++ ) - { - int* mask_row1 = (int*)(mask->data.ptr + - (comp.rect.y + y1)*mask->step) + comp.rect.x; - uchar* mask8u_row1 = mask8u->data.ptr + - (comp.rect.y + y1+1)*mask8u->step + comp.rect.x+1; - - for( x1 = 0; x1 < comp.rect.width; x1++ ) - { - if( mask8u_row1[x1] > 1 ) - { - mask8u_row1[x1] = 1; - mask_row1[x1] = comp_idx.i; - } - } - } - comp_idx.f++; - cvSeqPush( components, &comp ); - } - } - } - - for( y = 0; y < mhi->rows; y++ ) - { - int* mhi_row = (int*)(mhi->data.ptr + y*mhi->step); - for( x = 0; x < mhi->cols; x++ ) - { - if( mhi_row[x] == stub_val ) - mhi_row[x] = 0; - } - } - - return components; -} - - -void cv::updateMotionHistory( InputArray _silhouette, InputOutputArray _mhi, - double timestamp, double duration ) -{ - Mat silhouette = _silhouette.getMat(); - CvMat c_silhouette = silhouette, c_mhi = _mhi.getMat(); - cvUpdateMotionHistory( &c_silhouette, &c_mhi, timestamp, duration ); -} - -void cv::calcMotionGradient( InputArray _mhi, OutputArray _mask, - OutputArray _orientation, - double delta1, double delta2, - int aperture_size ) -{ - Mat mhi = _mhi.getMat(); - _mask.create(mhi.size(), CV_8U); - _orientation.create(mhi.size(), CV_32F); - CvMat c_mhi = mhi, c_mask = _mask.getMat(), c_orientation = _orientation.getMat(); - cvCalcMotionGradient(&c_mhi, &c_mask, &c_orientation, delta1, delta2, aperture_size); -} - double cv::calcGlobalOrientation( InputArray _orientation, InputArray _mask, - InputArray _mhi, double timestamp, + InputArray _mhi, double /*timestamp*/, double duration ) { - Mat orientation = _orientation.getMat(), mask = _mask.getMat(), mhi = _mhi.getMat(); - CvMat c_orientation = orientation, c_mask = mask, c_mhi = mhi; - return cvCalcGlobalOrientation(&c_orientation, &c_mask, &c_mhi, timestamp, duration); + Mat orient = _orientation.getMat(), mask = _mask.getMat(), mhi = _mhi.getMat(); + Size size = mhi.size(); + + CV_Assert( mask.type() == CV_8U && orient.type() == CV_32F && mhi.type() == CV_32F ); + CV_Assert( mask.size() == size && orient.size() == size ); + CV_Assert( duration > 0 ); + + int histSize = 12; + float _ranges[] = { 0.f, 360.f }; + const float* ranges = _ranges; + Mat hist; + + calcHist(&orient, 1, 0, mask, hist, 1, &histSize, &ranges); + + // find the maximum index (the dominant orientation) + Point baseOrientPt; + minMaxLoc(hist, 0, 0, 0, &baseOrientPt); + float fbaseOrient = (baseOrientPt.x + baseOrientPt.y)*360.f/histSize; + + // override timestamp with the maximum value in MHI + double timestamp = 0; + minMaxLoc( mhi, 0, ×tamp, 0, 0, mask ); + + // find the shift relative to the dominant orientation as weighted sum of relative angles + float a = (float)(254. / 255. / duration); + float b = (float)(1. - timestamp * a); + float delbound = (float)(timestamp - duration); + + if( mhi.isContinuous() && mask.isContinuous() && orient.isContinuous() ) + { + size.width *= size.height; + size.height = 1; + } + + /* + a = 254/(255*dt) + b = 1 - t*a = 1 - 254*t/(255*dur) = + (255*dt - 254*t)/(255*dt) = + (dt - (t - dt)*254)/(255*dt); + -------------------------------------------------------- + ax + b = 254*x/(255*dt) + (dt - (t - dt)*254)/(255*dt) = + (254*x + dt - (t - dt)*254)/(255*dt) = + ((x - (t - dt))*254 + dt)/(255*dt) = + (((x - (t - dt))/dt)*254 + 1)/255 = (((x - low_time)/dt)*254 + 1)/255 + */ + float shiftOrient = 0, shiftWeight = 0; + for( int y = 0; y < size.height; y++ ) + { + const float* mhiptr = mhi.ptr(y); + const float* oriptr = orient.ptr(y); + const uchar* maskptr = mask.ptr(y); + + for( int x = 0; x < size.width; x++ ) + { + if( maskptr[x] != 0 && mhiptr[x] > delbound ) + { + /* + orient in 0..360, base_orient in 0..360 + -> (rel_angle = orient - base_orient) in -360..360. + rel_angle is translated to -180..180 + */ + float weight = mhiptr[x] * a + b; + float relAngle = oriptr[x] - fbaseOrient; + + relAngle += (relAngle < -180 ? 360 : 0); + relAngle += (relAngle > 180 ? -360 : 0); + + if( fabs(relAngle) < 45 ) + { + shiftOrient += weight * relAngle; + shiftWeight += weight; + } + } + } + } + + // add the dominant orientation and the relative shift + if( shiftWeight == 0 ) + shiftWeight = 0.01f; + + fbaseOrient += shiftOrient / shiftWeight; + fbaseOrient -= (fbaseOrient < 360 ? 0 : 360); + fbaseOrient += (fbaseOrient >= 0 ? 0 : 360); + + return fbaseOrient; } + void cv::segmentMotion(InputArray _mhi, OutputArray _segmask, std::vector& boundingRects, double timestamp, double segThresh) { Mat mhi = _mhi.getMat(); + _segmask.create(mhi.size(), CV_32F); - CvMat c_mhi = mhi, c_segmask = _segmask.getMat(); - Ptr storage = cvCreateMemStorage(); - Seq comps = cvSegmentMotion(&c_mhi, &c_segmask, storage, timestamp, segThresh); - Seq::const_iterator it(comps); - size_t i, ncomps = comps.size(); - boundingRects.resize(ncomps); - for( i = 0; i < ncomps; i++, ++it) - boundingRects[i] = (*it).rect; + Mat segmask = _segmask.getMat(); + segmask = Scalar::all(0); + + CV_Assert( mhi.type() == CV_32F ); + CV_Assert( segThresh >= 0 ); + + Mat mask = Mat::zeros( mhi.rows + 2, mhi.cols + 2, CV_8UC1 ); + + int x, y; + + // protect zero mhi pixels from floodfill. + for( y = 0; y < mhi.rows; y++ ) + { + const float* mhiptr = mhi.ptr(y); + uchar* maskptr = mask.ptr(y+1) + 1; + + for( x = 0; x < mhi.cols; x++ ) + { + if( mhiptr[x] == 0 ) + maskptr[x] = 1; + } + } + + float ts = (float)timestamp; + float comp_idx = 1.f; + + for( y = 0; y < mhi.rows; y++ ) + { + float* mhiptr = mhi.ptr(y); + uchar* maskptr = mask.ptr(y+1) + 1; + + for( x = 0; x < mhi.cols; x++ ) + { + if( mhiptr[x] == ts && maskptr[x] == 0 ) + { + Rect cc; + floodFill( mhi, mask, Point(x,y), Scalar::all(0), + &cc, Scalar::all(segThresh), Scalar::all(segThresh), + FLOODFILL_MASK_ONLY + 2*256 + 4 ); + + for( int y1 = 0; y1 < cc.height; y1++ ) + { + float* segmaskptr = segmask.ptr(cc.y + y1) + cc.x; + uchar* maskptr1 = mask.ptr(cc.y + y1 + 1) + cc.x + 1; + + for( int x1 = 0; x1 < cc.width; x1++ ) + { + if( maskptr1[x1] > 1 ) + { + maskptr1[x1] = 1; + segmaskptr[x1] = comp_idx; + } + } + } + comp_idx += 1.f; + boundingRects.push_back(cc); + } + } + } } + /* End of file. */ diff --git a/modules/video/src/optflowgf.cpp b/modules/video/src/optflowgf.cpp index 650e24262e..6784a55cdc 100644 --- a/modules/video/src/optflowgf.cpp +++ b/modules/video/src/optflowgf.cpp @@ -644,18 +644,3 @@ void cv::calcOpticalFlowFarneback( InputArray _prev0, InputArray _next0, prevFlow = flow; } } - - -CV_IMPL void cvCalcOpticalFlowFarneback( - const CvArr* _prev, const CvArr* _next, - CvArr* _flow, double pyr_scale, int levels, - int winsize, int iterations, int poly_n, - double poly_sigma, int flags ) -{ - cv::Mat prev = cv::cvarrToMat(_prev), next = cv::cvarrToMat(_next); - cv::Mat flow = cv::cvarrToMat(_flow); - CV_Assert( flow.size() == prev.size() && flow.type() == CV_32FC2 ); - cv::calcOpticalFlowFarneback( prev, next, flow, pyr_scale, levels, - winsize, iterations, poly_n, poly_sigma, flags ); -} - diff --git a/modules/video/src/simpleflow.cpp b/modules/video/src/simpleflow.cpp index 8c5c746242..f987b42ee8 100644 --- a/modules/video/src/simpleflow.cpp +++ b/modules/video/src/simpleflow.cpp @@ -41,7 +41,6 @@ //M*/ #include "precomp.hpp" -#include "simpleflow.hpp" // // 2D dense optical flow algorithm from the following paper: @@ -54,6 +53,39 @@ namespace cv { +static const uchar MASK_TRUE_VALUE = (uchar)255; + +inline static float dist(const Vec3b& p1, const Vec3b& p2) { + return (float)((p1[0] - p2[0]) * (p1[0] - p2[0]) + + (p1[1] - p2[1]) * (p1[1] - p2[1]) + + (p1[2] - p2[2]) * (p1[2] - p2[2])); +} + +inline static float dist(const Vec2f& p1, const Vec2f& p2) { + return (p1[0] - p2[0]) * (p1[0] - p2[0]) + + (p1[1] - p2[1]) * (p1[1] - p2[1]); +} + +inline static float dist(const Point2f& p1, const Point2f& p2) { + return (p1.x - p2.x) * (p1.x - p2.x) + + (p1.y - p2.y) * (p1.y - p2.y); +} + +inline static float dist(float x1, float y1, float x2, float y2) { + return (x1 - x2) * (x1 - x2) + + (y1 - y2) * (y1 - y2); +} + +inline static int dist(int x1, int y1, int x2, int y2) { + return (x1 - x2) * (x1 - x2) + + (y1 - y2) * (y1 - y2); +} + +template +inline static T min(T t1, T t2, T t3) { + return (t1 <= t2 && t1 <= t3) ? t1 : min(t2, t3); +} + static void removeOcclusions(const Mat& flow, const Mat& flow_inv, float occ_thr, diff --git a/modules/video/src/video_init.cpp b/modules/video/src/video_init.cpp index 189f4a36ba..118d28a42e 100644 --- a/modules/video/src/video_init.cpp +++ b/modules/video/src/video_init.cpp @@ -46,50 +46,9 @@ namespace cv { -/////////////////////////////////////////////////////////////////////////////////////////////////////////// - -CV_INIT_ALGORITHM(BackgroundSubtractorMOG, "BackgroundSubtractor.MOG", - obj.info()->addParam(obj, "history", obj.history); - obj.info()->addParam(obj, "nmixtures", obj.nmixtures); - obj.info()->addParam(obj, "backgroundRatio", obj.backgroundRatio); - obj.info()->addParam(obj, "noiseSigma", obj.noiseSigma)); - -/////////////////////////////////////////////////////////////////////////////////////////////////////////// - -CV_INIT_ALGORITHM(BackgroundSubtractorMOG2, "BackgroundSubtractor.MOG2", - obj.info()->addParam(obj, "history", obj.history); - obj.info()->addParam(obj, "nmixtures", obj.nmixtures); - obj.info()->addParam(obj, "varThreshold", obj.varThreshold); - obj.info()->addParam(obj, "detectShadows", obj.bShadowDetection)); - -/////////////////////////////////////////////////////////////////////////////////////////////////////////// - -CV_INIT_ALGORITHM(BackgroundSubtractorGMG, "BackgroundSubtractor.GMG", - obj.info()->addParam(obj, "maxFeatures", obj.maxFeatures,false,0,0, - "Maximum number of features to store in histogram. Harsh enforcement of sparsity constraint."); - obj.info()->addParam(obj, "learningRate", obj.learningRate,false,0,0, - "Adaptation rate of histogram. Close to 1, slow adaptation. Close to 0, fast adaptation, features forgotten quickly."); - obj.info()->addParam(obj, "initializationFrames", obj.numInitializationFrames,false,0,0, - "Number of frames to use to initialize histograms of pixels."); - obj.info()->addParam(obj, "quantizationLevels", obj.quantizationLevels,false,0,0, - "Number of discrete colors to be used in histograms. Up-front quantization."); - obj.info()->addParam(obj, "backgroundPrior", obj.backgroundPrior,false,0,0, - "Prior probability that each individual pixel is a background pixel."); - obj.info()->addParam(obj, "smoothingRadius", obj.smoothingRadius,false,0,0, - "Radius of smoothing kernel to filter noise from FG mask image."); - obj.info()->addParam(obj, "decisionThreshold", obj.decisionThreshold,false,0,0, - "Threshold for FG decision rule. Pixel is FG if posterior probability exceeds threshold."); - obj.info()->addParam(obj, "updateBackgroundModel", obj.updateBackgroundModel,false,0,0, - "Perform background model update.")); - bool initModule_video(void) { - bool all = true; - all &= !BackgroundSubtractorMOG_info_auto.name().empty(); - all &= !BackgroundSubtractorMOG2_info_auto.name().empty(); - all &= !BackgroundSubtractorGMG_info_auto.name().empty(); - - return all; + return true; } } diff --git a/modules/video/test/test_backgroundsubtractor_gbh.cpp b/modules/video/test/test_backgroundsubtractor_gbh.cpp index 00d6fb05e6..649a18b85c 100644 --- a/modules/video/test/test_backgroundsubtractor_gbh.cpp +++ b/modules/video/test/test_backgroundsubtractor_gbh.cpp @@ -37,8 +37,7 @@ void CV_BackgroundSubtractorTest::run(int) int width = 2 + ((unsigned int)rng)%98; //!< Mat will be 2 to 100 in width and height int height = 2 + ((unsigned int)rng)%98; - Ptr fgbg = - Algorithm::create("BackgroundSubtractor.GMG"); + Ptr fgbg = createBackgroundSubtractorGMG(); Mat fgmask; if (fgbg.empty()) @@ -47,19 +46,13 @@ void CV_BackgroundSubtractorTest::run(int) /** * Set a few parameters */ - fgbg->set("smoothingRadius",7); - fgbg->set("decisionThreshold",0.7); - fgbg->set("initializationFrames",120); + fgbg->setSmoothingRadius(7); + fgbg->setDecisionThreshold(0.7); + fgbg->setNumFrames(120); /** * Generate bounds for the values in the matrix for each type */ - uchar maxuc = 0, minuc = 0; - char maxc = 0, minc = 0; - unsigned int maxui = 0, minui = 0; - int maxi=0, mini = 0; - long int maxli = 0, minli = 0; - float maxf = 0, minf = 0; double maxd = 0, mind = 0; /** @@ -69,34 +62,34 @@ void CV_BackgroundSubtractorTest::run(int) if (type == CV_8U) { uchar half = UCHAR_MAX/2; - maxuc = (unsigned char)rng.uniform(half+32, UCHAR_MAX); - minuc = (unsigned char)rng.uniform(0, half-32); + maxd = (unsigned char)rng.uniform(half+32, UCHAR_MAX); + mind = (unsigned char)rng.uniform(0, half-32); } else if (type == CV_8S) { - maxc = (char)rng.uniform(32, CHAR_MAX); - minc = (char)rng.uniform(CHAR_MIN, -32); + maxd = (char)rng.uniform(32, CHAR_MAX); + mind = (char)rng.uniform(CHAR_MIN, -32); } else if (type == CV_16U) { ushort half = USHRT_MAX/2; - maxui = (unsigned int)rng.uniform(half+32, USHRT_MAX); - minui = (unsigned int)rng.uniform(0, half-32); + maxd = (unsigned int)rng.uniform(half+32, USHRT_MAX); + mind = (unsigned int)rng.uniform(0, half-32); } else if (type == CV_16S) { - maxi = rng.uniform(32, SHRT_MAX); - mini = rng.uniform(SHRT_MIN, -32); + maxd = rng.uniform(32, SHRT_MAX); + mind = rng.uniform(SHRT_MIN, -32); } else if (type == CV_32S) { - maxli = rng.uniform(32, INT_MAX); - minli = rng.uniform(INT_MIN, -32); + maxd = rng.uniform(32, INT_MAX); + mind = rng.uniform(INT_MIN, -32); } else if (type == CV_32F) { - maxf = rng.uniform(32.0f, FLT_MAX); - minf = rng.uniform(-FLT_MAX, -32.0f); + maxd = rng.uniform(32.0f, FLT_MAX); + mind = rng.uniform(-FLT_MAX, -32.0f); } else if (type == CV_64F) { @@ -104,60 +97,22 @@ void CV_BackgroundSubtractorTest::run(int) mind = rng.uniform(-DBL_MAX, -32.0); } + fgbg->setMinVal(mind); + fgbg->setMaxVal(maxd); + Mat simImage = Mat::zeros(height, width, channelsAndType); - const unsigned int numLearningFrames = 120; - for (unsigned int i = 0; i < numLearningFrames; ++i) + int numLearningFrames = 120; + for (int i = 0; i < numLearningFrames; ++i) { /** * Genrate simulated "image" for any type. Values always confined to upper half of range. */ - if (type == CV_8U) - { - rng.fill(simImage,RNG::UNIFORM,(unsigned char)(minuc/2+maxuc/2),maxuc); - if (i == 0) - fgbg->initialize(simImage.size(),minuc,maxuc); - } - else if (type == CV_8S) - { - rng.fill(simImage,RNG::UNIFORM,(char)(minc/2+maxc/2),maxc); - if (i==0) - fgbg->initialize(simImage.size(),minc,maxc); - } - else if (type == CV_16U) - { - rng.fill(simImage,RNG::UNIFORM,(unsigned int)(minui/2+maxui/2),maxui); - if (i==0) - fgbg->initialize(simImage.size(),minui,maxui); - } - else if (type == CV_16S) - { - rng.fill(simImage,RNG::UNIFORM,(int)(mini/2+maxi/2),maxi); - if (i==0) - fgbg->initialize(simImage.size(),mini,maxi); - } - else if (type == CV_32F) - { - rng.fill(simImage,RNG::UNIFORM,(float)(minf/2.0+maxf/2.0),maxf); - if (i==0) - fgbg->initialize(simImage.size(),minf,maxf); - } - else if (type == CV_32S) - { - rng.fill(simImage,RNG::UNIFORM,(long int)(minli/2+maxli/2),maxli); - if (i==0) - fgbg->initialize(simImage.size(),minli,maxli); - } - else if (type == CV_64F) - { - rng.fill(simImage,RNG::UNIFORM,(double)(mind/2.0+maxd/2.0),maxd); - if (i==0) - fgbg->initialize(simImage.size(),mind,maxd); - } + rng.fill(simImage, RNG::UNIFORM, (mind + maxd)*0.5, maxd); /** * Feed simulated images into background subtractor */ - (*fgbg)(simImage,fgmask); + fgbg->apply(simImage,fgmask); Mat fullbg = Mat::zeros(simImage.rows, simImage.cols, CV_8U); //! fgmask should be entirely background during training @@ -166,22 +121,9 @@ void CV_BackgroundSubtractorTest::run(int) ts->set_failed_test_info( code ); } //! generate last image, distinct from training images - if (type == CV_8U) - rng.fill(simImage,RNG::UNIFORM,minuc,minuc); - else if (type == CV_8S) - rng.fill(simImage,RNG::UNIFORM,minc,minc); - else if (type == CV_16U) - rng.fill(simImage,RNG::UNIFORM,minui,minui); - else if (type == CV_16S) - rng.fill(simImage,RNG::UNIFORM,mini,mini); - else if (type == CV_32F) - rng.fill(simImage,RNG::UNIFORM,minf,minf); - else if (type == CV_32S) - rng.fill(simImage,RNG::UNIFORM,minli,minli); - else if (type == CV_64F) - rng.fill(simImage,RNG::UNIFORM,mind,mind); + rng.fill(simImage, RNG::UNIFORM, mind, maxd); - (*fgbg)(simImage,fgmask); + fgbg->apply(simImage,fgmask); //! now fgmask should be entirely foreground Mat fullfg = 255*Mat::ones(simImage.rows, simImage.cols, CV_8U); code = cvtest::cmpEps2( ts, fgmask, fullfg, 255, false, "The final foreground mask" ); diff --git a/modules/video/test/test_estimaterigid.cpp b/modules/video/test/test_estimaterigid.cpp index ddfd007a18..47122fe596 100644 --- a/modules/video/test/test_estimaterigid.cpp +++ b/modules/video/test/test_estimaterigid.cpp @@ -153,7 +153,7 @@ bool CV_RigidTransform_Test::testImage() Mat aff_est = estimateRigidTransform(img, rotated, true); - const double thres = 0.03; + const double thres = 0.033; if (norm(aff_est, aff, NORM_INF) > thres) { ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY); diff --git a/samples/cpp/bgfg_gmg.cpp b/samples/cpp/bgfg_gmg.cpp index 3d2da44ab2..a9197d194c 100644 --- a/samples/cpp/bgfg_gmg.cpp +++ b/samples/cpp/bgfg_gmg.cpp @@ -32,16 +32,13 @@ int main(int argc, char** argv) setUseOptimized(true); setNumThreads(8); - Ptr fgbg = Algorithm::create("BackgroundSubtractor.GMG"); + Ptr fgbg = createBackgroundSubtractorGMG(20, 0.7); if (fgbg.empty()) { std::cerr << "Failed to create BackgroundSubtractor.GMG Algorithm." << std::endl; return -1; } - fgbg->set("initializationFrames", 20); - fgbg->set("decisionThreshold", 0.7); - VideoCapture cap; if (argc > 1) cap.open(argv[1]); @@ -65,9 +62,9 @@ int main(int argc, char** argv) if (frame.empty()) break; - (*fgbg)(frame, fgmask); + fgbg->apply(frame, fgmask); - frame.copyTo(segm); + frame.convertTo(segm, CV_8U, 0.5); add(frame, Scalar(100, 100, 0), segm, fgmask); imshow("FG Segmentation", segm); diff --git a/samples/cpp/bgfg_segm.cpp b/samples/cpp/bgfg_segm.cpp index 399c7ad28a..00d0cbe8f0 100644 --- a/samples/cpp/bgfg_segm.cpp +++ b/samples/cpp/bgfg_segm.cpp @@ -51,7 +51,7 @@ int main(int argc, const char** argv) namedWindow("foreground image", CV_WINDOW_NORMAL); namedWindow("mean background image", CV_WINDOW_NORMAL); - BackgroundSubtractorMOG2 bg_model;//(100, 3, 0.3, 5); + Ptr bg_model = createBackgroundSubtractorMOG2(); Mat img, fgmask, fgimg; @@ -68,13 +68,13 @@ int main(int argc, const char** argv) fgimg.create(img.size(), img.type()); //update the model - bg_model(img, fgmask, update_bg_model ? -1 : 0); + bg_model->apply(img, fgmask, update_bg_model ? -1 : 0); fgimg = Scalar::all(0); img.copyTo(fgimg, fgmask); Mat bgimg; - bg_model.getBackgroundImage(bgimg); + bg_model->getBackgroundImage(bgimg); imshow("image", img); imshow("foreground mask", fgmask); diff --git a/samples/cpp/segment_objects.cpp b/samples/cpp/segment_objects.cpp index 891b63cffb..d70d0350b7 100644 --- a/samples/cpp/segment_objects.cpp +++ b/samples/cpp/segment_objects.cpp @@ -87,15 +87,15 @@ int main(int argc, char** argv) namedWindow("video", 1); namedWindow("segmented", 1); - BackgroundSubtractorMOG bgsubtractor; - bgsubtractor.set("noiseSigma", 10); + Ptr bgsubtractor=createBackgroundSubtractorMOG(); + bgsubtractor->setNoiseSigma(10); for(;;) { cap >> tmp_frame; if( !tmp_frame.data ) break; - bgsubtractor(tmp_frame, bgmask, update_bg_model ? -1 : 0); + bgsubtractor->apply(tmp_frame, bgmask, update_bg_model ? -1 : 0); //CvMat _bgmask = bgmask; //cvSegmentFGMask(&_bgmask); refineSegments(tmp_frame, bgmask, out_frame); diff --git a/samples/gpu/performance/tests.cpp b/samples/gpu/performance/tests.cpp index b35102d861..59aa1e457c 100644 --- a/samples/gpu/performance/tests.cpp +++ b/samples/gpu/performance/tests.cpp @@ -1316,10 +1316,10 @@ TEST(MOG) cv::Mat frame; cap >> frame; - cv::BackgroundSubtractorMOG mog; + cv::Ptr mog = cv::createBackgroundSubtractorMOG(); cv::Mat foreground; - mog(frame, foreground, 0.01); + mog->apply(frame, foreground, 0.01); while (!TestSystem::instance().stop()) { @@ -1327,7 +1327,7 @@ TEST(MOG) TestSystem::instance().cpuOn(); - mog(frame, foreground, 0.01); + mog->apply(frame, foreground, 0.01); TestSystem::instance().cpuOff(); } @@ -1367,12 +1367,12 @@ TEST(MOG2) cv::Mat frame; cap >> frame; - cv::BackgroundSubtractorMOG2 mog2; + cv::Ptr mog2 = cv::createBackgroundSubtractorMOG2(); cv::Mat foreground; cv::Mat background; - mog2(frame, foreground); - mog2.getBackgroundImage(background); + mog2->apply(frame, foreground); + mog2->getBackgroundImage(background); while (!TestSystem::instance().stop()) { @@ -1380,8 +1380,8 @@ TEST(MOG2) TestSystem::instance().cpuOn(); - mog2(frame, foreground); - mog2.getBackgroundImage(background); + mog2->apply(frame, foreground); + mog2->getBackgroundImage(background); TestSystem::instance().cpuOff(); } From 429cd85b46f85418a3fea5a6e2d70e9ccfba9639 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Wed, 20 Mar 2013 12:12:58 -0700 Subject: [PATCH 0044/1333] More accurate guards for WinRT features in CMake. --- 3rdparty/tbb/CMakeLists.txt | 4 ++-- CMakeLists.txt | 7 +------ cmake/OpenCVDetectCXXCompiler.cmake | 2 ++ modules/highgui/CMakeLists.txt | 12 ++++++++---- platforms/winrt/arm.winrt.toolchain.cmake | 5 +++++ platforms/winrt/scripts/cmake_winrt.cmd | 4 +--- 6 files changed, 19 insertions(+), 15 deletions(-) create mode 100644 platforms/winrt/arm.winrt.toolchain.cmake diff --git a/3rdparty/tbb/CMakeLists.txt b/3rdparty/tbb/CMakeLists.txt index 6a5d2a8569..af1581349e 100644 --- a/3rdparty/tbb/CMakeLists.txt +++ b/3rdparty/tbb/CMakeLists.txt @@ -123,7 +123,7 @@ file(GLOB lib_hdrs "${tbb_src_dir}/src/tbb/*.h") list(APPEND lib_srcs "${tbb_src_dir}/src/rml/client/rml_tbb.cpp") if (WIN32) -add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0 + add_definitions(-D__TBB_DYNAMIC_LOAD_ENABLED=0 -D__TBB_BUILD=1 -D_UNICODE -DUNICODE @@ -162,7 +162,7 @@ endif() set(TBB_SOURCE_FILES ${lib_srcs} ${lib_hdrs}) -if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") AND NOT WIN32) +if (ARM AND NOT WIN32) if (NOT ANDROID) set(TBB_SOURCE_FILES ${TBB_SOURCE_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/arm_linux_stub.cpp") endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f997ba17d..22ee7fe7b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,11 +60,6 @@ endif() project(OpenCV CXX C) -if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") AND WIN32) - set(CMAKE_REQUIRED_DEFINITIONS -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE) - add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE) -endif() - include(cmake/OpenCVUtils.cmake) # ---------------------------------------------------------------------------- @@ -613,7 +608,7 @@ else() status(" QT 4.x:" NO) endif() if(WIN32) - status(" Win32 UI:" NO) + status(" Win32 UI:" ARM THEN NO ELSE YES) else() if(APPLE) if(WITH_CARBON) diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake index 6e02780009..504004bce7 100644 --- a/cmake/OpenCVDetectCXXCompiler.cmake +++ b/cmake/OpenCVDetectCXXCompiler.cmake @@ -103,4 +103,6 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*" OR CMAKE_GENERATOR set(X86_64 1) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*") set(X86 1) +elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm.*|ARM.*") + set(ARM 1) endif() diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index b8600e9b03..6d92455faa 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -90,7 +90,9 @@ if(HAVE_QT) set_source_files_properties(${_RCC_OUTFILES} PROPERTIES COMPILE_FLAGS -Wno-missing-declarations) endif() elseif(WIN32) - #list(APPEND highgui_srcs src/window_w32.cpp) + if (NOT ARM) + list(APPEND highgui_srcs src/window_w32.cpp) + endif() elseif(HAVE_GTK) list(APPEND highgui_srcs src/window_gtk.cpp) elseif(APPLE) @@ -105,10 +107,12 @@ elseif(APPLE) endif() endif() -#if(WIN32) +if(WIN32) list(APPEND highgui_srcs src/cap_dshow.cpp) - #list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp) -#endif(WIN32) + if (NOT ARM) + list(APPEND highgui_srcs src/cap_vfw.cpp src/cap_cmu.cpp) + endif() +endif(WIN32) if(HAVE_XINE) list(APPEND highgui_srcs src/cap_xine.cpp) diff --git a/platforms/winrt/arm.winrt.toolchain.cmake b/platforms/winrt/arm.winrt.toolchain.cmake new file mode 100644 index 0000000000..01854b598e --- /dev/null +++ b/platforms/winrt/arm.winrt.toolchain.cmake @@ -0,0 +1,5 @@ +set(CMAKE_SYSTEM_NAME Windows) # WindowsRT breaks cmake 2.8.10.2 and earler +set(CMAKE_SYSTEM_PROCESSOR "arm") + +set(CMAKE_REQUIRED_DEFINITIONS -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE) +add_definitions(-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE) \ No newline at end of file diff --git a/platforms/winrt/scripts/cmake_winrt.cmd b/platforms/winrt/scripts/cmake_winrt.cmd index 18aafef026..3dd20e4d3c 100644 --- a/platforms/winrt/scripts/cmake_winrt.cmd +++ b/platforms/winrt/scripts/cmake_winrt.cmd @@ -3,6 +3,4 @@ cd build rem call "C:\Program Files\Microsoft Visual Studio 11.0\VC\bin\x86_arm\vcvarsx86_arm.bat" -SET PATH=C:\Program Files\Ninja;%PATH% - -"C:\Program Files\CMake 2.8\bin\cmake.exe" -GNinja -DCMAKE_BUILD_TYPE=Release -DWITH_TIFF=OFF -DWITH_FFMPEG=OFF -DBUILD_opencv_gpu=OFF -DENABLE_SSE=OFF -DENABLE_SSE2=OFF ..\..\.. \ No newline at end of file +cmake.exe -GNinja -DWITH_FFMPEG=OFF -DBUILD_opencv_gpu=OFF -DBUILD_opencv_python=OFF -DCMAKE_TOOLCHAIN_FILE=..\..\winrt\arm.winrt.toolchain.cmake ..\..\.. From a7a0f92e589ef43707a05b7de90033cde9102a38 Mon Sep 17 00:00:00 2001 From: Jonathan Bohren Date: Wed, 20 Mar 2013 16:49:59 -0400 Subject: [PATCH 0045/1333] Fixing segfault for near-zero-sized ellipses --- modules/core/src/drawing.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/core/src/drawing.cpp b/modules/core/src/drawing.cpp index 8850c6ec4c..a6d5287be7 100644 --- a/modules/core/src/drawing.cpp +++ b/modules/core/src/drawing.cpp @@ -890,8 +890,10 @@ void ellipse2Poly( Point center, Size axes, int angle, pts.push_back(pt); } - if( pts.size() < 2 ) - pts.push_back(pts[0]); + // If there are no points, it's a zero-size polygon + if( pts.size() < 2) { + pts.assign(2,center); + } } From 4e1619d8ee020c7e2e3d659fdc279f832222b893 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Thu, 21 Mar 2013 11:30:38 +0400 Subject: [PATCH 0046/1333] repaired std::string handling --- modules/python/src2/cv2.cpp | 2 ++ modules/python/src2/gen2.py | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/python/src2/cv2.cpp b/modules/python/src2/cv2.cpp index bbdd5abbe7..59f7f15457 100644 --- a/modules/python/src2/cv2.cpp +++ b/modules/python/src2/cv2.cpp @@ -99,6 +99,8 @@ catch (const cv::Exception &e) \ using namespace cv; typedef cv::softcascade::ChannelFeatureBuilder softcascade_ChannelFeatureBuilder; +typedef std::string string; + typedef std::vector vector_uchar; typedef std::vector vector_int; typedef std::vector vector_float; diff --git a/modules/python/src2/gen2.py b/modules/python/src2/gen2.py index c7aa72544a..8669fbd85f 100755 --- a/modules/python/src2/gen2.py +++ b/modules/python/src2/gen2.py @@ -214,8 +214,7 @@ simple_argtype_mapping = { "int": ("int", "i", "0"), "float": ("float", "f", "0.f"), "double": ("double", "d", "0"), - "c_string": ("char*", "s", '(char*)""'), - "string": ("std::string", "s", None) + "c_string": ("char*", "s", '(char*)""') } def normalize_class_name(name): @@ -571,7 +570,7 @@ class FuncInfo(object): else: code_fcall = "ERRWRAP2( " if v.rettype: - code_decl += " " + simple_argtype_mapping.get(v.rettype, (v.rettype, None, None))[0] + " retval;\n" + code_decl += " " + v.rettype + " retval;\n" code_fcall += "retval = " if ismethod: code_fcall += "_self_->" + self.cname From 4f3453dbbf341b4222dd4dbbadf8addae45b234b Mon Sep 17 00:00:00 2001 From: Dirk Van Haerenborgh Date: Thu, 21 Mar 2013 10:17:34 +0100 Subject: [PATCH 0047/1333] bomb commit of gstreamer videocapture and videowriter --- CMakeLists.txt | 11 +- cmake/OpenCVFindLibsVideo.cmake | 43 +- modules/highgui/src/cap_gstreamer.cpp | 1464 ++++++++++++++++++------- 3 files changed, 1112 insertions(+), 406 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 470c5520dd..c99e59b5a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,6 +120,7 @@ OCV_OPTION(WITH_NVCUVID "Include NVidia Video Decoding library support" OCV_OPTION(WITH_EIGEN "Include Eigen2/Eigen3 support" ON) OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS)) OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) ) +OCV_OPTION(WITH_GSTREAMER_1_X "Include Gstreamer 1.x support" OFF) OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) ) OCV_OPTION(WITH_IPP "Include Intel IPP support" OFF IF (MSVC OR X86 OR X86_64) ) OCV_OPTION(WITH_JASPER "Include JPEG2K support" ON IF (NOT IOS) ) @@ -707,10 +708,12 @@ endif(DEFINED WITH_FFMPEG) if(DEFINED WITH_GSTREAMER) status(" GStreamer:" HAVE_GSTREAMER THEN "" ELSE NO) if(HAVE_GSTREAMER) - status(" base:" "YES (ver ${ALIASOF_gstreamer-base-0.10_VERSION})") - status(" app:" "YES (ver ${ALIASOF_gstreamer-app-0.10_VERSION})") - status(" video:" "YES (ver ${ALIASOF_gstreamer-video-0.10_VERSION})") - endif() + status(" base:" "YES (ver ${GSTREAMER_BASE_VERSION})") + status(" video:" "YES (ver ${GSTREAMER_VIDEO_VERSION})") + status(" app:" "YES (ver ${GSTREAMER_APP_VERSION})") + status(" riff:" "YES (ver ${GSTREAMER_RIFF_VERSION})") + status(" pbutils:" "YES (ver ${GSTREAMER_PBUTILS_VERSION})") + endif(HAVE_GSTREAMER) endif(DEFINED WITH_GSTREAMER) if(DEFINED WITH_OPENNI) diff --git a/cmake/OpenCVFindLibsVideo.cmake b/cmake/OpenCVFindLibsVideo.cmake index 414918527b..d74e22012b 100644 --- a/cmake/OpenCVFindLibsVideo.cmake +++ b/cmake/OpenCVFindLibsVideo.cmake @@ -4,15 +4,44 @@ # --- GStreamer --- ocv_clear_vars(HAVE_GSTREAMER) -if(WITH_GSTREAMER) - CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER) - if(HAVE_GSTREAMER) - CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER) +# try to find gstreamer 0.10 first +if(WITH_GSTREAMER AND NOT WITH_GSTREAMER_1_X) + CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER_BASE) + CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER_VIDEO) + CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER_APP) + CHECK_MODULE(gstreamer-riff-0.10 HAVE_GSTREAMER_RIFF) + CHECK_MODULE(gstreamer-pbutils-0.10 HAVE_GSTREAMER_PBUTILS) + + if(HAVE_GSTREAMER_BASE AND HAVE_GSTREAMER_VIDEO AND HAVE_GSTREAMER_APP AND HAVE_GSTREAMER_RIFF AND HAVE_GSTREAMER_PBUTILS) + set(HAVE_GSTREAMER TRUE) + set(GSTREAMER_BASE_VERSION ${ALIASOF_gstreamer-base-0.10_VERSION}) + set(GSTREAMER_VIDEO_VERSION ${ALIASOF_gstreamer-video-0.10_VERSION}) + set(GSTREAMER_APP_VERSION ${ALIASOF_gstreamer-app-0.10_VERSION}) + set(GSTREAMER_RIFF_VERSION ${ALIASOF_gstreamer-riff-0.10_VERSION}) + set(GSTREAMER_PBUTILS_VERSION ${ALIASOF_gstreamer-pbutils-0.10_VERSION}) endif() - if(HAVE_GSTREAMER) - CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER) + +endif(WITH_GSTREAMER AND NOT WITH_GSTREAMER_1_X) + +# if gstreamer 0.10 was not found, or we specified we wanted 1.x, try to find it +if(WITH_GSTREAMER_1_X OR NOT HAVE_GSTREAMER) + #check for 1.x + CHECK_MODULE(gstreamer-base-1.0 HAVE_GSTREAMER_BASE) + CHECK_MODULE(gstreamer-video-1.0 HAVE_GSTREAMER_VIDEO) + CHECK_MODULE(gstreamer-app-1.0 HAVE_GSTREAMER_APP) + CHECK_MODULE(gstreamer-riff-1.0 HAVE_GSTREAMER_RIFF) + CHECK_MODULE(gstreamer-pbutils-1.0 HAVE_GSTREAMER_PBUTILS) + + if(HAVE_GSTREAMER_BASE AND HAVE_GSTREAMER_VIDEO AND HAVE_GSTREAMER_APP AND HAVE_GSTREAMER_RIFF AND HAVE_GSTREAMER_PBUTILS) + set(HAVE_GSTREAMER TRUE) + set(GSTREAMER_BASE_VERSION ${ALIASOF_gstreamer-base-1.0_VERSION}) + set(GSTREAMER_VIDEO_VERSION ${ALIASOF_gstreamer-video-1.0_VERSION}) + set(GSTREAMER_APP_VERSION ${ALIASOF_gstreamer-app-1.0_VERSION}) + set(GSTREAMER_RIFF_VERSION ${ALIASOF_gstreamer-riff-1.0_VERSION}) + set(GSTREAMER_PBUTILS_VERSION ${ALIASOF_gstreamer-pbutils-1.0_VERSION}) endif() -endif(WITH_GSTREAMER) + +endif(WITH_GSTREAMER_1_X OR NOT HAVE_GSTREAMER) # --- unicap --- ocv_clear_vars(HAVE_UNICAP) diff --git a/modules/highgui/src/cap_gstreamer.cpp b/modules/highgui/src/cap_gstreamer.cpp index cafc803db4..b1a2ca0e42 100644 --- a/modules/highgui/src/cap_gstreamer.cpp +++ b/modules/highgui/src/cap_gstreamer.cpp @@ -39,25 +39,27 @@ // //M*/ -// Author: Nils Hasler -// -// Max-Planck-Institut Informatik -// -// this implementation was inspired by gnash's gstreamer interface - -// -// use GStreamer to read a video -// - +/*! + * \file cap_gstreamer.cpp + * \author Nils Hasler + * Max-Planck-Institut Informatik + * \author Dirk Van Haerenborgh + * + * \brief Use GStreamer to read/write video + */ #include "precomp.hpp" #include #include -#include #include +#include #include #include #include #include +#include +#include +//#include + #ifdef NDEBUG #define CV_WARN(message) @@ -65,9 +67,23 @@ #define CV_WARN(message) fprintf(stderr, "warning: %s (%s:%d)\n", message, __FILE__, __LINE__) #endif +#if GST_VERSION_MAJOR > 0 +#define COLOR_ELEM "videoconvert" +#else +#define COLOR_ELEM "ffmpegcolorspace" +#endif + + +void toFraction(double decimal, double &numerator, double &denominator); +void handleMessage(GstElement * pipeline); + + static cv::Mutex gst_initializer_mutex; -class gst_initializer +/*! + * \brief The gst_initializer class + * Initializes gstreamer once in the whole process + */class gst_initializer { public: static void init() @@ -80,9 +96,16 @@ private: gst_initializer() { gst_init(NULL, NULL); +// gst_debug_set_active(TRUE); +// gst_debug_set_colored(TRUE); +// gst_debug_set_default_threshold(GST_LEVEL_INFO); } }; +/*! + * \brief The CvCapture_GStreamer class + * Use GStreamer to capture video + */ class CvCapture_GStreamer : public CvCapture { public: @@ -100,259 +123,486 @@ public: protected: void init(); bool reopen(); - void handleMessage(); + bool isPipelinePlaying(); + void startPipeline(); + void stopPipeline(); void restartPipeline(); - void setFilter(const char*, int, int, int); + void setFilter(const char* prop, int type, int v1, int v2 = NULL); void removeFilter(const char *filter); - void static newPad(GstElement *myelement, - GstPad *pad, - gpointer data); - GstElement *pipeline; - GstElement *uridecodebin; - GstElement *color; - GstElement *sink; - - GstBuffer *buffer; - GstCaps *caps; - IplImage *frame; + static void newPad(GstElement *myelement, + GstPad *pad, + gpointer data); + GstElement* pipeline; + GstElement* uridecodebin; + GstElement* color; + GstElement* sink; +#if GST_VERSION_MAJOR > 0 + GstSample* sample; + GstMapInfo* info; +#endif + GstBuffer* buffer; + GstCaps* caps; + GstCaps* buffer_caps; + IplImage* frame; }; +/*! + * \brief CvCapture_GStreamer::init + * inits the class + */ void CvCapture_GStreamer::init() { - pipeline=0; - frame=0; - buffer=0; - frame=0; - + pipeline = NULL; + frame = NULL; + buffer = NULL; + buffer_caps = NULL; +#if GST_VERSION_MAJOR > 0 + sample = NULL; + info = new GstMapInfo; +#endif } -void CvCapture_GStreamer::handleMessage() +/*! + * \brief CvCapture_GStreamer::close + * Closes the pipeline and destroys all instances + */ +void CvCapture_GStreamer::close() { - GstBus* bus = gst_element_get_bus(pipeline); + if (isPipelinePlaying()) + this->stopPipeline(); - while(gst_bus_have_pending(bus)) { - GstMessage* msg = gst_bus_pop(bus); - -// printf("Got %s message\n", GST_MESSAGE_TYPE_NAME(msg)); - - switch (GST_MESSAGE_TYPE (msg)) { - case GST_MESSAGE_STATE_CHANGED: - GstState oldstate, newstate, pendstate; - gst_message_parse_state_changed(msg, &oldstate, &newstate, &pendstate); -// printf("state changed from %d to %d (%d)\n", oldstate, newstate, pendstate); - break; - case GST_MESSAGE_ERROR: { - GError *err; - gchar *debug; - gst_message_parse_error(msg, &err, &debug); - - fprintf(stderr, "GStreamer Plugin: Embedded video playback halted; module %s reported: %s\n", - gst_element_get_name(GST_MESSAGE_SRC (msg)), err->message); - - g_error_free(err); - g_free(debug); - - gst_element_set_state(pipeline, GST_STATE_NULL); - - break; - } - case GST_MESSAGE_EOS: -// CV_WARN("NetStream has reached the end of the stream."); - - break; - default: -// CV_WARN("unhandled message\n"); - break; - } - - gst_message_unref(msg); + if(pipeline) { + gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_NULL); + gst_object_unref(GST_OBJECT(pipeline)); } + if(uridecodebin){ + gst_object_unref(GST_OBJECT(uridecodebin)); + } + if(color){ + gst_object_unref(GST_OBJECT(color)); + } + if(sink){ + gst_object_unref(GST_OBJECT(sink)); + } + if(buffer) + gst_buffer_unref(buffer); + if(frame) { + frame->imageData = 0; + cvReleaseImage(&frame); + } + if(caps){ + gst_caps_unref(caps); + } + if(buffer_caps){ + gst_caps_unref(buffer_caps); + } +#if GST_VERSION_MAJOR > 0 + if(sample){ + gst_sample_unref(sample); + } +#endif - gst_object_unref(GST_OBJECT(bus)); } -// -// start the pipeline, grab a buffer, and pause again -// +/*! + * \brief CvCapture_GStreamer::grabFrame + * \return + * Grabs a sample from the pipeline, awaiting consumation by retreiveFrame. + * The pipeline is started if it was not running yet + */ bool CvCapture_GStreamer::grabFrame() { - if(!pipeline) return false; + // start the pipeline if it was not in playing state yet + if(!this->isPipelinePlaying()) + this->startPipeline(); + + // bail out if EOS if(gst_app_sink_is_eos(GST_APP_SINK(sink))) return false; +#if GST_VERSION_MAJOR == 0 if(buffer) gst_buffer_unref(buffer); - handleMessage(); buffer = gst_app_sink_pull_buffer(GST_APP_SINK(sink)); +#else + if(sample) + gst_sample_unref(sample); + + sample = gst_app_sink_pull_sample(GST_APP_SINK(sink)); + + if(!sample) + return false; + + buffer = gst_sample_get_buffer(sample); +#endif + if(!buffer) return false; return true; } -// -// decode buffer -// +/*! + * \brief CvCapture_GStreamer::retrieveFrame + * \return IplImage pointer. [Transfer Full] + * Retreive the previously grabbed buffer, and wrap it in an IPLImage structure + */ IplImage * CvCapture_GStreamer::retrieveFrame(int) { if(!buffer) return 0; - if(!frame) { + //construct a frame header if we did not have any yet + if(!frame) + { gint height, width; - GstCaps *buff_caps = gst_buffer_get_caps(buffer); - assert(gst_caps_get_size(buff_caps) == 1); - GstStructure* structure = gst_caps_get_structure(buff_caps, 0); + //reuse the caps ptr + if (buffer_caps) + gst_caps_unref(buffer_caps); + +#if GST_VERSION_MAJOR == 0 + buffer_caps = gst_buffer_get_caps(buffer); +#else + buffer_caps = gst_sample_get_caps(sample); +#endif + // bail out in no caps + assert(gst_caps_get_size(buffer_caps) == 1); + GstStructure* structure = gst_caps_get_structure(buffer_caps, 0); + + // bail out if width or height are 0 if(!gst_structure_get_int(structure, "width", &width) || - !gst_structure_get_int(structure, "height", &height)) + !gst_structure_get_int(structure, "height", &height)) + { + return 0; + } + + + int depth = 3; +#if GST_VERSION_MAJOR > 0 + depth = 0; + const gchar* name = gst_structure_get_name(structure); + const gchar* format = gst_structure_get_string(structure, "format"); + + if (!name || !format) return 0; - frame = cvCreateImageHeader(cvSize(width, height), IPL_DEPTH_8U, 3); - gst_caps_unref(buff_caps); + // we support 3 types of data: + // video/x-raw, format=BGR -> 8bit, 3 channels + // video/x-raw, format=GRAY8 -> 8bit, 1 channel + // video/x-bayer -> 8bit, 1 channel + // bayer data is never decoded, the user is responsible for that + // everything is 8 bit, so we just test the caps for bit depth + + if (strcasecmp(name, "video/x-raw") == 0) + { + if (strcasecmp(format, "BGR") == 0) { + depth = 3; + } + else if(strcasecmp(format, "GRAY8") == 0){ + depth = 1; + } + } + else if (strcasecmp(name, "video/x-bayer") == 0) + { + depth = 1; + } +#endif + if (depth > 0) { + frame = cvCreateImageHeader(cvSize(width, height), IPL_DEPTH_8U, depth); + }else{ + return 0; + } } - // no need to memcpy, just use gstreamer's buffer :-) + // gstreamer expects us to handle the memory at this point + // so we can just wrap the raw buffer and be done with it +#if GST_VERSION_MAJOR == 0 frame->imageData = (char *)GST_BUFFER_DATA(buffer); - //memcpy (frame->imageData, GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE (buffer)); - //gst_buffer_unref(buffer); - //buffer = 0; +#else + // the data ptr in GstMapInfo is only valid throughout the mapifo objects life. + // TODO: check if reusing the mapinfo object is ok. + + gboolean success = gst_buffer_map(buffer,info, (GstMapFlags)GST_MAP_READ); + if (!success){ + //something weird went wrong here. abort. abort. + //fprintf(stderr,"GStreamer: unable to map buffer"); + return 0; + } + frame->imageData = (char*)info->data; + gst_buffer_unmap(buffer,info); +#endif + return frame; } -void CvCapture_GStreamer::restartPipeline() + +/*! + * \brief CvCapture_GStreamer::isPipelinePlaying + * \return if the pipeline is currently playing. + */ +bool CvCapture_GStreamer::isPipelinePlaying() { - CV_FUNCNAME("icvRestartPipeline"); + GstState current, pending; + GstClockTime timeout = 5*GST_SECOND; + if(!GST_IS_ELEMENT(pipeline)){ + return false; + } + + GstStateChangeReturn ret = gst_element_get_state(GST_ELEMENT(pipeline),¤t, &pending, timeout); + if (!ret){ + //fprintf(stderr, "GStreamer: unable to query pipeline state\n"); + return false; + } + + return current == GST_STATE_PLAYING; +} + +/*! + * \brief CvCapture_GStreamer::startPipeline + * Start the pipeline by setting it to the playing state + */ +void CvCapture_GStreamer::startPipeline() +{ + CV_FUNCNAME("icvStartPipeline"); __BEGIN__; - printf("restarting pipeline, going to ready\n"); - - if(gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_READY) == - GST_STATE_CHANGE_FAILURE) { - CV_ERROR(CV_StsError, "GStreamer: unable to start pipeline\n"); - return; - } - - printf("ready, relinking\n"); - - gst_element_unlink(uridecodebin, color); - printf("filtering with %s\n", gst_caps_to_string(caps)); - gst_element_link_filtered(uridecodebin, color, caps); - - printf("relinked, pausing\n"); - + //fprintf(stderr, "relinked, pausing\n"); if(gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PLAYING) == - GST_STATE_CHANGE_FAILURE) { + GST_STATE_CHANGE_FAILURE) { CV_ERROR(CV_StsError, "GStreamer: unable to start pipeline\n"); + gst_object_unref(pipeline); return; } - printf("state now paused\n"); - - __END__; + //printf("state now playing\n"); + handleMessage(pipeline); + __END__; } -void CvCapture_GStreamer::setFilter(const char *property, int type, int v1, int v2) -{ - if(!caps) { +/*! + * \brief CvCapture_GStreamer::stopPipeline + * Stop the pipeline by setting it to NULL + */ +void CvCapture_GStreamer::stopPipeline() +{ + CV_FUNCNAME("icvStopPipeline"); + + __BEGIN__; + + //fprintf(stderr, "restarting pipeline, going to ready\n"); + if(gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_NULL) == + GST_STATE_CHANGE_FAILURE) { + CV_ERROR(CV_StsError, "GStreamer: unable to stop pipeline\n"); + gst_object_unref(pipeline); + return; + } + __END__; +} + +/*! + * \brief CvCapture_GStreamer::restartPipeline + * Restart the pipeline + */ +void CvCapture_GStreamer::restartPipeline() +{ + handleMessage(pipeline); + + this->stopPipeline(); + this->startPipeline(); +} + + +/*! + * \brief CvCapture_GStreamer::setFilter + * \param prop the property name + * \param type glib property type + * \param v1 the value + * \param v2 second value of property type requires it, else NULL + * Filter the output formats by setting appsink caps properties + */ +void CvCapture_GStreamer::setFilter(const char *prop, int type, int v1, int v2) +{ + //printf("GStreamer: setFilter \n"); + if(!caps || !( GST_IS_CAPS (caps) )) + { if(type == G_TYPE_INT) - caps = gst_caps_new_simple("video/x-raw-rgb", property, type, v1, NULL); + { +#if GST_VERSION_MAJOR == 0 + caps = gst_caps_new_simple("video/x-raw-rgb", prop, type, v1, NULL); +#else + caps = gst_caps_new_simple("video/x-raw","format",G_TYPE_STRING,"BGR", prop, type, v1, NULL); +#endif + } else - caps = gst_caps_new_simple("video/x-raw-rgb", property, type, v1, v2, NULL); - } else { - //printf("caps before setting %s\n", gst_caps_to_string(caps)); - if(type == G_TYPE_INT) - gst_caps_set_simple(caps, "video/x-raw-rgb", property, type, v1, NULL); - else - gst_caps_set_simple(caps, "video/x-raw-rgb", property, type, v1, v2, NULL); + { +#if GST_VERSION_MAJOR == 0 + caps = gst_caps_new_simple("video/x-raw-rgb", prop, type, v1, v2, NULL); +#else + caps = gst_caps_new_simple("video/x-raw","format",G_TYPE_STRING,"BGR", prop, type, v1, v2, NULL); +#endif + } + } + else + { +#if GST_VERSION_MAJOR > 0 + if (! gst_caps_is_writable(caps)) + caps = gst_caps_make_writable (caps); +#endif + if(type == G_TYPE_INT){ + gst_caps_set_simple(caps, prop, type, v1, NULL); + }else{ + gst_caps_set_simple(caps, prop, type, v1, v2, NULL); + } } - restartPipeline(); +#if GST_VERSION_MAJOR > 0 + caps = gst_caps_fixate(caps); +#endif + + gst_app_sink_set_caps(GST_APP_SINK(sink), caps); + //printf("filtering with %s\n", gst_caps_to_string(caps)); } + +/*! + * \brief CvCapture_GStreamer::removeFilter + * \param filter filter to remove + * remove the specified filter from the appsink template caps + */ void CvCapture_GStreamer::removeFilter(const char *filter) { if(!caps) return; +#if GST_VERSION_MAJOR > 0 + if (! gst_caps_is_writable(caps)) + caps = gst_caps_make_writable (caps); +#endif + GstStructure *s = gst_caps_get_structure(caps, 0); gst_structure_remove_field(s, filter); - restartPipeline(); + gst_app_sink_set_caps(GST_APP_SINK(sink), caps); } - -// -// connect uridecodebin dynamically created source pads to colourconverter -// -void CvCapture_GStreamer::newPad(GstElement * /*uridecodebin*/, - GstPad *pad, - gpointer data) +/*! + * \brief CvCapture_GStreamer::newPad link dynamic padd + * \param pad + * \param data + * decodebin creates pads based on stream information, which is not known upfront + * on receiving the pad-added signal, we connect it to the colorspace conversion element + */ +void CvCapture_GStreamer::newPad(GstElement * /*elem*/, + GstPad *pad, + gpointer data) { GstPad *sinkpad; GstElement *color = (GstElement *) data; - sinkpad = gst_element_get_static_pad (color, "sink"); - -// printf("linking dynamic pad to colourconverter %p %p\n", uridecodebin, pad); + if (!sinkpad){ + //fprintf(stderr, "Gstreamer: no pad named sink\n"); + return; + } gst_pad_link (pad, sinkpad); - gst_object_unref (sinkpad); } +/*! + * \brief CvCapture_GStreamer::open Open the given file with gstreamer + * \param type CvCapture type. One of CV_CAP_GSTREAMER_* + * \param filename Filename to open in case of CV_CAP_GSTREAMER_FILE + * \return boolean. Specifies if opening was succesful. + * + * In case of CV_CAP_GSTREAMER_V4L(2), a pipelin is constructed as follows: + * v4l2src ! autoconvert ! appsink + * + * + * The 'filename' parameter is not limited to filesystem paths, and may be one of the following: + * + * - a normal filesystem path: + * e.g. video.avi or /path/to/video.avi or C:\\video.avi + * - an uri: + * e.g. file:///path/to/video.avi or rtsp:///path/to/stream.asf + * - a gstreamer pipeline description: + * e.g. videotestsrc ! videoconvert ! appsink + * the appsink name should be either 'appsink0' (the default) or 'opencvsink' + * + * When dealing with a file, CvCapture_GStreamer will not drop frames if the grabbing interval + * larger than the framerate period. (Unlike the uri or manual pipeline description, which assume + * a live source) + * + * The pipeline will only be started whenever the first frame is grabbed. Setting pipeline properties + * is really slow if we need to restart the pipeline over and over again. + * + * TODO: the 'type' parameter is imo unneeded. for v4l2, filename 'v4l2:///dev/video0' can be used. + * I expect this to be the same for CV_CAP_GSTREAMER_1394. Is anyone actually still using v4l (v1)? + * + */ bool CvCapture_GStreamer::open( int type, const char* filename ) { - close(); CV_FUNCNAME("cvCaptureFromCAM_GStreamer"); __BEGIN__; gst_initializer::init(); -// if(!isInited) { -// printf("gst_init\n"); -// gst_init (NULL, NULL); - -// gst_debug_set_active(TRUE); -// gst_debug_set_colored(TRUE); -// gst_debug_set_default_threshold(GST_LEVEL_WARNING); - -// isInited = true; -// } bool stream = false; bool manualpipeline = false; char *uri = NULL; uridecodebin = NULL; - if(type != CV_CAP_GSTREAMER_FILE) { - close(); - return false; + GstElementFactory * testfac; + + if (type == CV_CAP_GSTREAMER_V4L){ + testfac = gst_element_factory_find("v4lsrc"); + if (!testfac){ + return false; + } + g_object_unref(G_OBJECT(testfac)); + filename = "v4lsrc ! "COLOR_ELEM" ! appsink"; + } + if (type == CV_CAP_GSTREAMER_V4L2){ + testfac = gst_element_factory_find("v4l2src"); + if (!testfac){ + return false; + } + g_object_unref(G_OBJECT(testfac)); + filename = "v4l2src ! "COLOR_ELEM" ! appsink"; } - if(!gst_uri_is_valid(filename)) { + + // test if we have a valid uri. If so, open it with an uridecodebin + // else, we might have a file or a manual pipeline. + // if gstreamer cannot parse the manual pipeline, we assume we were given and + // ordinary file path. + if(!gst_uri_is_valid(filename)) + { uri = realpath(filename, NULL); - stream=false; - if(uri) { + stream = false; + if(uri) + { uri = g_filename_to_uri(uri, NULL, NULL); if(!uri) { CV_WARN("GStreamer: Error opening file\n"); close(); return false; } - } else { + } + else + { GError *err = NULL; - //uridecodebin = gst_parse_bin_from_description(filename, FALSE, &err); uridecodebin = gst_parse_launch(filename, &err); if(!uridecodebin) { - CV_WARN("GStreamer: Error opening bin\n"); - close(); + //fprintf(stderr, "GStreamer: Error opening bin: %s\n", err->message); + //close(); return false; } stream = true; @@ -363,32 +613,75 @@ bool CvCapture_GStreamer::open( int type, const char* filename ) uri = g_strdup(filename); } - if(!uridecodebin) { - uridecodebin = gst_element_factory_make ("uridecodebin", NULL); - g_object_set(G_OBJECT(uridecodebin),"uri",uri, NULL); + bool element_from_uri = false; + if(!uridecodebin) + { + // At this writing, the v4l2 element (and maybe others too) does not support caps renegotiation. + // This means that we cannot use an uridecodebin when dealing with v4l2, since setting + // capture properties will not work. + // The solution (probably only until gstreamer 1.2) is to make an element from uri when dealing with v4l2. + gchar * protocol = gst_uri_get_protocol(uri); + if (!strcasecmp(protocol , "v4l2")) + { +#if GST_VERSION_MAJOR == 0 + uridecodebin = gst_element_make_from_uri(GST_URI_SRC, uri, "src"); +#else + uridecodebin = gst_element_make_from_uri(GST_URI_SRC, uri, "src", NULL); +#endif + element_from_uri = true; + }else{ + uridecodebin = gst_element_factory_make ("uridecodebin", NULL); + g_object_set(G_OBJECT(uridecodebin),"uri",uri, NULL); + } + g_free(protocol); + if(!uridecodebin) { - CV_WARN("GStreamer: Failed to create uridecodebin\n"); + //fprintf(stderr, "GStreamer: Error opening bin: %s\n", err->message); close(); return false; } } - if(manualpipeline) { + if(manualpipeline) + { +#if GST_VERSION_MAJOR == 0 GstIterator *it = gst_bin_iterate_sinks(GST_BIN(uridecodebin)); if(gst_iterator_next(it, (gpointer *)&sink) != GST_ITERATOR_OK) { - CV_ERROR(CV_StsError, "GStreamer: cannot find appsink in manual pipeline\n"); - return false; + CV_ERROR(CV_StsError, "GStreamer: cannot find appsink in manual pipeline\n"); + return false; + } +#else + sink = gst_bin_get_by_name(GST_BIN(uridecodebin), "opencvsink"); + if (!sink){ + sink = gst_bin_get_by_name(GST_BIN(uridecodebin), "appsink0"); } - pipeline = uridecodebin; - } else { - pipeline = gst_pipeline_new (NULL); - - color = gst_element_factory_make("ffmpegcolorspace", NULL); + if (!sink){ + CV_ERROR(CV_StsError, "GStreamer: cannot find appsink in manual pipeline\n"); + return false; + } +#endif + pipeline = uridecodebin; + } + else + { + pipeline = gst_pipeline_new (NULL); + // videoconvert (in 0.10: ffmpegcolorspace) automatically selects the correct colorspace + // conversion based on caps. + color = gst_element_factory_make(COLOR_ELEM, NULL); sink = gst_element_factory_make("appsink", NULL); gst_bin_add_many(GST_BIN(pipeline), uridecodebin, color, sink, NULL); - g_signal_connect(uridecodebin, "pad-added", G_CALLBACK(newPad), color); + + if(element_from_uri) { + if(!gst_element_link(uridecodebin, color)) { + CV_ERROR(CV_StsError, "GStreamer: cannot link color -> sink\n"); + gst_object_unref(pipeline); + return false; + } + }else{ + g_signal_connect(uridecodebin, "pad-added", G_CALLBACK(newPad), color); + } if(!gst_element_link(color, sink)) { CV_ERROR(CV_StsError, "GStreamer: cannot link color -> sink\n"); @@ -397,230 +690,52 @@ bool CvCapture_GStreamer::open( int type, const char* filename ) } } + //TODO: is 1 single buffer really high enough? gst_app_sink_set_max_buffers (GST_APP_SINK(sink), 1); gst_app_sink_set_drop (GST_APP_SINK(sink), stream); + //do not emit signals: all calls will be synchronous and blocking + gst_app_sink_set_emit_signals (GST_APP_SINK(sink), FALSE); + +#if GST_VERSION_MAJOR == 0 caps = gst_caps_new_simple("video/x-raw-rgb", "red_mask", G_TYPE_INT, 0x0000FF, "green_mask", G_TYPE_INT, 0x00FF00, "blue_mask", G_TYPE_INT, 0xFF0000, NULL); +#else + // support 1 and 3 channel 8 bit data, as well as bayer (also 1 channel, 8bit) + caps = gst_caps_from_string("video/x-raw, format=(string){BGR, GRAY8}; video/x-bayer,format=(string){rggb,bggr,grbg,gbrg}"); +#endif gst_app_sink_set_caps(GST_APP_SINK(sink), caps); gst_caps_unref(caps); - if(gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_READY) == - GST_STATE_CHANGE_FAILURE) { - CV_WARN("GStreamer: unable to set pipeline to ready\n"); - gst_object_unref(pipeline); - return false; - } - - if(gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PLAYING) == - GST_STATE_CHANGE_FAILURE) { - gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_NULL); - CV_WARN("GStreamer: unable to set pipeline to playing\n"); - gst_object_unref(pipeline); - return false; - } - - - - handleMessage(); - + //we do not start recording here just yet. + // the user probably wants to set capture properties first, so start recording whenever the first frame is requested __END__; return true; } -// -// -// gstreamer image sequence writer -// -// -class CvVideoWriter_GStreamer : public CvVideoWriter -{ -public: - CvVideoWriter_GStreamer() { init(); } - virtual ~CvVideoWriter_GStreamer() { close(); } - - virtual bool open( const char* filename, int fourcc, - double fps, CvSize frameSize, bool isColor ); - virtual void close(); - virtual bool writeFrame( const IplImage* image ); -protected: - void init(); - std::map encs; - GstElement* source; - GstElement* file; - GstElement* enc; - GstElement* mux; - GstElement* color; - GstBuffer* buffer; - GstElement* pipeline; - int input_pix_fmt; -}; - -void CvVideoWriter_GStreamer::init() -{ - encs[CV_FOURCC('D','R','A','C')]=(char*)"diracenc"; - encs[CV_FOURCC('H','F','Y','U')]=(char*)"ffenc_huffyuv"; - encs[CV_FOURCC('J','P','E','G')]=(char*)"jpegenc"; - encs[CV_FOURCC('M','J','P','G')]=(char*)"jpegenc"; - encs[CV_FOURCC('M','P','1','V')]=(char*)"mpeg2enc"; - encs[CV_FOURCC('M','P','2','V')]=(char*)"mpeg2enc"; - encs[CV_FOURCC('T','H','E','O')]=(char*)"theoraenc"; - encs[CV_FOURCC('V','P','8','0')]=(char*)"vp8enc"; - encs[CV_FOURCC('H','2','6','4')]=(char*)"x264enc"; - encs[CV_FOURCC('X','2','6','4')]=(char*)"x264enc"; - encs[CV_FOURCC('X','V','I','D')]=(char*)"xvidenc"; - encs[CV_FOURCC('F','F','Y','U')]=(char*)"y4menc"; - //encs[CV_FOURCC('H','F','Y','U')]=(char*)"y4menc"; - pipeline=0; - buffer=0; -} -void CvVideoWriter_GStreamer::close() -{ - if (pipeline) { - gst_app_src_end_of_stream(GST_APP_SRC(source)); - gst_element_set_state (pipeline, GST_STATE_NULL); - gst_object_unref (GST_OBJECT (pipeline)); - } -} -bool CvVideoWriter_GStreamer::open( const char * filename, int fourcc, - double fps, CvSize frameSize, bool is_color ) -{ - CV_FUNCNAME("CvVideoWriter_GStreamer::open"); - - __BEGIN__; - //actually doesn't support fourcc parameter and encode an avi with jpegenc - //we need to find a common api between backend to support fourcc for avi - //but also to choose in a common way codec and container format (ogg,dirac,matroska) - // check arguments - - assert (filename); - assert (fps > 0); - assert (frameSize.width > 0 && frameSize.height > 0); - std::map::iterator encit; - encit=encs.find(fourcc); - if (encit==encs.end()) - CV_ERROR( CV_StsUnsupportedFormat,"Gstreamer Opencv backend doesn't support this codec acutally."); -// if(!isInited) { -// gst_init (NULL, NULL); -// isInited = true; -// } - gst_initializer::init(); - close(); - source=gst_element_factory_make("appsrc",NULL); - file=gst_element_factory_make("filesink", NULL); - enc=gst_element_factory_make(encit->second, NULL); - mux=gst_element_factory_make("avimux", NULL); - color = gst_element_factory_make("ffmpegcolorspace", NULL); - if (!enc) - CV_ERROR( CV_StsUnsupportedFormat, "Your version of Gstreamer doesn't support this codec acutally or needed plugin missing."); - g_object_set(G_OBJECT(file), "location", filename, NULL); - pipeline = gst_pipeline_new (NULL); - GstCaps* caps; - if (is_color) { - input_pix_fmt=1; - caps= gst_video_format_new_caps(GST_VIDEO_FORMAT_BGR, - frameSize.width, - frameSize.height, - (int) (fps * 1000), - 1000, - 1, - 1); - } - else { - input_pix_fmt=0; - caps= gst_caps_new_simple("video/x-raw-gray", - "width", G_TYPE_INT, frameSize.width, - "height", G_TYPE_INT, frameSize.height, - "framerate", GST_TYPE_FRACTION, int(fps),1, - "bpp",G_TYPE_INT,8, - "depth",G_TYPE_INT,8, - NULL); - } - gst_app_src_set_caps(GST_APP_SRC(source), caps); - if (fourcc==CV_FOURCC_DEFAULT) { - gst_bin_add_many(GST_BIN(pipeline), source, color,mux, file, NULL); - if(!gst_element_link_many(source,color,enc,mux,file,NULL)) { - CV_ERROR(CV_StsError, "GStreamer: cannot link elements\n"); - } - } - else { - gst_bin_add_many(GST_BIN(pipeline), source, color,enc,mux, file, NULL); - if(!gst_element_link_many(source,color,enc,mux,file,NULL)) { - CV_ERROR(CV_StsError, "GStreamer: cannot link elements\n"); - } - } - - - if(gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PLAYING) == - GST_STATE_CHANGE_FAILURE) { - CV_ERROR(CV_StsError, "GStreamer: cannot put pipeline to play\n"); - } - __END__; - return true; -} -bool CvVideoWriter_GStreamer::writeFrame( const IplImage * image ) -{ - - CV_FUNCNAME("CvVideoWriter_GStreamer::writerFrame"); - - __BEGIN__; - if (input_pix_fmt == 1) { - if (image->nChannels != 3 || image->depth != IPL_DEPTH_8U) { - CV_ERROR(CV_StsUnsupportedFormat, "cvWriteFrame() needs images with depth = IPL_DEPTH_8U and nChannels = 3."); - } - } - else if (input_pix_fmt == 0) { - if (image->nChannels != 1 || image->depth != IPL_DEPTH_8U) { - CV_ERROR(CV_StsUnsupportedFormat, "cvWriteFrame() needs images with depth = IPL_DEPTH_8U and nChannels = 1."); - } - } - else { - assert(false); - } - int size; - size = image->imageSize; - buffer = gst_buffer_new_and_alloc (size); - //gst_buffer_set_data (buffer,(guint8*)image->imageData, size); - memcpy (GST_BUFFER_DATA(buffer),image->imageData, size); - gst_app_src_push_buffer(GST_APP_SRC(source),buffer); - //gst_buffer_unref(buffer); - //buffer = 0; - __END__; - return true; -} -CvVideoWriter* cvCreateVideoWriter_GStreamer(const char* filename, int fourcc, double fps, - CvSize frameSize, int isColor ) -{ - CvVideoWriter_GStreamer* wrt = new CvVideoWriter_GStreamer; - if( wrt->open(filename, fourcc, fps,frameSize, isColor)) - return wrt; - - delete wrt; - return 0; -} - -void CvCapture_GStreamer::close() -{ - if(pipeline) { - gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_NULL); - gst_object_unref(GST_OBJECT(pipeline)); - } - if(buffer) - gst_buffer_unref(buffer); - if(frame) { - frame->imageData = 0; - cvReleaseImage(&frame); - } -} - +/*! + * \brief CvCapture_GStreamer::getProperty retreive the requested property from the pipeline + * \param propId requested property + * \return property value + * + * There are two ways the properties can be retreived. For seek-based properties we can query the pipeline. + * For frame-based properties, we use the caps of the lasst receivef sample. This means that some properties + * are not available until a first frame was received + */ double CvCapture_GStreamer::getProperty( int propId ) { GstFormat format; - //GstQuery q; gint64 value; + gboolean status; + +#if GST_VERSION_MAJOR == 0 +#define FORMAT &format +#else +#define FORMAT format +#endif if(!pipeline) { CV_WARN("GStreamer: no pipeline"); @@ -630,33 +745,76 @@ double CvCapture_GStreamer::getProperty( int propId ) switch(propId) { case CV_CAP_PROP_POS_MSEC: format = GST_FORMAT_TIME; - if(!gst_element_query_position(sink, &format, &value)) { + status = gst_element_query_position(sink, FORMAT, &value); + if(!status) { CV_WARN("GStreamer: unable to query position of stream"); return false; } return value * 1e-6; // nano seconds to milli seconds case CV_CAP_PROP_POS_FRAMES: format = GST_FORMAT_DEFAULT; - if(!gst_element_query_position(sink, &format, &value)) { + status = gst_element_query_position(sink, FORMAT, &value); + if(!status) { CV_WARN("GStreamer: unable to query position of stream"); return false; } return value; case CV_CAP_PROP_POS_AVI_RATIO: format = GST_FORMAT_PERCENT; - if(!gst_element_query_position(pipeline, &format, &value)) { + status = gst_element_query_position(sink, FORMAT, &value); + if(!status) { CV_WARN("GStreamer: unable to query position of stream"); return false; } return ((double) value) / GST_FORMAT_PERCENT_MAX; - case CV_CAP_PROP_FRAME_WIDTH: - case CV_CAP_PROP_FRAME_HEIGHT: - case CV_CAP_PROP_FPS: + case CV_CAP_PROP_FRAME_WIDTH: { + if (!buffer_caps){ + CV_WARN("GStreamer: unable to query width of frame; no frame grabbed yet"); + return 0; + } + GstStructure* structure = gst_caps_get_structure(buffer_caps, 0); + gint width = 0; + if(!gst_structure_get_int(structure, "width", &width)){ + CV_WARN("GStreamer: unable to query width of frame"); + return 0; + } + return width; + break; + } + case CV_CAP_PROP_FRAME_HEIGHT: { + if (!buffer_caps){ + CV_WARN("GStreamer: unable to query height of frame; no frame grabbed yet"); + return 0; + } + GstStructure* structure = gst_caps_get_structure(buffer_caps, 0); + gint height = 0; + if(!gst_structure_get_int(structure, "height", &height)){ + CV_WARN("GStreamer: unable to query height of frame"); + return 0; + } + return height; + break; + } + case CV_CAP_PROP_FPS: { + if (!buffer_caps){ + CV_WARN("GStreamer: unable to query framerate of stream; no frame grabbed yet"); + return 0; + } + GstStructure* structure = gst_caps_get_structure(buffer_caps, 0); + gint num = 0, denom=1; + if(!gst_structure_get_fraction(structure, "framerate", &num, &denom)){ + CV_WARN("GStreamer: unable to query framerate of stream"); + return 0; + } + return (double)num/(double)denom; + break; + } case CV_CAP_PROP_FOURCC: break; case CV_CAP_PROP_FRAME_COUNT: format = GST_FORMAT_DEFAULT; - if(!gst_element_query_duration(pipeline, &format, &value)) { + status = gst_element_query_position(sink, FORMAT, &value); + if(!status) { CV_WARN("GStreamer: unable to query position of stream"); return false; } @@ -672,20 +830,31 @@ double CvCapture_GStreamer::getProperty( int propId ) break; case CV_CAP_GSTREAMER_QUEUE_LENGTH: if(!sink) { - CV_WARN("GStreamer: there is no sink yet"); - return false; + CV_WARN("GStreamer: there is no sink yet"); + return false; } return gst_app_sink_get_max_buffers(GST_APP_SINK(sink)); default: CV_WARN("GStreamer: unhandled property"); break; } + +#undef FORMAT + return false; } +/*! + * \brief CvCapture_GStreamer::setProperty + * \param propId + * \param value + * \return success + * Sets the desired property id with val. If the pipeline is running, + * it is briefly stopped and started again after the property was set + */ bool CvCapture_GStreamer::setProperty( int propId, double value ) { - GstFormat format; + GstFormat format; GstSeekFlags flags; if(!pipeline) { @@ -693,12 +862,17 @@ bool CvCapture_GStreamer::setProperty( int propId, double value ) return false; } + bool wasPlaying = this->isPipelinePlaying(); + if (wasPlaying) + this->stopPipeline(); + + switch(propId) { case CV_CAP_PROP_POS_MSEC: format = GST_FORMAT_TIME; flags = (GstSeekFlags) (GST_SEEK_FLAG_FLUSH|GST_SEEK_FLAG_ACCURATE); if(!gst_element_seek_simple(GST_ELEMENT(pipeline), format, - flags, (gint64) (value * GST_MSECOND))) { + flags, (gint64) (value * GST_MSECOND))) { CV_WARN("GStreamer: unable to seek"); } break; @@ -706,7 +880,7 @@ bool CvCapture_GStreamer::setProperty( int propId, double value ) format = GST_FORMAT_DEFAULT; flags = (GstSeekFlags) (GST_SEEK_FLAG_FLUSH|GST_SEEK_FLAG_ACCURATE); if(!gst_element_seek_simple(GST_ELEMENT(pipeline), format, - flags, (gint64) value)) { + flags, (gint64) value)) { CV_WARN("GStreamer: unable to seek"); } break; @@ -714,7 +888,7 @@ bool CvCapture_GStreamer::setProperty( int propId, double value ) format = GST_FORMAT_PERCENT; flags = (GstSeekFlags) (GST_SEEK_FLAG_FLUSH|GST_SEEK_FLAG_ACCURATE); if(!gst_element_seek_simple(GST_ELEMENT(pipeline), format, - flags, (gint64) (value * GST_FORMAT_PERCENT_MAX))) { + flags, (gint64) (value * GST_FORMAT_PERCENT_MAX))) { CV_WARN("GStreamer: unable to seek"); } break; @@ -732,15 +906,9 @@ bool CvCapture_GStreamer::setProperty( int propId, double value ) break; case CV_CAP_PROP_FPS: if(value > 0) { - int num, denom; - num = (int) value; - if(value != num) { // FIXME this supports only fractions x/1 and x/2 - num = (int) (value * 2); - denom = 2; - } else - denom = 1; - - setFilter("framerate", GST_TYPE_FRACTION, num, denom); + double num=0, denom = 1; + toFraction(value, num, denom); + setFilter("framerate", GST_TYPE_FRACTION, value, denom); } else removeFilter("framerate"); break; @@ -763,8 +931,19 @@ bool CvCapture_GStreamer::setProperty( int propId, double value ) default: CV_WARN("GStreamer: unhandled property"); } + + if (wasPlaying) + this->startPipeline(); + return false; } + +/*! + * \brief cvCreateCapture_GStreamer + * \param type + * \param filename + * \return + */ CvCapture* cvCreateCapture_GStreamer(int type, const char* filename ) { CvCapture_GStreamer* capture = new CvCapture_GStreamer; @@ -775,3 +954,498 @@ CvCapture* cvCreateCapture_GStreamer(int type, const char* filename ) delete capture; return 0; } + + +/*! + * \brief The CvVideoWriter_GStreamer class + * Use Gstreamer to write video + */ +class CvVideoWriter_GStreamer : public CvVideoWriter +{ +public: + CvVideoWriter_GStreamer() { init(); } + virtual ~CvVideoWriter_GStreamer() { close(); } + + virtual bool open( const char* filename, int fourcc, + double fps, CvSize frameSize, bool isColor ); + virtual void close(); + virtual bool writeFrame( const IplImage* image ); +protected: + void init(); + const char* filenameToMimetype(const char* filename); + GstElement* pipeline; + GstElement* source; + GstElement* encodebin; + GstElement* file; + + GstBuffer* buffer; + int input_pix_fmt; + int num_frames; + double framerate; +}; + +/*! + * \brief CvVideoWriter_GStreamer::init + * initialise all variables + */ +void CvVideoWriter_GStreamer::init() +{ + pipeline = NULL; + source = NULL; + encodebin = NULL; + file = NULL; + buffer = NULL; + + num_frames = 0; + framerate = 0; +} + +/*! + * \brief CvVideoWriter_GStreamer::close + * ends the pipeline by sending EOS and destroys the pipeline and all + * elements afterwards + */ +void CvVideoWriter_GStreamer::close() +{ + if (pipeline) { + GstFlowReturn ret; + ret = gst_app_src_end_of_stream(GST_APP_SRC(source)); + + //wait for EOS to trickle down the pipeline. This will let all elements finish properly + GstBus* bus = gst_element_get_bus(pipeline); + GstMessage *msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, (GstMessageType)(GST_MESSAGE_ERROR | GST_MESSAGE_EOS)); + if(msg != NULL){ + gst_message_unref(msg); + g_object_unref(G_OBJECT(bus)); + } + + gst_element_set_state (pipeline, GST_STATE_NULL); + handleMessage(pipeline); + + gst_object_unref (GST_OBJECT (pipeline)); + } +} + + +/*! + * \brief CvVideoWriter_GStreamer::filenameToMimetype + * \param filename + * \return mimetype + * Resturns a container mime type for a given filename by looking at it's extension + */ +const char* CvVideoWriter_GStreamer::filenameToMimetype(const char *filename) +{ + //get extension + const char *ext = strrchr(filename, '.'); + if(!ext || ext == filename) return NULL; + ext += 1; //exclude the dot + + // return a container mime based on the given extension. + // gstreamer's function returns too much possibilities, which is not useful to us + + //return the appropriate mime + if (strncasecmp(ext,"avi", 3) == 0) + return (const char*)"video/x-msvideo"; + + if (strncasecmp(ext,"mkv", 3) == 0 || strncasecmp(ext,"mk3d",4) == 0 || strncasecmp(ext,"webm",4) == 0 ) + return (const char*)"video/x-matroska"; + + if (strncasecmp(ext,"wmv", 3) == 0) + return (const char*)"video/x-ms-asf"; + + if (strncasecmp(ext,"mov", 3) == 0) + return (const char*)"video/x-quicktime"; + + if (strncasecmp(ext,"ogg", 3) == 0 || strncasecmp(ext,"ogv", 3) == 0) + return (const char*)"application/ogg"; + + if (strncasecmp(ext,"rm", 3) == 0) + return (const char*)"vnd.rn-realmedia"; + + if (strncasecmp(ext,"swf", 3) == 0) + return (const char*)"application/x-shockwave-flash"; + + if (strncasecmp(ext,"mp4", 3) == 0) + return (const char*)"video/x-quicktime, variant=(string)iso"; + + //default to avi + return (const char*)"video/x-msvideo"; +} + + +/*! + * \brief CvVideoWriter_GStreamer::open + * \param filename filename to output to + * \param fourcc desired codec fourcc + * \param fps desired framerate + * \param frameSize the size of the expected frames + * \param is_color color or grayscale + * \return success + * + * We support 2 modes of operation. Either the user enters a filename and a fourcc + * code, or enters a manual pipeline description like in CvVideoCapture_Gstreamer. + * In the latter case, we just push frames on the appsink with appropriate caps. + * In the former case, we try to deduce the correct container from the filename, + * and the correct encoder from the fourcc profile. + * + * If the file extension did was not recognize, an avi container is used + * + */ +bool CvVideoWriter_GStreamer::open( const char * filename, int fourcc, + double fps, CvSize frameSize, bool is_color ) +{ + CV_FUNCNAME("CvVideoWriter_GStreamer::open"); + + // check arguments + assert (filename); + assert (fps > 0); + assert (frameSize.width > 0 && frameSize.height > 0); + + // init gstreamer + gst_initializer::init(); + + // init vars + bool manualpipeline = true; + int bufsize = 0; + GError *err = NULL; + const char* mime = NULL; + GstStateChangeReturn stateret; + + GstCaps* caps = NULL; + GstCaps* videocaps = NULL; + GstCaps* containercaps = NULL; + GstEncodingContainerProfile* containerprofile = NULL; + GstEncodingVideoProfile* videoprofile = NULL; + +#if GST_VERSION_MAJOR == 0 + GstIterator *it = NULL; +#endif + + // we first try to construct a pipeline from the given string. + // if that fails, we assume it is an ordinary filename + + __BEGIN__; + + encodebin = gst_parse_launch(filename, &err); + if(!encodebin) { + manualpipeline = false; + } + + if(manualpipeline) + { +#if GST_VERSION_MAJOR == 0 + it = gst_bin_iterate_sources(GST_BIN(encodebin)); + if(gst_iterator_next(it, (gpointer *)&source) != GST_ITERATOR_OK) { + CV_ERROR(CV_StsError, "GStreamer: cannot find appsink in manual pipeline\n"); + return false; + } +#else + source = gst_bin_get_by_name(GST_BIN(encodebin), "opencvsrc"); + if (!source){ + source = gst_bin_get_by_name(GST_BIN(encodebin), "appsrc0"); + } + + if (!source){ + CV_ERROR(CV_StsError, "GStreamer: cannot find appsrc in manual pipeline\n"); + return false; + } +#endif + pipeline = encodebin; + } + else + { + pipeline = gst_pipeline_new (NULL); + + // we just got a filename and a fourcc code. + // first, try to guess the container from the filename + //encodebin = gst_element_factory_make("encodebin", NULL); + + //proxy old non existing fourcc ids. These were used in previous opencv versions, + //but do not even exist in gstreamer any more + if (fourcc == CV_FOURCC('M','P','1','V')) fourcc = CV_FOURCC('M', 'P', 'G' ,'1'); + if (fourcc == CV_FOURCC('M','P','2','V')) fourcc = CV_FOURCC('M', 'P', 'G' ,'2'); + if (fourcc == CV_FOURCC('D','R','A','C')) fourcc = CV_FOURCC('d', 'r', 'a' ,'c'); + + //create encoder caps from fourcc + videocaps = gst_riff_create_video_caps(fourcc, NULL, NULL, NULL, NULL, NULL); + if (!videocaps){ + CV_ERROR( CV_StsUnsupportedFormat, "Gstreamer Opencv backend does not support this codec."); + } + + //create container caps from file extension + mime = filenameToMimetype(filename); + if (!mime) { + CV_ERROR( CV_StsUnsupportedFormat, "Gstreamer Opencv backend does not support this file type."); + } + containercaps = gst_caps_from_string(mime); + + //create encodebin profile + containerprofile = gst_encoding_container_profile_new("container", "container", containercaps, NULL); + videoprofile = gst_encoding_video_profile_new(videocaps, NULL, NULL, 1); + gst_encoding_container_profile_add_profile(containerprofile, (GstEncodingProfile *) videoprofile); + + //create pipeline elements + encodebin = gst_element_factory_make("encodebin", NULL); + g_object_set(G_OBJECT(encodebin), "profile", containerprofile, NULL); + source = gst_element_factory_make("appsrc", NULL); + file = gst_element_factory_make("filesink", NULL); + g_object_set(G_OBJECT(file), "location", filename, NULL); + } + + if (is_color) + { + input_pix_fmt = GST_VIDEO_FORMAT_BGR; + bufsize = frameSize.width * frameSize.height * 3; + +#if GST_VERSION_MAJOR == 0 + caps = gst_video_format_new_caps(GST_VIDEO_FORMAT_BGR, + frameSize.width, + frameSize.height, + int(fps), 1, + 1, 1); +#else + caps = gst_caps_new_simple("video/x-raw", + "format", G_TYPE_STRING, "BGR", + "width", G_TYPE_INT, frameSize.width, + "height", G_TYPE_INT, frameSize.height, + "framerate", GST_TYPE_FRACTION, int(fps), 1, + NULL); + caps = gst_caps_fixate(caps); + +#endif + + } + else + { + input_pix_fmt = GST_VIDEO_FORMAT_GRAY8; + bufsize = frameSize.width * frameSize.height; + +#if GST_VERSION_MAJOR == 0 + caps = gst_video_format_new_caps(GST_VIDEO_FORMAT_GRAY8, + frameSize.width, + frameSize.height, + int(fps), 1, + 1, 1); +#else + caps = gst_caps_new_simple("video/x-raw", + "format", G_TYPE_STRING, "GRAY8", + "width", G_TYPE_INT, frameSize.width, + "height", G_TYPE_INT, frameSize.height, + "framerate", GST_TYPE_FRACTION, int(fps), 1, + NULL); + caps = gst_caps_fixate(caps); +#endif + } + + gst_app_src_set_caps(GST_APP_SRC(source), caps); + gst_app_src_set_stream_type(GST_APP_SRC(source), GST_APP_STREAM_TYPE_STREAM); + gst_app_src_set_size (GST_APP_SRC(source), -1); + + g_object_set(G_OBJECT(source), "format", GST_FORMAT_TIME, NULL); + g_object_set(G_OBJECT(source), "block", TRUE, NULL); + g_object_set(G_OBJECT(source), "is-live", FALSE, NULL); + g_object_set(G_OBJECT(source), "emit-signals", TRUE, NULL); + + if(!manualpipeline) + { + g_object_set(G_OBJECT(file), "buffer-size", bufsize, NULL); + gst_bin_add_many(GST_BIN(pipeline), source, encodebin, file, NULL); + if(!gst_element_link_many(source, encodebin, file, NULL)) { + CV_ERROR(CV_StsError, "GStreamer: cannot link elements\n"); + } + } + + stateret = gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PLAYING); + if(stateret == GST_STATE_CHANGE_FAILURE) { + CV_ERROR(CV_StsError, "GStreamer: cannot put pipeline to play\n"); + } + handleMessage(pipeline); + + framerate = fps; + num_frames = 0; + + __END__; + + return true; +} + + +/*! + * \brief CvVideoWriter_GStreamer::writeFrame + * \param image + * \return + * Pushes the given frame on the pipeline. + * The timestamp for the buffer is generated from the framerate set in open + * and ensures a smooth video + */ +bool CvVideoWriter_GStreamer::writeFrame( const IplImage * image ) +{ + + CV_FUNCNAME("CvVideoWriter_GStreamer::writerFrame"); + + GstClockTime duration, timestamp; + GstFlowReturn ret; + int size; + + __BEGIN__; + handleMessage(pipeline); + + if (input_pix_fmt == GST_VIDEO_FORMAT_BGR) { + if (image->nChannels != 3 || image->depth != IPL_DEPTH_8U) { + CV_ERROR(CV_StsUnsupportedFormat, "cvWriteFrame() needs images with depth = IPL_DEPTH_8U and nChannels = 3."); + } + } + else if (input_pix_fmt == GST_VIDEO_FORMAT_GRAY8) { + if (image->nChannels != 1 || image->depth != IPL_DEPTH_8U) { + CV_ERROR(CV_StsUnsupportedFormat, "cvWriteFrame() needs images with depth = IPL_DEPTH_8U and nChannels = 1."); + } + } + else { + assert(false); + } + + size = image->imageSize; + duration = ((double)1/framerate) * GST_SECOND; + timestamp = num_frames * duration; + + //gst_app_src_push_buffer takes ownership of the buffer, so we need to supply it a copy +#if GST_VERSION_MAJOR == 0 + buffer = gst_buffer_new_and_alloc (size); + memcpy(GST_BUFFER_DATA (buffer), (guint8*)image->imageData, size); + GST_BUFFER_DURATION(buffer) = duration; + GST_BUFFER_TIMESTAMP(buffer) = timestamp; +#else + buffer = gst_buffer_new_allocate (NULL, size, NULL); + GstMapInfo info; + gst_buffer_map(buffer, &info, (GstMapFlags)GST_MAP_READ); + memcpy(info.data, (guint8*)image->imageData, size); + gst_buffer_unmap(buffer, &info); + GST_BUFFER_DURATION(buffer) = duration; + GST_BUFFER_PTS(buffer) = timestamp; + GST_BUFFER_DTS(buffer) = timestamp; +#endif + //set the current number in the frame + GST_BUFFER_OFFSET(buffer) = num_frames; + + ret = gst_app_src_push_buffer(GST_APP_SRC(source), buffer); + if (ret != GST_FLOW_OK) { + /* something wrong, stop pushing */ + assert(false); + } + //gst_debug_bin_to_dot_file (GST_BIN(pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "pipeline"); + ++num_frames; + + __END__; + return true; +} + +/*! + * \brief cvCreateVideoWriter_GStreamer + * \param filename + * \param fourcc + * \param fps + * \param frameSize + * \param isColor + * \return + * Constructor + */ +CvVideoWriter* cvCreateVideoWriter_GStreamer(const char* filename, int fourcc, double fps, + CvSize frameSize, int isColor ) +{ + CvVideoWriter_GStreamer* wrt = new CvVideoWriter_GStreamer; + if( wrt->open(filename, fourcc, fps,frameSize, isColor)) + return wrt; + + delete wrt; + return 0; +} + +// utility functions + +/*! + * \brief toFraction + * \param decimal + * \param numerator + * \param denominator + * Split a floating point value into numerator and denominator + */ +void toFraction(double decimal, double &numerator, double &denominator) +{ + double dummy; + double whole; + decimal = modf (decimal, &whole); + for (denominator = 1; denominator<=100; denominator++){ + if (modf(denominator * decimal, &dummy) < 0.001f) + break; + } + numerator = denominator * decimal; +} + + +/*! + * \brief handleMessage + * Handles gstreamer bus messages. Mainly for debugging purposes and ensuring clean shutdown on error + */ +void handleMessage(GstElement * pipeline) +{ + CV_FUNCNAME("handlemessage"); + + GError *err = NULL; + gchar *debug = NULL; + GstBus* bus = NULL; + GstStreamStatusType tp; + GstElement * elem = NULL; + GstMessage* msg = NULL; + + __BEGIN__; + bus = gst_element_get_bus(pipeline); + + while(gst_bus_have_pending(bus)) { + msg = gst_bus_pop(bus); + + //printf("Got %s message\n", GST_MESSAGE_TYPE_NAME(msg)); + + if(gst_is_missing_plugin_message(msg)) + { + CV_ERROR(CV_StsError, "GStreamer: your gstreamer installation is missing a required plugin\n"); + } + else + { + switch (GST_MESSAGE_TYPE (msg)) { + case GST_MESSAGE_STATE_CHANGED: + GstState oldstate, newstate, pendstate; + gst_message_parse_state_changed(msg, &oldstate, &newstate, &pendstate); + //fprintf(stderr, "state changed from %s to %s (pending: %s)\n", gst_element_state_get_name(oldstate), + // gst_element_state_get_name(newstate), gst_element_state_get_name(pendstate)); + break; + case GST_MESSAGE_ERROR: + gst_message_parse_error(msg, &err, &debug); + + //fprintf(stderr, "GStreamer Plugin: Embedded video playback halted; module %s reported: %s\n", + // gst_element_get_name(GST_MESSAGE_SRC (msg)), err->message); + + g_error_free(err); + g_free(debug); + + gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_NULL); + break; + case GST_MESSAGE_EOS: + //fprintf(stderr, "reached the end of the stream."); + break; + case GST_MESSAGE_STREAM_STATUS: + + gst_message_parse_stream_status(msg,&tp,&elem); + //fprintf(stderr, "stream status: elem %s, %i\n", GST_ELEMENT_NAME(elem), tp); + break; + default: + //fprintf(stderr, "unhandled message\n"); + break; + } + } + gst_message_unref(msg); + } + + gst_object_unref(GST_OBJECT(bus)); + + __END__ +} From 99c49648fadada8e319e8ea0f3efb53f62e455b2 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Wed, 20 Mar 2013 12:31:21 +0400 Subject: [PATCH 0048/1333] fixed gpu::LUT on multi device system --- modules/gpu/src/arithm.cpp | 61 ++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 36 deletions(-) diff --git a/modules/gpu/src/arithm.cpp b/modules/gpu/src/arithm.cpp index 7e0aaab680..573f7c574a 100644 --- a/modules/gpu/src/arithm.cpp +++ b/modules/gpu/src/arithm.cpp @@ -319,40 +319,14 @@ void cv::gpu::flip(const GpuMat& src, GpuMat& dst, int flipCode, Stream& stream) void cv::gpu::LUT(const GpuMat& src, const Mat& lut, GpuMat& dst, Stream& s) { - class LevelsInit - { - public: - Npp32s pLevels[256]; - const Npp32s* pLevels3[3]; - int nValues3[3]; + const int cn = src.channels(); -#if (CUDA_VERSION > 4020) - GpuMat d_pLevels; -#endif + CV_Assert( src.type() == CV_8UC1 || src.type() == CV_8UC3 ); + CV_Assert( lut.depth() == CV_8U ); + CV_Assert( lut.channels() == 1 || lut.channels() == cn ); + CV_Assert( lut.rows * lut.cols == 256 && lut.isContinuous() ); - LevelsInit() - { - nValues3[0] = nValues3[1] = nValues3[2] = 256; - for (int i = 0; i < 256; ++i) - pLevels[i] = i; - - -#if (CUDA_VERSION <= 4020) - pLevels3[0] = pLevels3[1] = pLevels3[2] = pLevels; -#else - d_pLevels.upload(Mat(1, 256, CV_32S, pLevels)); - pLevels3[0] = pLevels3[1] = pLevels3[2] = d_pLevels.ptr(); -#endif - } - }; - static LevelsInit lvls; - - int cn = src.channels(); - - CV_Assert(src.type() == CV_8UC1 || src.type() == CV_8UC3); - CV_Assert(lut.depth() == CV_8U && (lut.channels() == 1 || lut.channels() == cn) && lut.rows * lut.cols == 256 && lut.isContinuous()); - - dst.create(src.size(), CV_MAKETYPE(lut.depth(), cn)); + dst.create(src.size(), CV_MAKE_TYPE(lut.depth(), cn)); NppiSize sz; sz.height = src.rows; @@ -361,19 +335,34 @@ void cv::gpu::LUT(const GpuMat& src, const Mat& lut, GpuMat& dst, Stream& s) Mat nppLut; lut.convertTo(nppLut, CV_32S); - cudaStream_t stream = StreamAccessor::getStream(s); + int nValues3[] = {256, 256, 256}; + Npp32s pLevels[256]; + for (int i = 0; i < 256; ++i) + pLevels[i] = i; + + const Npp32s* pLevels3[3]; + +#if (CUDA_VERSION <= 4020) + pLevels3[0] = pLevels3[1] = pLevels3[2] = pLevels; +#else + GpuMat d_pLevels; + d_pLevels.upload(Mat(1, 256, CV_32S, pLevels)); + pLevels3[0] = pLevels3[1] = pLevels3[2] = d_pLevels.ptr(); +#endif + + cudaStream_t stream = StreamAccessor::getStream(s); NppStreamHandler h(stream); if (src.type() == CV_8UC1) { #if (CUDA_VERSION <= 4020) nppSafeCall( nppiLUT_Linear_8u_C1R(src.ptr(), static_cast(src.step), - dst.ptr(), static_cast(dst.step), sz, nppLut.ptr(), lvls.pLevels, 256) ); + dst.ptr(), static_cast(dst.step), sz, nppLut.ptr(), pLevels, 256) ); #else GpuMat d_nppLut(Mat(1, 256, CV_32S, nppLut.data)); nppSafeCall( nppiLUT_Linear_8u_C1R(src.ptr(), static_cast(src.step), - dst.ptr(), static_cast(dst.step), sz, d_nppLut.ptr(), lvls.d_pLevels.ptr(), 256) ); + dst.ptr(), static_cast(dst.step), sz, d_nppLut.ptr(), d_pLevels.ptr(), 256) ); #endif } else @@ -410,7 +399,7 @@ void cv::gpu::LUT(const GpuMat& src, const Mat& lut, GpuMat& dst, Stream& s) } nppSafeCall( nppiLUT_Linear_8u_C3R(src.ptr(), static_cast(src.step), - dst.ptr(), static_cast(dst.step), sz, pValues3, lvls.pLevels3, lvls.nValues3) ); + dst.ptr(), static_cast(dst.step), sz, pValues3, pLevels3, nValues3) ); } if (stream == 0) From 83def21ba93d1fa0f12a516cb0ea6a033f72e306 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Wed, 20 Mar 2013 11:49:33 +0400 Subject: [PATCH 0049/1333] increased time limits in perf tests --- modules/gpu/perf/perf_calib3d.cpp | 6 +++--- modules/gpu/perf/perf_denoising.cpp | 2 +- modules/gpu/perf/perf_features2d.cpp | 2 ++ modules/gpu/perf/perf_imgproc.cpp | 10 +++++++--- modules/gpu/perf/perf_objdetect.cpp | 2 ++ modules/gpu/perf/perf_video.cpp | 2 +- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/modules/gpu/perf/perf_calib3d.cpp b/modules/gpu/perf/perf_calib3d.cpp index 3631236feb..8019c0349a 100644 --- a/modules/gpu/perf/perf_calib3d.cpp +++ b/modules/gpu/perf/perf_calib3d.cpp @@ -13,7 +13,7 @@ DEF_PARAM_TEST_1(ImagePair, pair_string); PERF_TEST_P(ImagePair, Calib3D_StereoBM, Values(pair_string("gpu/perf/aloe.png", "gpu/perf/aloeR.png"))) { - declare.time(5.0); + declare.time(300.0); const cv::Mat imgLeft = readImage(GET_PARAM(0), cv::IMREAD_GRAYSCALE); ASSERT_FALSE(imgLeft.empty()); @@ -54,7 +54,7 @@ PERF_TEST_P(ImagePair, Calib3D_StereoBM, PERF_TEST_P(ImagePair, Calib3D_StereoBeliefPropagation, Values(pair_string("gpu/stereobp/aloe-L.png", "gpu/stereobp/aloe-R.png"))) { - declare.time(10.0); + declare.time(300.0); const cv::Mat imgLeft = readImage(GET_PARAM(0)); ASSERT_FALSE(imgLeft.empty()); @@ -88,7 +88,7 @@ PERF_TEST_P(ImagePair, Calib3D_StereoBeliefPropagation, PERF_TEST_P(ImagePair, Calib3D_StereoConstantSpaceBP, Values(pair_string("gpu/stereobm/aloe-L.png", "gpu/stereobm/aloe-R.png"))) { - declare.time(10.0); + declare.time(300.0); const cv::Mat imgLeft = readImage(GET_PARAM(0), cv::IMREAD_GRAYSCALE); ASSERT_FALSE(imgLeft.empty()); diff --git a/modules/gpu/perf/perf_denoising.cpp b/modules/gpu/perf/perf_denoising.cpp index e4ce9f3c38..9701225685 100644 --- a/modules/gpu/perf/perf_denoising.cpp +++ b/modules/gpu/perf/perf_denoising.cpp @@ -64,7 +64,7 @@ PERF_TEST_P(Sz_Depth_Cn_WinSz_BlockSz, Denoising_NonLocalMeans, Values(21), Values(5))) { - declare.time(60.0); + declare.time(600.0); const cv::Size size = GET_PARAM(0); const int depth = GET_PARAM(1); diff --git a/modules/gpu/perf/perf_features2d.cpp b/modules/gpu/perf/perf_features2d.cpp index c6b1f598a4..e5a6ef3c89 100644 --- a/modules/gpu/perf/perf_features2d.cpp +++ b/modules/gpu/perf/perf_features2d.cpp @@ -55,6 +55,8 @@ PERF_TEST_P(Image_NFeatures, Features2D_ORB, Combine(Values("gpu/perf/aloe.png"), Values(4000))) { + declare.time(300.0); + const cv::Mat img = readImage(GET_PARAM(0), cv::IMREAD_GRAYSCALE); ASSERT_FALSE(img.empty()); diff --git a/modules/gpu/perf/perf_imgproc.cpp b/modules/gpu/perf/perf_imgproc.cpp index d1a87968d0..c984b04fdb 100644 --- a/modules/gpu/perf/perf_imgproc.cpp +++ b/modules/gpu/perf/perf_imgproc.cpp @@ -632,7 +632,7 @@ DEF_PARAM_TEST_1(Image, string); PERF_TEST_P(Image, ImgProc_MeanShiftFiltering, Values("gpu/meanshift/cones.png")) { - declare.time(15.0); + declare.time(300.0); const cv::Mat img = readImage(GetParam()); ASSERT_FALSE(img.empty()); @@ -668,7 +668,7 @@ PERF_TEST_P(Image, ImgProc_MeanShiftFiltering, PERF_TEST_P(Image, ImgProc_MeanShiftProc, Values("gpu/meanshift/cones.png")) { - declare.time(5.0); + declare.time(300.0); const cv::Mat img = readImage(GetParam()); ASSERT_FALSE(img.empty()); @@ -702,7 +702,7 @@ PERF_TEST_P(Image, ImgProc_MeanShiftProc, PERF_TEST_P(Image, ImgProc_MeanShiftSegmentation, Values("gpu/meanshift/cones.png")) { - declare.time(5.0); + declare.time(300.0); const cv::Mat img = readImage(GetParam()); ASSERT_FALSE(img.empty()); @@ -830,6 +830,8 @@ PERF_TEST_P(Sz_TemplateSz_Cn_Method, ImgProc_MatchTemplate8U, GPU_CHANNELS_1_3_4, ALL_TEMPLATE_METHODS)) { + declare.time(300.0); + const cv::Size size = GET_PARAM(0); const cv::Size templ_size = GET_PARAM(1); const int cn = GET_PARAM(2); @@ -868,6 +870,8 @@ PERF_TEST_P(Sz_TemplateSz_Cn_Method, ImgProc_MatchTemplate32F, GPU_CHANNELS_1_3_4, Values(TemplateMethod(cv::TM_SQDIFF), TemplateMethod(cv::TM_CCORR)))) { + declare.time(300.0); + const cv::Size size = GET_PARAM(0); const cv::Size templ_size = GET_PARAM(1); const int cn = GET_PARAM(2); diff --git a/modules/gpu/perf/perf_objdetect.cpp b/modules/gpu/perf/perf_objdetect.cpp index 51c8695d1f..4f8e56853f 100644 --- a/modules/gpu/perf/perf_objdetect.cpp +++ b/modules/gpu/perf/perf_objdetect.cpp @@ -19,6 +19,8 @@ PERF_TEST_P(Image, ObjDetect_HOG, "gpu/caltech/image_00000527_0.png", "gpu/caltech/image_00000574_0.png")) { + declare.time(300.0); + const cv::Mat img = readImage(GetParam(), cv::IMREAD_GRAYSCALE); ASSERT_FALSE(img.empty()); diff --git a/modules/gpu/perf/perf_video.cpp b/modules/gpu/perf/perf_video.cpp index e9b38ed5e7..86e129c736 100644 --- a/modules/gpu/perf/perf_video.cpp +++ b/modules/gpu/perf/perf_video.cpp @@ -142,7 +142,7 @@ PERF_TEST_P(Image_MinDistance, Video_GoodFeaturesToTrack, PERF_TEST_P(ImagePair, Video_BroxOpticalFlow, Values(make_pair("gpu/opticalflow/frame0.png", "gpu/opticalflow/frame1.png"))) { - declare.time(10); + declare.time(300); cv::Mat frame0 = readImage(GetParam().first, cv::IMREAD_GRAYSCALE); ASSERT_FALSE(frame0.empty()); From b07bce11ef2238291b6c430f3e8def3160fec82b Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Wed, 20 Mar 2013 11:49:58 +0400 Subject: [PATCH 0050/1333] increased epsilon in sanity test --- modules/gpu/perf/perf_imgproc.cpp | 4 ++-- modules/gpu/perf/perf_video.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/gpu/perf/perf_imgproc.cpp b/modules/gpu/perf/perf_imgproc.cpp index c984b04fdb..84cb0e200f 100644 --- a/modules/gpu/perf/perf_imgproc.cpp +++ b/modules/gpu/perf/perf_imgproc.cpp @@ -1038,7 +1038,7 @@ PERF_TEST_P(Image_Type_Border_BlockSz_ApertureSz, ImgProc_CornerHarris, TEST_CYCLE() cv::gpu::cornerHarris(d_img, dst, d_Dx, d_Dy, d_buf, blockSize, apertureSize, k, borderMode); - GPU_SANITY_CHECK(dst); + GPU_SANITY_CHECK(dst, 1e-4); } else { @@ -1081,7 +1081,7 @@ PERF_TEST_P(Image_Type_Border_BlockSz_ApertureSz, ImgProc_CornerMinEigenVal, TEST_CYCLE() cv::gpu::cornerMinEigenVal(d_img, dst, d_Dx, d_Dy, d_buf, blockSize, apertureSize, borderMode); - GPU_SANITY_CHECK(dst); + GPU_SANITY_CHECK(dst, 1e-4); } else { diff --git a/modules/gpu/perf/perf_video.cpp b/modules/gpu/perf/perf_video.cpp index 86e129c736..876d81513a 100644 --- a/modules/gpu/perf/perf_video.cpp +++ b/modules/gpu/perf/perf_video.cpp @@ -372,8 +372,8 @@ PERF_TEST_P(ImagePair, Video_OpticalFlowDual_TVL1, TEST_CYCLE() d_alg(d_frame0, d_frame1, u, v); - GPU_SANITY_CHECK(u, 1e-4); - GPU_SANITY_CHECK(v, 1e-4); + GPU_SANITY_CHECK(u, 1e-2); + GPU_SANITY_CHECK(v, 1e-2); } else { From 0149969463bc989d232525d903b0f63ccf889ea2 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Wed, 20 Mar 2013 11:50:42 +0400 Subject: [PATCH 0051/1333] disable tests that requires video support if it is not available --- modules/gpu/perf/perf_video.cpp | 42 +++++++++++++++++++++++++++---- modules/gpu/test/test_bgfg.cpp | 24 ++++++++++++++++++ modules/nonfree/perf/perf_gpu.cpp | 16 ++++++++++++ 3 files changed, 77 insertions(+), 5 deletions(-) diff --git a/modules/gpu/perf/perf_video.cpp b/modules/gpu/perf/perf_video.cpp index 876d81513a..b998ff95fe 100644 --- a/modules/gpu/perf/perf_video.cpp +++ b/modules/gpu/perf/perf_video.cpp @@ -4,6 +4,18 @@ using namespace std; using namespace testing; using namespace perf; +#if defined(HAVE_XINE) || \ + defined(HAVE_GSTREAMER) || \ + defined(HAVE_QUICKTIME) || \ + defined(HAVE_AVFOUNDATION) || \ + defined(HAVE_FFMPEG) || \ + defined(WIN32) /* assume that we have ffmpeg */ + +# define BUILD_WITH_VIDEO_INPUT_SUPPORT 1 +#else +# define BUILD_WITH_VIDEO_INPUT_SUPPORT 0 +#endif + namespace cv { template<> void Ptr::delete_obj() @@ -482,6 +494,8 @@ PERF_TEST_P(ImagePair, Video_FastOpticalFlowBM, ////////////////////////////////////////////////////// // FGDStatModel +#if BUILD_WITH_VIDEO_INPUT_SUPPORT + DEF_PARAM_TEST_1(Video, string); PERF_TEST_P(Video, Video_FGDStatModel, @@ -548,9 +562,13 @@ PERF_TEST_P(Video, Video_FGDStatModel, } } +#endif + ////////////////////////////////////////////////////// // MOG +#if BUILD_WITH_VIDEO_INPUT_SUPPORT + DEF_PARAM_TEST(Video_Cn_LearningRate, string, MatCn, double); PERF_TEST_P(Video_Cn_LearningRate, Video_MOG, @@ -643,9 +661,13 @@ PERF_TEST_P(Video_Cn_LearningRate, Video_MOG, } } +#endif + ////////////////////////////////////////////////////// // MOG2 +#if BUILD_WITH_VIDEO_INPUT_SUPPORT + DEF_PARAM_TEST(Video_Cn, string, int); PERF_TEST_P(Video_Cn, Video_MOG2, @@ -740,9 +762,13 @@ PERF_TEST_P(Video_Cn, Video_MOG2, } } +#endif + ////////////////////////////////////////////////////// // MOG2GetBackgroundImage +#if BUILD_WITH_VIDEO_INPUT_SUPPORT + PERF_TEST_P(Video_Cn, Video_MOG2GetBackgroundImage, Combine(Values("gpu/video/768x576.avi", "gpu/video/1920x1080.avi"), GPU_CHANNELS_1_3_4)) @@ -818,9 +844,13 @@ PERF_TEST_P(Video_Cn, Video_MOG2GetBackgroundImage, } } +#endif + ////////////////////////////////////////////////////// // GMG +#if BUILD_WITH_VIDEO_INPUT_SUPPORT + DEF_PARAM_TEST(Video_Cn_MaxFeatures, string, MatCn, int); PERF_TEST_P(Video_Cn_MaxFeatures, Video_GMG, @@ -928,11 +958,13 @@ PERF_TEST_P(Video_Cn_MaxFeatures, Video_GMG, } } -#ifdef HAVE_NVCUVID +#endif ////////////////////////////////////////////////////// // VideoReader +#if defined(HAVE_NVCUVID) && BUILD_WITH_VIDEO_INPUT_SUPPORT + PERF_TEST_P(Video, Video_VideoReader, Values("gpu/video/768x576.avi", "gpu/video/1920x1080.avi")) { declare.time(20); @@ -963,10 +995,12 @@ PERF_TEST_P(Video, Video_VideoReader, Values("gpu/video/768x576.avi", "gpu/video } } +#endif + ////////////////////////////////////////////////////// // VideoWriter -#ifdef WIN32 +#if defined(HAVE_NVCUVID) && defined(WIN32) PERF_TEST_P(Video, Video_VideoWriter, Values("gpu/video/768x576.avi", "gpu/video/1920x1080.avi")) { @@ -1024,6 +1058,4 @@ PERF_TEST_P(Video, Video_VideoWriter, Values("gpu/video/768x576.avi", "gpu/video SANITY_CHECK(frame); } -#endif // WIN32 - -#endif // HAVE_NVCUVID +#endif diff --git a/modules/gpu/test/test_bgfg.cpp b/modules/gpu/test/test_bgfg.cpp index 253ded26c6..9847fcfab7 100644 --- a/modules/gpu/test/test_bgfg.cpp +++ b/modules/gpu/test/test_bgfg.cpp @@ -45,9 +45,23 @@ using namespace cvtest; +#if defined(HAVE_XINE) || \ + defined(HAVE_GSTREAMER) || \ + defined(HAVE_QUICKTIME) || \ + defined(HAVE_AVFOUNDATION) || \ + defined(HAVE_FFMPEG) || \ + defined(WIN32) /* assume that we have ffmpeg */ + +# define BUILD_WITH_VIDEO_INPUT_SUPPORT 1 +#else +# define BUILD_WITH_VIDEO_INPUT_SUPPORT 0 +#endif + ////////////////////////////////////////////////////// // FGDStatModel +#if BUILD_WITH_VIDEO_INPUT_SUPPORT + namespace cv { template<> void Ptr::delete_obj() @@ -132,9 +146,13 @@ INSTANTIATE_TEST_CASE_P(GPU_Video, FGDStatModel, testing::Combine( testing::Values(std::string("768x576.avi")), testing::Values(Channels(3), Channels(4)))); +#endif + ////////////////////////////////////////////////////// // MOG +#if BUILD_WITH_VIDEO_INPUT_SUPPORT + namespace { IMPLEMENT_PARAM_CLASS(UseGray, bool) @@ -206,9 +224,13 @@ INSTANTIATE_TEST_CASE_P(GPU_Video, MOG, testing::Combine( testing::Values(LearningRate(0.0), LearningRate(0.01)), WHOLE_SUBMAT)); +#endif + ////////////////////////////////////////////////////// // MOG2 +#if BUILD_WITH_VIDEO_INPUT_SUPPORT + namespace { IMPLEMENT_PARAM_CLASS(DetectShadow, bool) @@ -322,6 +344,8 @@ INSTANTIATE_TEST_CASE_P(GPU_Video, MOG2, testing::Combine( testing::Values(DetectShadow(true), DetectShadow(false)), WHOLE_SUBMAT)); +#endif + ////////////////////////////////////////////////////// // GMG diff --git a/modules/nonfree/perf/perf_gpu.cpp b/modules/nonfree/perf/perf_gpu.cpp index a68fb6a0ea..c00955c894 100644 --- a/modules/nonfree/perf/perf_gpu.cpp +++ b/modules/nonfree/perf/perf_gpu.cpp @@ -4,6 +4,18 @@ using namespace std; using namespace testing; using namespace perf; +#if defined(HAVE_XINE) || \ + defined(HAVE_GSTREAMER) || \ + defined(HAVE_QUICKTIME) || \ + defined(HAVE_AVFOUNDATION) || \ + defined(HAVE_FFMPEG) || \ + defined(WIN32) /* assume that we have ffmpeg */ + +# define BUILD_WITH_VIDEO_INPUT_SUPPORT 1 +#else +# define BUILD_WITH_VIDEO_INPUT_SUPPORT 0 +#endif + #if defined(HAVE_OPENCV_GPU) && defined(HAVE_CUDA) ////////////////////////////////////////////////////////////////////// @@ -55,6 +67,8 @@ PERF_TEST_P(Image, GPU_SURF, ////////////////////////////////////////////////////// // VIBE +#if BUILD_WITH_VIDEO_INPUT_SUPPORT + DEF_PARAM_TEST(Video_Cn, string, int); PERF_TEST_P(Video_Cn, GPU_VIBE, @@ -120,3 +134,5 @@ PERF_TEST_P(Video_Cn, GPU_VIBE, } #endif + +#endif From d87b709c2614c87f74ce72de8c23c0e623f91f11 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Thu, 21 Mar 2013 12:18:56 +0400 Subject: [PATCH 0052/1333] fixed minMax perf test --- modules/gpu/perf/perf_core.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/modules/gpu/perf/perf_core.cpp b/modules/gpu/perf/perf_core.cpp index 22840f9f46..70bb8f24f1 100644 --- a/modules/gpu/perf/perf_core.cpp +++ b/modules/gpu/perf/perf_core.cpp @@ -1748,7 +1748,10 @@ PERF_TEST_P(Sz_Depth_Norm, Core_Norm, const int normType = GET_PARAM(2); cv::Mat src(size, depth); - declare.in(src, WARMUP_RNG); + if (depth == CV_8U) + cv::randu(src, 0, 254); + else + declare.in(src, WARMUP_RNG); if (PERF_RUN_GPU()) { @@ -1923,7 +1926,10 @@ PERF_TEST_P(Sz_Depth, Core_MinMax, const int depth = GET_PARAM(1); cv::Mat src(size, depth); - declare.in(src, WARMUP_RNG); + if (depth == CV_8U) + cv::randu(src, 0, 254); + else + declare.in(src, WARMUP_RNG); if (PERF_RUN_GPU()) { @@ -1958,7 +1964,10 @@ PERF_TEST_P(Sz_Depth, Core_MinMaxLoc, const int depth = GET_PARAM(1); cv::Mat src(size, depth); - declare.in(src, WARMUP_RNG); + if (depth == CV_8U) + cv::randu(src, 0, 254); + else + declare.in(src, WARMUP_RNG); if (PERF_RUN_GPU()) { From 33ff3d6016292a04a9e8d43dc387fa5800a8394b Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Wed, 20 Mar 2013 16:27:58 +0400 Subject: [PATCH 0053/1333] added simd_functions.hpp to device layer --- .../opencv2/gpu/device/simd_functions.hpp | 910 ++++++++++++++++++ modules/gpu/src/cuda/element_operations.cu | 702 +++----------- modules/gpu/src/element_operations.cpp | 355 ++----- 3 files changed, 1144 insertions(+), 823 deletions(-) create mode 100644 modules/gpu/include/opencv2/gpu/device/simd_functions.hpp diff --git a/modules/gpu/include/opencv2/gpu/device/simd_functions.hpp b/modules/gpu/include/opencv2/gpu/device/simd_functions.hpp new file mode 100644 index 0000000000..55b1f247ff --- /dev/null +++ b/modules/gpu/include/opencv2/gpu/device/simd_functions.hpp @@ -0,0 +1,910 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2010-2013, NVIDIA Corporation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +/* + * Copyright (c) 2013 NVIDIA Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of NVIDIA Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __OPENCV_GPU_SIMD_FUNCTIONS_HPP__ +#define __OPENCV_GPU_SIMD_FUNCTIONS_HPP__ + +#include "common.hpp" + +/* + This header file contains inline functions that implement intra-word SIMD + operations, that are hardware accelerated on sm_3x (Kepler) GPUs. Efficient + emulation code paths are provided for earlier architectures (sm_1x, sm_2x) + to make the code portable across all GPUs supported by CUDA. The following + functions are currently implemented: + + vadd2(a,b) per-halfword unsigned addition, with wrap-around: a + b + vsub2(a,b) per-halfword unsigned subtraction, with wrap-around: a - b + vabsdiff2(a,b) per-halfword unsigned absolute difference: |a - b| + vavg2(a,b) per-halfword unsigned average: (a + b) / 2 + vavrg2(a,b) per-halfword unsigned rounded average: (a + b + 1) / 2 + vseteq2(a,b) per-halfword unsigned comparison: a == b ? 1 : 0 + vcmpeq2(a,b) per-halfword unsigned comparison: a == b ? 0xffff : 0 + vsetge2(a,b) per-halfword unsigned comparison: a >= b ? 1 : 0 + vcmpge2(a,b) per-halfword unsigned comparison: a >= b ? 0xffff : 0 + vsetgt2(a,b) per-halfword unsigned comparison: a > b ? 1 : 0 + vcmpgt2(a,b) per-halfword unsigned comparison: a > b ? 0xffff : 0 + vsetle2(a,b) per-halfword unsigned comparison: a <= b ? 1 : 0 + vcmple2(a,b) per-halfword unsigned comparison: a <= b ? 0xffff : 0 + vsetlt2(a,b) per-halfword unsigned comparison: a < b ? 1 : 0 + vcmplt2(a,b) per-halfword unsigned comparison: a < b ? 0xffff : 0 + vsetne2(a,b) per-halfword unsigned comparison: a != b ? 1 : 0 + vcmpne2(a,b) per-halfword unsigned comparison: a != b ? 0xffff : 0 + vmax2(a,b) per-halfword unsigned maximum: max(a, b) + vmin2(a,b) per-halfword unsigned minimum: min(a, b) + + vadd4(a,b) per-byte unsigned addition, with wrap-around: a + b + vsub4(a,b) per-byte unsigned subtraction, with wrap-around: a - b + vabsdiff4(a,b) per-byte unsigned absolute difference: |a - b| + vavg4(a,b) per-byte unsigned average: (a + b) / 2 + vavrg4(a,b) per-byte unsigned rounded average: (a + b + 1) / 2 + vseteq4(a,b) per-byte unsigned comparison: a == b ? 1 : 0 + vcmpeq4(a,b) per-byte unsigned comparison: a == b ? 0xff : 0 + vsetge4(a,b) per-byte unsigned comparison: a >= b ? 1 : 0 + vcmpge4(a,b) per-byte unsigned comparison: a >= b ? 0xff : 0 + vsetgt4(a,b) per-byte unsigned comparison: a > b ? 1 : 0 + vcmpgt4(a,b) per-byte unsigned comparison: a > b ? 0xff : 0 + vsetle4(a,b) per-byte unsigned comparison: a <= b ? 1 : 0 + vcmple4(a,b) per-byte unsigned comparison: a <= b ? 0xff : 0 + vsetlt4(a,b) per-byte unsigned comparison: a < b ? 1 : 0 + vcmplt4(a,b) per-byte unsigned comparison: a < b ? 0xff : 0 + vsetne4(a,b) per-byte unsigned comparison: a != b ? 1: 0 + vcmpne4(a,b) per-byte unsigned comparison: a != b ? 0xff: 0 + vmax4(a,b) per-byte unsigned maximum: max(a, b) + vmin4(a,b) per-byte unsigned minimum: min(a, b) +*/ + +namespace cv { namespace gpu { namespace device +{ + // 2 + + static __device__ __forceinline__ unsigned int vadd2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vadd2.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vadd.u32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vadd.u32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = a ^ b; // sum bits + r = a + b; // actual sum + s = s ^ r; // determine carry-ins for each bit position + s = s & 0x00010000; // carry-in to high word (= carry-out from low word) + r = r - s; // subtract out carry-out from low word + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsub2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vsub2.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vsub.u32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vsub.u32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = a ^ b; // sum bits + r = a - b; // actual sum + s = s ^ r; // determine carry-ins for each bit position + s = s & 0x00010000; // borrow to high word + r = r + s; // compensate for borrow from low word + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vabsdiff2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vabsdiff2.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vabsdiff.u32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vabsdiff.u32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t, u, v; + s = a & 0x0000ffff; // extract low halfword + r = b & 0x0000ffff; // extract low halfword + u = ::max(r, s); // maximum of low halfwords + v = ::min(r, s); // minimum of low halfwords + s = a & 0xffff0000; // extract high halfword + r = b & 0xffff0000; // extract high halfword + t = ::max(r, s); // maximum of high halfwords + s = ::min(r, s); // minimum of high halfwords + r = u | t; // maximum of both halfwords + s = v | s; // minimum of both halfwords + r = r - s; // |a - b| = max(a,b) - min(a,b); + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vavg2(unsigned int a, unsigned int b) + { + unsigned int r, s; + + // HAKMEM #23: a + b = 2 * (a & b) + (a ^ b) ==> + // (a + b) / 2 = (a & b) + ((a ^ b) >> 1) + s = a ^ b; + r = a & b; + s = s & 0xfffefffe; // ensure shift doesn't cross halfword boundaries + s = s >> 1; + s = r + s; + + return s; + } + + static __device__ __forceinline__ unsigned int vavrg2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vavrg2.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // HAKMEM #23: a + b = 2 * (a | b) - (a ^ b) ==> + // (a + b + 1) / 2 = (a | b) - ((a ^ b) >> 1) + unsigned int s; + s = a ^ b; + r = a | b; + s = s & 0xfffefffe; // ensure shift doesn't cross half-word boundaries + s = s >> 1; + r = r - s; + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vseteq2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.eq %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + unsigned int c; + r = a ^ b; // 0x0000 if a == b + c = r | 0x80008000; // set msbs, to catch carry out + r = r ^ c; // extract msbs, msb = 1 if r < 0x8000 + c = c - 0x00010001; // msb = 0, if r was 0x0000 or 0x8000 + c = r & ~c; // msb = 1, if r was 0x0000 + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpeq2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vseteq2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + r = a ^ b; // 0x0000 if a == b + c = r | 0x80008000; // set msbs, to catch carry out + r = r ^ c; // extract msbs, msb = 1 if r < 0x8000 + c = c - 0x00010001; // msb = 0, if r was 0x0000 or 0x8000 + c = r & ~c; // msb = 1, if r was 0x0000 + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetge2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.ge %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavrg2(a, b); // (a + ~b + 1) / 2 = (a - b) / 2 + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpge2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetge2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavrg2(a, b); // (a + ~b + 1) / 2 = (a - b) / 2 + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetgt2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.gt %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavg2(a, b); // (a + ~b) / 2 = (a - b) / 2 [rounded down] + c = c & 0x80008000; // msbs = carry-outs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpgt2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetgt2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavg2(a, b); // (a + ~b) / 2 = (a - b) / 2 [rounded down] + c = c & 0x80008000; // msbs = carry-outs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetle2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.le %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavrg2(a, b); // (b + ~a + 1) / 2 = (b - a) / 2 + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmple2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetle2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavrg2(a, b); // (b + ~a + 1) / 2 = (b - a) / 2 + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetlt2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.lt %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavg2(a, b); // (b + ~a) / 2 = (b - a) / 2 [rounded down] + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmplt2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetlt2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavg2(a, b); // (b + ~a) / 2 = (b - a) / 2 [rounded down] + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetne2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm ("vset2.u32.u32.ne %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + unsigned int c; + r = a ^ b; // 0x0000 if a == b + c = r | 0x80008000; // set msbs, to catch carry out + c = c - 0x00010001; // msb = 0, if r was 0x0000 or 0x8000 + c = r | c; // msb = 1, if r was not 0x0000 + c = c & 0x80008000; // extract msbs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpne2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetne2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + r = a ^ b; // 0x0000 if a == b + c = r | 0x80008000; // set msbs, to catch carry out + c = c - 0x00010001; // msb = 0, if r was 0x0000 or 0x8000 + c = r | c; // msb = 1, if r was not 0x0000 + c = c & 0x80008000; // extract msbs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vmax2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vmax2.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vmax.u32.u32.u32 %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmax.u32.u32.u32 %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t, u; + r = a & 0x0000ffff; // extract low halfword + s = b & 0x0000ffff; // extract low halfword + t = ::max(r, s); // maximum of low halfwords + r = a & 0xffff0000; // extract high halfword + s = b & 0xffff0000; // extract high halfword + u = ::max(r, s); // maximum of high halfwords + r = t | u; // combine halfword maximums + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vmin2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vmin2.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vmin.u32.u32.u32 %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmin.u32.u32.u32 %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t, u; + r = a & 0x0000ffff; // extract low halfword + s = b & 0x0000ffff; // extract low halfword + t = ::min(r, s); // minimum of low halfwords + r = a & 0xffff0000; // extract high halfword + s = b & 0xffff0000; // extract high halfword + u = ::min(r, s); // minimum of high halfwords + r = t | u; // combine halfword minimums + #endif + + return r; + } + + // 4 + + static __device__ __forceinline__ unsigned int vadd4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vadd4.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vadd.u32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vadd.u32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vadd.u32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vadd.u32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t; + s = a ^ b; // sum bits + r = a & 0x7f7f7f7f; // clear msbs + t = b & 0x7f7f7f7f; // clear msbs + s = s & 0x80808080; // msb sum bits + r = r + t; // add without msbs, record carry-out in msbs + r = r ^ s; // sum of msb sum and carry-in bits, w/o carry-out + #endif /* __CUDA_ARCH__ >= 300 */ + + return r; + } + + static __device__ __forceinline__ unsigned int vsub4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vsub4.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vsub.u32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vsub.u32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vsub.u32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vsub.u32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t; + s = a ^ ~b; // inverted sum bits + r = a | 0x80808080; // set msbs + t = b & 0x7f7f7f7f; // clear msbs + s = s & 0x80808080; // inverted msb sum bits + r = r - t; // subtract w/o msbs, record inverted borrows in msb + r = r ^ s; // combine inverted msb sum bits and borrows + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vavg4(unsigned int a, unsigned int b) + { + unsigned int r, s; + + // HAKMEM #23: a + b = 2 * (a & b) + (a ^ b) ==> + // (a + b) / 2 = (a & b) + ((a ^ b) >> 1) + s = a ^ b; + r = a & b; + s = s & 0xfefefefe; // ensure following shift doesn't cross byte boundaries + s = s >> 1; + s = r + s; + + return s; + } + + static __device__ __forceinline__ unsigned int vavrg4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vavrg4.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // HAKMEM #23: a + b = 2 * (a | b) - (a ^ b) ==> + // (a + b + 1) / 2 = (a | b) - ((a ^ b) >> 1) + unsigned int c; + c = a ^ b; + r = a | b; + c = c & 0xfefefefe; // ensure following shift doesn't cross byte boundaries + c = c >> 1; + r = r - c; + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vseteq4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.eq %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + unsigned int c; + r = a ^ b; // 0x00 if a == b + c = r | 0x80808080; // set msbs, to catch carry out + r = r ^ c; // extract msbs, msb = 1 if r < 0x80 + c = c - 0x01010101; // msb = 0, if r was 0x00 or 0x80 + c = r & ~c; // msb = 1, if r was 0x00 + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpeq4(unsigned int a, unsigned int b) + { + unsigned int r, t; + + #if __CUDA_ARCH__ >= 300 + r = vseteq4(a, b); + t = r << 8; // convert bool + r = t - r; // to mask + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + t = a ^ b; // 0x00 if a == b + r = t | 0x80808080; // set msbs, to catch carry out + t = t ^ r; // extract msbs, msb = 1 if t < 0x80 + r = r - 0x01010101; // msb = 0, if t was 0x00 or 0x80 + r = t & ~r; // msb = 1, if t was 0x00 + t = r >> 7; // build mask + t = r - t; // from + r = t | r; // msbs + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetle4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.le %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavrg4(a, b); // (b + ~a + 1) / 2 = (b - a) / 2 + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmple4(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetle4(a, b); + c = r << 8; // convert bool + r = c - r; // to mask + #else + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavrg4(a, b); // (b + ~a + 1) / 2 = (b - a) / 2 + c = c & 0x80808080; // msbs = carry-outs + r = c >> 7; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetlt4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.lt %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavg4(a, b); // (b + ~a) / 2 = (b - a) / 2 [rounded down] + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmplt4(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetlt4(a, b); + c = r << 8; // convert bool + r = c - r; // to mask + #else + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavg4(a, b); // (b + ~a) / 2 = (b - a) / 2 [rounded down] + c = c & 0x80808080; // msbs = carry-outs + r = c >> 7; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetge4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.ge %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavrg4(a, b); // (a + ~b + 1) / 2 = (a - b) / 2 + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpge4(unsigned int a, unsigned int b) + { + unsigned int r, s; + + #if __CUDA_ARCH__ >= 300 + r = vsetge4(a, b); + s = r << 8; // convert bool + r = s - r; // to mask + #else + asm ("not.b32 %0,%0;" : "+r"(b)); + r = vavrg4 (a, b); // (a + ~b + 1) / 2 = (a - b) / 2 + r = r & 0x80808080; // msb = carry-outs + s = r >> 7; // build mask + s = r - s; // from + r = s | r; // msbs + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetgt4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.gt %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavg4(a, b); // (a + ~b) / 2 = (a - b) / 2 [rounded down] + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpgt4(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetgt4(a, b); + c = r << 8; // convert bool + r = c - r; // to mask + #else + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavg4(a, b); // (a + ~b) / 2 = (a - b) / 2 [rounded down] + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetne4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.ne %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + unsigned int c; + r = a ^ b; // 0x00 if a == b + c = r | 0x80808080; // set msbs, to catch carry out + c = c - 0x01010101; // msb = 0, if r was 0x00 or 0x80 + c = r | c; // msb = 1, if r was not 0x00 + c = c & 0x80808080; // extract msbs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpne4(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetne4(a, b); + c = r << 8; // convert bool + r = c - r; // to mask + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + r = a ^ b; // 0x00 if a == b + c = r | 0x80808080; // set msbs, to catch carry out + c = c - 0x01010101; // msb = 0, if r was 0x00 or 0x80 + c = r | c; // msb = 1, if r was not 0x00 + c = c & 0x80808080; // extract msbs + r = c >> 7; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vabsdiff4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vabsdiff4.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vabsdiff.u32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vabsdiff.u32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vabsdiff.u32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vabsdiff.u32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = vcmpge4(a, b); // mask = 0xff if a >= b + r = a ^ b; // + s = (r & s) ^ b; // select a when a >= b, else select b => max(a,b) + r = s ^ r; // select a when b >= a, else select b => min(a,b) + r = s - r; // |a - b| = max(a,b) - min(a,b); + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vmax4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vmax4.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vmax.u32.u32.u32 %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmax.u32.u32.u32 %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmax.u32.u32.u32 %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmax.u32.u32.u32 %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = vcmpge4(a, b); // mask = 0xff if a >= b + r = a & s; // select a when b >= a + s = b & ~s; // select b when b < a + r = r | s; // combine byte selections + #endif + + return r; // byte-wise unsigned maximum + } + + static __device__ __forceinline__ unsigned int vmin4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vmin4.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vmin.u32.u32.u32 %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmin.u32.u32.u32 %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmin.u32.u32.u32 %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmin.u32.u32.u32 %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = vcmpge4(b, a); // mask = 0xff if a >= b + r = a & s; // select a when b >= a + s = b & ~s; // select b when b < a + r = r | s; // combine byte selections + #endif + + return r; + } +}}} + +#endif // __OPENCV_GPU_SIMD_FUNCTIONS_HPP__ diff --git a/modules/gpu/src/cuda/element_operations.cu b/modules/gpu/src/cuda/element_operations.cu index 5165b352ae..e9397e534f 100644 --- a/modules/gpu/src/cuda/element_operations.cu +++ b/modules/gpu/src/cuda/element_operations.cu @@ -48,6 +48,7 @@ #include "opencv2/gpu/device/transform.hpp" #include "opencv2/gpu/device/limits.hpp" #include "opencv2/gpu/device/saturate_cast.hpp" +#include "opencv2/gpu/device/simd_functions.hpp" using namespace cv::gpu; using namespace cv::gpu::device; @@ -154,170 +155,28 @@ namespace arithm namespace arithm { - template struct VAdd4; - template <> struct VAdd4 : binary_function + struct VAdd4 : binary_function { __device__ __forceinline__ uint operator ()(uint a, uint b) const { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vadd4.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vadd.u32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.u32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.u32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.u32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; + return vadd4(a, b); } __device__ __forceinline__ VAdd4() {} - __device__ __forceinline__ VAdd4(const VAdd4& other) {} - }; - template <> struct VAdd4 : binary_function - { - __device__ __forceinline__ uint operator ()(int a, int b) const - { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vadd4.u32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vadd.u32.s32.s32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.u32.s32.s32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.u32.s32.s32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.u32.s32.s32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VAdd4() {} - __device__ __forceinline__ VAdd4(const VAdd4& other) {} - }; - template <> struct VAdd4 : binary_function - { - __device__ __forceinline__ int operator ()(uint a, uint b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vadd4.s32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vadd.s32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.s32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.s32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.s32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VAdd4() {} - __device__ __forceinline__ VAdd4(const VAdd4& other) {} - }; - template <> struct VAdd4 : binary_function - { - __device__ __forceinline__ int operator ()(int a, int b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vadd4.s32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vadd.s32.s32.s32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.s32.s32.s32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.s32.s32.s32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.s32.s32.s32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VAdd4() {} - __device__ __forceinline__ VAdd4(const VAdd4& other) {} + __device__ __forceinline__ VAdd4(const VAdd4& other) {} }; //////////////////////////////////// - template struct VAdd2; - template <> struct VAdd2 : binary_function + struct VAdd2 : binary_function { __device__ __forceinline__ uint operator ()(uint a, uint b) const { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vadd2.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vadd.u32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.u32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; + return vadd2(a, b); } __device__ __forceinline__ VAdd2() {} - __device__ __forceinline__ VAdd2(const VAdd2& other) {} - }; - template <> struct VAdd2 : binary_function - { - __device__ __forceinline__ int operator ()(uint a, uint b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vadd2.s32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vadd.s32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.s32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VAdd2() {} - __device__ __forceinline__ VAdd2(const VAdd2& other) {} - }; - template <> struct VAdd2 : binary_function - { - __device__ __forceinline__ uint operator ()(int a, int b) const - { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vadd2.u32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vadd.u32.s32.s32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.u32.s32.s32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VAdd2() {} - __device__ __forceinline__ VAdd2(const VAdd2& other) {} - }; - template <> struct VAdd2 : binary_function - { - __device__ __forceinline__ int operator ()(int a, int b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vadd2.s32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vadd.s32.s32.s32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vadd.s32.s32.s32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VAdd2() {} - __device__ __forceinline__ VAdd2(const VAdd2& other) {} + __device__ __forceinline__ VAdd2(const VAdd2& other) {} }; //////////////////////////////////// @@ -336,13 +195,13 @@ namespace arithm namespace cv { namespace gpu { namespace device { - template struct TransformFunctorTraits< arithm::VAdd4 > : arithm::ArithmFuncTraits + template <> struct TransformFunctorTraits< arithm::VAdd4 > : arithm::ArithmFuncTraits { }; //////////////////////////////////// - template struct TransformFunctorTraits< arithm::VAdd2 > : arithm::ArithmFuncTraits + template <> struct TransformFunctorTraits< arithm::VAdd2 > : arithm::ArithmFuncTraits { }; @@ -355,28 +214,16 @@ namespace cv { namespace gpu { namespace device namespace arithm { - template - void vadd4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream) + void addMat_v4(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) { - transform((PtrStepSz) src1, (PtrStepSz) src2, (PtrStepSz) dst, VAdd4(), WithOutMask(), stream); + transform(src1, src2, dst, VAdd4(), WithOutMask(), stream); } - template void vadd4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vadd4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vadd4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vadd4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - - template - void vadd2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream) + void addMat_v2(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) { - transform((PtrStepSz) src1, (PtrStepSz) src2, (PtrStepSz) dst, VAdd2(), WithOutMask(), stream); + transform(src1, src2, dst, VAdd2(), WithOutMask(), stream); } - template void vadd2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vadd2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vadd2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vadd2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void addMat(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, PtrStepb mask, cudaStream_t stream) { @@ -543,170 +390,28 @@ namespace arithm namespace arithm { - template struct VSub4; - template <> struct VSub4 : binary_function + struct VSub4 : binary_function { __device__ __forceinline__ uint operator ()(uint a, uint b) const { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vsub4.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vsub.u32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.u32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.u32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.u32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; + return vsub4(a, b); } __device__ __forceinline__ VSub4() {} - __device__ __forceinline__ VSub4(const VSub4& other) {} - }; - template <> struct VSub4 : binary_function - { - __device__ __forceinline__ uint operator ()(int a, int b) const - { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vsub4.u32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vsub.u32.s32.s32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.u32.s32.s32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.u32.s32.s32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.u32.s32.s32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VSub4() {} - __device__ __forceinline__ VSub4(const VSub4& other) {} - }; - template <> struct VSub4 : binary_function - { - __device__ __forceinline__ int operator ()(uint a, uint b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vsub4.s32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vsub.s32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.s32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.s32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.s32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VSub4() {} - __device__ __forceinline__ VSub4(const VSub4& other) {} - }; - template <> struct VSub4 : binary_function - { - __device__ __forceinline__ int operator ()(int a, int b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vsub4.s32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vsub.s32.s32.s32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.s32.s32.s32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.s32.s32.s32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.s32.s32.s32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VSub4() {} - __device__ __forceinline__ VSub4(const VSub4& other) {} + __device__ __forceinline__ VSub4(const VSub4& other) {} }; //////////////////////////////////// - template struct VSub2; - template <> struct VSub2 : binary_function + struct VSub2 : binary_function { __device__ __forceinline__ uint operator ()(uint a, uint b) const { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vsub2.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vsub.u32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.u32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; + return vsub2(a, b); } __device__ __forceinline__ VSub2() {} - __device__ __forceinline__ VSub2(const VSub2& other) {} - }; - template <> struct VSub2 : binary_function - { - __device__ __forceinline__ int operator ()(uint a, uint b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vsub2.s32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vsub.s32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.s32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VSub2() {} - __device__ __forceinline__ VSub2(const VSub2& other) {} - }; - template <> struct VSub2 : binary_function - { - __device__ __forceinline__ uint operator ()(int a, int b) const - { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vsub2.u32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vsub.u32.s32.s32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.u32.s32.s32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VSub2() {} - __device__ __forceinline__ VSub2(const VSub2& other) {} - }; - template <> struct VSub2 : binary_function - { - __device__ __forceinline__ int operator ()(int a, int b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vsub2.s32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vsub.s32.s32.s32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vsub.s32.s32.s32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VSub2() {} - __device__ __forceinline__ VSub2(const VSub2& other) {} + __device__ __forceinline__ VSub2(const VSub2& other) {} }; //////////////////////////////////// @@ -725,13 +430,13 @@ namespace arithm namespace cv { namespace gpu { namespace device { - template struct TransformFunctorTraits< arithm::VSub4 > : arithm::ArithmFuncTraits + template <> struct TransformFunctorTraits< arithm::VSub4 > : arithm::ArithmFuncTraits { }; //////////////////////////////////// - template struct TransformFunctorTraits< arithm::VSub2 > : arithm::ArithmFuncTraits + template <> struct TransformFunctorTraits< arithm::VSub2 > : arithm::ArithmFuncTraits { }; @@ -744,28 +449,16 @@ namespace cv { namespace gpu { namespace device namespace arithm { - template - void vsub4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream) + void subMat_v4(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) { - transform((PtrStepSz) src1, (PtrStepSz) src2, (PtrStepSz) dst, VSub4(), WithOutMask(), stream); + transform(src1, src2, dst, VSub4(), WithOutMask(), stream); } - template void vsub4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vsub4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vsub4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vsub4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - - template - void vsub2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream) + void subMat_v2(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) { - transform((PtrStepSz) src1, (PtrStepSz) src2, (PtrStepSz) dst, VSub2(), WithOutMask(), stream); + transform(src1, src2, dst, VSub2(), WithOutMask(), stream); } - template void vsub2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vsub2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vsub2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vsub2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void subMat(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, PtrStepb mask, cudaStream_t stream) { @@ -1496,90 +1189,28 @@ namespace arithm namespace arithm { - template struct VAbsDiff4; - template <> struct VAbsDiff4 : binary_function + struct VAbsDiff4 : binary_function { __device__ __forceinline__ uint operator ()(uint a, uint b) const { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vabsdiff4.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vabsdiff.u32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vabsdiff.u32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vabsdiff.u32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vabsdiff.u32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; + return vabsdiff4(a, b); } __device__ __forceinline__ VAbsDiff4() {} - __device__ __forceinline__ VAbsDiff4(const VAbsDiff4& other) {} - }; - template <> struct VAbsDiff4 : binary_function - { - __device__ __forceinline__ int operator ()(int a, int b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vabsdiff4.s32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vabsdiff.s32.s32.s32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vabsdiff.s32.s32.s32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vabsdiff.s32.s32.s32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vabsdiff.s32.s32.s32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VAbsDiff4() {} - __device__ __forceinline__ VAbsDiff4(const VAbsDiff4& other) {} + __device__ __forceinline__ VAbsDiff4(const VAbsDiff4& other) {} }; //////////////////////////////////// - template struct VAbsDiff2; - template <> struct VAbsDiff2 : binary_function + struct VAbsDiff2 : binary_function { __device__ __forceinline__ uint operator ()(uint a, uint b) const { - uint res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vabsdiff2.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vabsdiff.u32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vabsdiff.u32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; + return vabsdiff2(a, b); } __device__ __forceinline__ VAbsDiff2() {} - __device__ __forceinline__ VAbsDiff2(const VAbsDiff2& other) {} - }; - template <> struct VAbsDiff2 : binary_function - { - __device__ __forceinline__ int operator ()(int a, int b) const - { - int res = 0; - - #if __CUDA_ARCH__ >= 300 - asm("vabsdiff2.s32.s32.s32.sat %0, %1, %2, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #elif __CUDA_ARCH__ >= 200 - asm("vabsdiff.s32.s32.s32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - asm("vabsdiff.s32.s32.s32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(res) : "r"(a), "r"(b), "r"(res)); - #endif - - return res; - } - - __device__ __forceinline__ VAbsDiff2() {} - __device__ __forceinline__ VAbsDiff2(const VAbsDiff2& other) {} + __device__ __forceinline__ VAbsDiff2(const VAbsDiff2& other) {} }; //////////////////////////////////// @@ -1611,13 +1242,13 @@ namespace arithm namespace cv { namespace gpu { namespace device { - template struct TransformFunctorTraits< arithm::VAbsDiff4 > : arithm::ArithmFuncTraits + template <> struct TransformFunctorTraits< arithm::VAbsDiff4 > : arithm::ArithmFuncTraits { }; //////////////////////////////////// - template struct TransformFunctorTraits< arithm::VAbsDiff2 > : arithm::ArithmFuncTraits + template <> struct TransformFunctorTraits< arithm::VAbsDiff2 > : arithm::ArithmFuncTraits { }; @@ -1630,24 +1261,16 @@ namespace cv { namespace gpu { namespace device namespace arithm { - template - void vabsDiff4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream) + void absDiffMat_v4(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) { - transform((PtrStepSz) src1, (PtrStepSz) src2, (PtrStepSz) dst, VAbsDiff4(), WithOutMask(), stream); + transform(src1, src2, dst, VAbsDiff4(), WithOutMask(), stream); } - template void vabsDiff4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vabsDiff4(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - - template - void vabsDiff2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream) + void absDiffMat_v2(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) { - transform((PtrStepSz) src1, (PtrStepSz) src2, (PtrStepSz) dst, VAbsDiff2(), WithOutMask(), stream); + transform(src1, src2, dst, VAbsDiff2(), WithOutMask(), stream); } - template void vabsDiff2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void vabsDiff2(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream); - template void absDiffMat(PtrStepSzb src1, PtrStepSzb src2, PtrStepSzb dst, cudaStream_t stream) { @@ -1877,6 +1500,49 @@ namespace arithm namespace arithm { + struct VCmpEq4 : binary_function + { + __device__ __forceinline__ uint operator ()(uint a, uint b) const + { + return vcmpeq4(a, b); + } + + __device__ __forceinline__ VCmpEq4() {} + __device__ __forceinline__ VCmpEq4(const VCmpEq4& other) {} + }; + struct VCmpNe4 : binary_function + { + __device__ __forceinline__ uint operator ()(uint a, uint b) const + { + return vcmpne4(a, b); + } + + __device__ __forceinline__ VCmpNe4() {} + __device__ __forceinline__ VCmpNe4(const VCmpNe4& other) {} + }; + struct VCmpLt4 : binary_function + { + __device__ __forceinline__ uint operator ()(uint a, uint b) const + { + return vcmplt4(a, b); + } + + __device__ __forceinline__ VCmpLt4() {} + __device__ __forceinline__ VCmpLt4(const VCmpLt4& other) {} + }; + struct VCmpLe4 : binary_function + { + __device__ __forceinline__ uint operator ()(uint a, uint b) const + { + return vcmple4(a, b); + } + + __device__ __forceinline__ VCmpLe4() {} + __device__ __forceinline__ VCmpLe4(const VCmpLe4& other) {} + }; + + //////////////////////////////////// + template struct Cmp : binary_function { @@ -1890,6 +1556,21 @@ namespace arithm namespace cv { namespace gpu { namespace device { + template <> struct TransformFunctorTraits< arithm::VCmpEq4 > : arithm::ArithmFuncTraits + { + }; + template <> struct TransformFunctorTraits< arithm::VCmpNe4 > : arithm::ArithmFuncTraits + { + }; + template <> struct TransformFunctorTraits< arithm::VCmpLt4 > : arithm::ArithmFuncTraits + { + }; + template <> struct TransformFunctorTraits< arithm::VCmpLe4 > : arithm::ArithmFuncTraits + { + }; + + //////////////////////////////////// + template struct TransformFunctorTraits< arithm::Cmp > : arithm::ArithmFuncTraits { }; @@ -1897,6 +1578,23 @@ namespace cv { namespace gpu { namespace device namespace arithm { + void cmpMatEq_v4(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) + { + transform(src1, src2, dst, VCmpEq4(), WithOutMask(), stream); + } + void cmpMatNe_v4(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) + { + transform(src1, src2, dst, VCmpNe4(), WithOutMask(), stream); + } + void cmpMatLt_v4(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) + { + transform(src1, src2, dst, VCmpLt4(), WithOutMask(), stream); + } + void cmpMatLe_v4(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, cudaStream_t stream) + { + transform(src1, src2, dst, VCmpLe4(), WithOutMask(), stream); + } + template