From bdc9b37c21ef8e2203f3b698e51b72263536cc1a Mon Sep 17 00:00:00 2001 From: Ibou42 Date: Mon, 8 May 2023 12:50:18 +0200 Subject: [PATCH] fonction_detectionV1 --- TutoOpenCv/.DS_Store | Bin 8196 -> 8196 bytes TutoOpenCv/bin/AnalyseVideo.class | Bin 4977 -> 4462 bytes TutoOpenCv/bin/Fonctions.class | Bin 3861 -> 5587 bytes .../bin/MaBibliothequeTraitementImage.class | Bin 10119 -> 10103 bytes ...liothequeTraitementImageEtendue_DEUX.class | Bin 8634 -> 0 bytes TutoOpenCv/bin/Principale.class | Bin 3878 -> 3877 bytes TutoOpenCv/bin/Principale_DEUX.class | Bin 2823 -> 0 bytes TutoOpenCv/bin/TestFunc.class | Bin 528 -> 633 bytes TutoOpenCv/src/AnalyseVideo.java | 66 +++++------- TutoOpenCv/src/Fonctions.java | 96 ++++++++++++++++++ .../src/MaBibliothequeTraitementImage.java | 21 +--- TutoOpenCv/src/Principale.java | 6 +- TutoOpenCv/src/TestFunc.java | 1 + 13 files changed, 130 insertions(+), 60 deletions(-) delete mode 100644 TutoOpenCv/bin/MaBibliothequeTraitementImageEtendue_DEUX.class delete mode 100644 TutoOpenCv/bin/Principale_DEUX.class diff --git a/TutoOpenCv/.DS_Store b/TutoOpenCv/.DS_Store index 3fcccba1b23d504c6f43e63de1b7f26d57f7ece8..33bce5bdbd065f10a27b671507569d5b3a3b4c00 100644 GIT binary patch delta 504 zcmZ8cyG{a86g&r1zy~ZZA5jzIHYQlm7)w_y3_b#iF%VR;yIk~@`y2JpL|8=yH#Yj(NPk@rlVPe?SU`!of%|8l9e*jn0MU7Yb5XQ}v6o;8j-K;szH9 zqe===z&hvkq|RAdkQycRtWB=$483-w(9psmDV}M~zmTJb>6juzrfoq8%a;W$rb;D? z*x7$P*R9h9H;gp5s7*P`o%HH$Qc1EBcPhIlq|B~l9TQP+6HI8mES; z5hKMC+_rfoOPxQuxA!_Trm9m`mN!13H$GWe=`#uBJ^_%Ge5=R35*{(mh~rB4MOoP$ zxV#X9O~}9rT*7_}?%)xg;1%BB1HRw~r*ImVF@~$ShU=(c5_fP95AYE4{QwsZf))oj a04#PEf)DPtC9va}{T}Ja;d^Xb9Df0NCyMX@ delta 38 ucmZp1XmOa}&&azmU^hP_?`9qW1;)*6!u`yfck}o#Z)TVH#lW(r&gAcw~Cn=A<%$~hx_CNppd(Qc*?9XxL z`F~HG0&4mFi21ioO+K18+*akHSz#_{Y73`JQ;B$s$qd34twa=7sI@iL91YKD4@JTX zzuw|5woB8!6~n3tTQ;E|8VVng_=W7@Sp%YzuXT0;A!$Y zGPGn(v_6})TG2arVSr>qb%sL(JqT)eLYm zUcpTc^&`1kWoJt4KJJ%^9mO8D@c=fahDTOR4F_iU`WIZh>jo1f;o73PK1D`>qLC~O9 zEDTDc`4ZT1Sy7L`*TeWhO8-As3dq+Z@NNP9L0CIwtr?)Vp`T~xd7krEW_Y2#vX4Et z4zRzWs-J`NRnRW4a42Zsi0DOIAuBvBzN?6jf6(sP!8OJW(03uGZzazf;{$;~S`$=d?%VQs%C%h^KF0_RC%o~_n@jun-8e$NLP zK3Y_1_j^9gIS#+)^PJ=Kd%ny$hTn4`=eYcyZ^Y5NJ(GIsq&-+AG(w_xlgvmnm(#)+ z!lFVe0U|P6QJI4_X0e*Nv~#=s(;7&yT=uPWIMIao~0zv@`$R!rRwB15$n}i$?Di~3~ z1FhgwlzQP=1&e^1wveIE$-f(zd$TdwAj@E=P*4e#`^uq3g)7k!RU{K8B)jBc;|Zy zs{I8MgVnz9CU}beh zxZ3Y?R;mGSD5Tb@zOaNv3`s?iiipn{=u~XQbljpKhFeL;TyLmUjS@>^cFy%8ZsToc zhp<$^GA!qZ&85;3+^L`^?&5Btr?5i7J-C-o60&;Ur(h){N)V)4R9&W{xnBXt1ALXx znxE1|tf2DZl%Uras`3ZxRFy%|p~+koa|K3+#!7gD*d(qNv4N!X z0~ULljAl3_Y+^9=sR_)H@iJZ&@d~e%GK_Jw@CIqBqZw@qwxFHZg#AUqpm!m8XXlg^ zi`d2!Qs$to*rAEo$zaYdE6$lF<2CFS@j4BNcEr&Fod-=xiAJ$xf~MmQhW^<+VM*ma zOJ+s~-WKuJIU`XrVN|q24QTCFu!nE3tT*i!@iD(aPB(qZ;NSs^!zke}&#)Hqy|OHP zrr>jY!H>wr>?;C?uy1tJN~^@a(|7x^NVhw9Cdqn4kcxFCUvUf~qtmT@o{1 zX|YRfn8@IKvL$I2Lbq$8$DO^QS!)e5d5Jxe#V+3|#B=%qw-pAEAh|zRtV{jBDI7V4d zV;ug(c>IM@X2t+^0VXpCrm)_a%CeBp3g~9pV??FCv+sD2N&zw%AHu`*vPxriD%=PI z`caZcAizj8PUBHLMk0!E5|0yRrcy`n1nmTpu^(&cDUz5DJV}%#lC&F7;~7|}&I&w> z=cs}MGMex_t+5xVq(a3y1J+T%dO|irPLMP~#ET*_MdXU`h!{#MkU$QU?grh1oF>u5 zB4y;}`foQ8GeyM6vxoLeP}Kj*>O4Oy(noJ05@I3xhp1BmJqz2>Jfj6Kjkj%d<+ft; z^xQaFuW85D8F?+(UdlYC7){GAkEsc=HpX$hX*X@8B$>FJ=yy;WZC0}Mq_e3vHzEaI zq*7BaMFn}Onu#|)d)yrdk1?dV=6MRkB-Mckr(4#9H88p=rJ7c z(eRka&5RH5A+1{b9WZF^GwVHV7I9F-MyL{YPD@nHusFjuS7DTJ$qboPnY;af0U5NY~<0 g{6bi#zBHH;=ryiO;3;NgK#JiH%EM^BL6N`y19V*K@&Et; diff --git a/TutoOpenCv/bin/Fonctions.class b/TutoOpenCv/bin/Fonctions.class index 90341433845ba7157cd613257e716ac09d2fa46a..21d0d7b803a37a433074aa620ab843600e675bfd 100644 GIT binary patch delta 1593 zcmaJ>S!^3s6g|(eGxlH_NO6n>4HH1Zjsr$W2q_j4I4UG4p`e7cZbZx2es%`p8EZVw zB7yt~h%aREg#v!u^%2-771#rW0>J>T8ZO z^ene@lqEdK&~m*xuExexJr`STnuh7c!wlD5qno^FjE(b*k~Z=MZA`T^Lstr>ks9Oq zZbkMDjdCT=tx+SRX!+u(F%ce6tu95=t%#x(m6D#}SxqN=)-V-|f~~0nS9-PFXs)Em zGB)GPNB!_%6~igVwJ@$_xWRC$Q>`x^8J4h(Aw=B-qKPSs%b14Giz#SaW-cB zcmmrQyjq^?X(PiKR#%cu;mV!vwz9y)BkKihhaXR3mO-+NOHEUqB8qTiBq8A`hSTj) zXhuxL+ulCCP_hOsldE|dbJ!^g-o@Yvk0c_)GM>R63C}VF1aLBDkDlOtVg-F`{CEy~ ziQg=9HN$XWxWB=_j5Z!|tm=g2;A4qWHp@+(v0360_A#_N{KW~4wsgg1rkbY_%)=)h z2mN>+FEFggajVDBEv{QvsXDda7H&|NiCef-+J{MuFCNd>ucr8zgqM~&aWXl5qzzrh z0$vflzsj(3u?X?8p)#OJB?=o~Q zqwXQq89Ftyd_aF2Md$DP@d27?zy&pZgD`yL$H(}DK`wG@SSxBIRk7an10wxld@kWL zs^4CMqxZ=)F9==x@r592DVQYRL5t{yOf^m5CM}<1@a0u&O;(74;WTll0*<1{lWHi1 z!8MW~`K3x(dnyd=|G!uQXgZDSUqwL@%Ze@2-LUA&*;T{S-R_Wk z2D|AzPhtDJJt0pO2kJPKtYaa0Zmo=$Yj~}SH`fZsdm)dziVrtI7Pu-t73qQ)#4sty zslOX5DD6%vYZuLIHv;q>2x1R9=)RwWy*Qtw*o%D_z<$CVAml-;qf2@%-4ZdgUVB0t z@Fi}elQ&HPU*T&?6F?un!4c{|h|BRUzN3U4xB%bd2e^s$Ec}R{=$5Uc-_Q7kZ1)gB e2(CYg!Y$!m3DXjOmGB#wgu`M_M=8LCKmG#LQMb$h delta 40 vcmcbtJynkD)W2Q(7#J9A8CGuOD&d-(%CFAIw7Hi*jfInuVL4EOiD3l*8;%QL diff --git a/TutoOpenCv/bin/MaBibliothequeTraitementImage.class b/TutoOpenCv/bin/MaBibliothequeTraitementImage.class index bfbb9aad9e1ae235c5ae16e3413064180fb50f61..7f83056c0dc7b28f635c014cac1e8796b3b23ac7 100644 GIT binary patch delta 3522 zcmcImX>?Ro68^q^ulx0KJL#mmlROegz=%mFJzQ>#Vy0`U=Z>qe{eZTop0He6~A#c<@(2J#5q2R&*A^~_Y2&)y= z;8tt4dx7f?g*$PVwcmY~zLp4CgZ!akUIcKD!o3I+dUJfiJTLCXeYU>)38(0@)eT5# z6Lm#+Na100bX?}~v;U(CB`CEQu+^UMxM(O5c`wTGq{36!X0>|<1h*?ZgJ%h&Hh$qn zHO+OzY1YeG$60OeJgX?fX%+i6^JQzVFVC|R9s|1x)A~F+930=&GQ^8r@YrTwQ+OS3 zSS9L2*INp2;~lF}O>ym2*oXJ5?W)+dAAd9Of%Un{&;2_#inTFQXN;IK=6Kt`e=2;4 zkE~<-Bl)p4!yon^u$3ObXA1wq=hhYep#B9Bw)O?XnO+=BTl`w#8yvE>_!sp#jBgG6 zhsd~~W`0e@#VvCiD<;mJ*CNI{re_pVS44pb+s*ugKU?1iHA`RRy;oSb*b&jeKu*B;&7YfTrhW5 z%N(0hsSv_ONe_-xJb|OEC$gGdCn=8R$yO}8%r!=FEKju>vP)dQQ5?td*2?S?U6T~6 zc!u>(_LNc|&s3bu--*(ecuP$qp_PzrW!(&>ulaFnD+*h4(&=6{@gjq9;s3BjW8#gC!k!y%ny2^&7K-_K@#YpE4&zBL>nLHnnDedWp(zE6 zd9}gT-VILao>bE^NAVh7+u;r`NIln9c2hU?ZrojM>YZ5EYL7XsU1$&C0eO;GZ>fT!#7LZt-=i9{F&&F> z9(=Nbap`qnCwnsMx*%3)+mocju^5Ko zVmVW^KZobVa-LY+VHNf@6EEOJ;Y38Y125UOIA3Dvk?&=JSts5=mM)_muj)+Amn7n7QV_s#N7y!$ZTPvRdjXEzRr;3qMcHq2OylkF9ot}IFjK5hLm zC`*%MhhlEi84VkzTMxKJVK)wnf-jT!YLUUP5#5A;TkrQhFY#TC*@Q*a0zKEeu^4&YxpAg`xeF(d%B~|Ln3dmF=<&DVP1GGX3H)*W13G zyJS@!TWxgSlGR+;Qxq|u?XI<}s5mh*$yu9tfdkVP`5E?KmE-Z&ELnBrCDWJWh2qyH zHaoDDbuqu`GkucM(r0Bt4>2QcqYZ_&&3Pd%kSqwA87X|}iq$amwa~R;nYP@YB+mIg za+ir*rpP7iNr@F}P?BEb4-!}ONZ0~bih!YsCVf~SoVgM!GVN_2n#!0Ft?~LKud2-Y zMJYDn7vxyb4B7#gArp{`U9MOg$0b}UwI0zuoE6mWcqD|nYICQF;#V7f*kW5{M20`sM zYHz5mboP?lkCN|csIN5gj67)(_g8xIJc$q=YLMP2{jj4p$&C+6WE^rh0exhXA)DI= zd*q;f6%+9qYUR?~h&NIToh%Cm7BVS`VgD9#lOX#LUdYXY95Qnjy9H@7e>}Gc(nZT) zJ|a8i6kYjzlnFb78j;P%gy@lwY~|xU5qVZP_G!OETKW@mItHrc@LMNuj=W|U3aZMZ z0dEq8(Wu>Z14T(bee|gQ8S$7i5{XJ3B>7yBFGiBwDb2rsN`o8%&Z9c)j~+SOpjA1r zpXZfm*b|nv{E9VmV1Yx33kRBsed5J?F!4T$B=yVi0fxxEemp+HWVy^&<73p|6S-=9 zic9eY7U4^@;w#*MuVKkmek~5+e!-iBwhiBOZ)#tSsN&8gx;6{|%g=JM8H`sVb J)I0d@e*xpoMXvw= delta 3521 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 delta 249 zcmWN}J4iwS07l{ScPS&&s6Z(3LJtIsd=``ySXo(_r9*~JH41{Go6&1@aY`JsHR&!< zv#rwZ5;V29HFW25_}b=^+3_1%Xu(fQ6#w1sc4xcHma??aMU?VxVd?T}OItuG>z3saeefE{)1|HVuZcNTAv-NGm;dTFr0W-X6hX)M==lXY0U3(Uo}}OR!X6LC!WZ zDRam%oC$%tMt{k10j;oQbMt5+8^I%ZRKs$CWww(|mh~k^%^0oZFjfjgd-6tBHn_6r-o8QyuEtsoYXsKx8eQg4&a~YT zd9EanI)=%kNXzxs?{lS1!`T#u!_UB zlb2lwj*LmCcyNG$O*H!N^?e(`CL}d93v4R6X3lgC(~*0!j?D7J4>^yH&DbJPRg@(& zm!m@jlKy&odLH0Sb(C#78Qend?HlJ|((Yc{a_y2sey#VH)>I~evNf49i*Dxvw4q(Y z4)V(*-n|(e9Uw8ojDlmhwxh^7cX!Y9drH`a$2Bl9VzUxvW_3J)J*2lK$C*O4GZN+` zR;Px&^9eV@m&3#TwrRP_#rt&Z#{s5kw{)3|`x!HVgZ@YKi_^5I&Ij?bhqkFacN-kr z$~0soxtV5Dy4Qx0Vx$~7ylpy5R-;eHVf53U0W+_nUdk|l%mhEy`=niW7)Qz?TRf3r z94!yqriY}VQrJE{JWfpx#TLAWtZsl zy0U)LPO5_AvZhEQ&r}=|sNYjcm#l_Wwe3+KqEDzBE*GQl3H45JCreQ+EMS9IA z4>Vj*`NHaymitY0JuaNR0h<-guo5J#N8<`2UaEX*94FZe_LUocLih$j1tNT^X&{UR zeCp)|?4ul2p&ASMhMNP65#$KMh}BFY7OM|VVp%HIuyGQr*cy8iHK9egT4PNj(I+~B znyud0eZD zZmExa_BEZo{@7Qt zZDea^YiH|bJIr>1OL5EN|g;nN@yML*` z1iipq!W!ZzRaY}03lT#Nmh!op#c3VCO%fa>QI8fZLodHM`mr3x`B`xaE0940Y%<|I zR^biqxJX%FVlBQ!6Rz>zzRtt^KnZu)|H10~H}BqBB*ju}7OQxrZo*cv1KY%2Y!`jJ z8V9jVoWV|yB#|09sS5(o?H%Y^5{Cf*;(*xJ>9p2$O9XDwGyF^jEr!-PmS=#%Q z_5t6FAv%RUh-mmw!$))e+k}RXDSj6)1qV_81sb}zBp{dvbrt_2o~VeZ-xN1KR3z=V JMC}#$|hWI7n0b)AQiq5D8R(P o1tj?xn1Q4=0~>=50}q2f12>Sz1JS@B%OD5jF*3*lNhSsb0H%K%2><{9 delta 88 zcmey#GJ%Eb)W2Q(7#J9A8DutcnK4eD&p5%slz|Zl85r1w1a>e8g>M8hnHac$Bo~lo fV9;h@W6)#Z2C{e{$`~XVB!N6e1}PxP#2^g-1bPcw diff --git a/TutoOpenCv/src/AnalyseVideo.java b/TutoOpenCv/src/AnalyseVideo.java index b61f832..b99e165 100644 --- a/TutoOpenCv/src/AnalyseVideo.java +++ b/TutoOpenCv/src/AnalyseVideo.java @@ -39,52 +39,36 @@ public static void main(String[] args) { jframe.setVisible(true); Mat frame = new Mat(); - VideoCapture camera = new VideoCapture("/Users/ibrahim/Java_Project/TutoOpenCv/assets/video1.mp4"); - Mat PanneauAAnalyser = null; - - while (camera.read(frame)) { - // completer - //transformation hsv - Mat imageTransformee=MaBibliothequeTraitementImage.transformeBGRversHSV(frame); - // saturation des rouges - Mat imageSaturee=MaBibliothequeTraitementImage.seuillage(imageTransformee, 6, 170, 110); - //liste de contours - List ListeContours= MaBibliothequeTraitementImage.ExtractContours(imageSaturee); - int i=0; - //je test si y'a des contours + VideoCapture camera = new VideoCapture("/Users/ibrahim/Java_Project/TutoOpenCv/assets/video2.mp4"); + Mat objetrond = null; + + while (camera.read(frame)) { + // completer + Mat transformee=MaBibliothequeTraitementImage.transformeBGRversHSV(frame); + Mat saturee=MaBibliothequeTraitementImage.seuillage(transformee, 6, 170, 110); + //Imgproc.GaussianBlur(frame, objetrond, null, 0, 0, 0); + List ListeContours= MaBibliothequeTraitementImage.ExtractContours(saturee); + for (MatOfPoint contour: ListeContours ){ - i++; - PanneauAAnalyser=MaBibliothequeTraitementImage.DetectForm(imageSaturee,contour); - - if (identifiepanneau(PanneauAAnalyser)==0){ - System.out.println("Panneau 30 d�t�ct�"); - } - else if (identifiepanneau(PanneauAAnalyser)==1){ - System.out.println("Panneau 50 d�t�ct�"); - } - else if (identifiepanneau(PanneauAAnalyser)==2){ - System.out.println("Panneau 70 d�t�ct�"); - } - else if (identifiepanneau(PanneauAAnalyser)==3){ - System.out.println("Panneau 90 d�t�ct�"); + + objetrond=MaBibliothequeTraitementImage.DetectForm(frame,contour); + if (objetrond!=null){ + MaBibliothequeTraitementImage.afficheImage("Objet rond", objetrond); + identifiepanneau(objetrond); } - else if (identifiepanneau(PanneauAAnalyser)==4){ - System.out.println("Panneau 110 d�t�ct�"); - } - else if (identifiepanneau(PanneauAAnalyser)==5){ - System.out.println("Panneau interdiction depassement"); - } - else{ - System.out.println("Aucun panneau"); - } + + } - //J'affiche le panneau de reference et la phrase + + + ImageIcon image = new ImageIcon(Mat2bufferedImage(frame)); vidpanel.setIcon(image); vidpanel.repaint(); } } + @@ -122,9 +106,11 @@ public static int identifiepanneau(Mat objetrond){ double scoremax=scores[0]; for(int j=1;jscoremax){scoremax=scores[j];indexmax=j;}} - - + if (scores[j]>scoremax){ + scoremax=scores[j]; + indexmax=j; + } + } } return indexmax; } diff --git a/TutoOpenCv/src/Fonctions.java b/TutoOpenCv/src/Fonctions.java index f7b2b63..baef18b 100644 --- a/TutoOpenCv/src/Fonctions.java +++ b/TutoOpenCv/src/Fonctions.java @@ -112,4 +112,100 @@ public static ArrayList detect_panneau_image(String fichier){ return res; } + + public static ArrayList detect_panneau_imagebis(Mat fichier){ + System.loadLibrary(Core.NATIVE_LIBRARY_NAME); + ArrayList res = new ArrayList(); + Mat imageOriginale=Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/assets/Temoin.png",Highgui.CV_LOAD_IMAGE_COLOR); + Mat imageTransformee=MaBibliothequeTraitementImage.transformeBGRversHSV(imageOriginale); + Mat imageSaturee=MaBibliothequeTraitementImage.seuillage(imageTransformee, 6, 170, 110); + + + //Ouverture le l'image et saturation des rouges + Mat m=Highgui.imshow(fichier,Highgui.CV_LOAD_IMAGE_COLOR); + MaBibliothequeTraitementImage.afficheImage("Image test�e", m); + Mat transformee=MaBibliothequeTraitementImage.transformeBGRversHSV(m); + + //la methode seuillage est ici extraite de l'archivage jar du meme nom + Mat saturee=MaBibliothequeTraitementImage.seuillage(transformee, 6, 170, 110); + Mat objetrond = null; + + //Cr�ation d'une liste des contours � partir de l'image satur�e + List ListeContours= MaBibliothequeTraitementImage.ExtractContours(saturee); + int i=0; + double [] scores=new double [6]; + //Pour tous les contours de la liste + for (MatOfPoint contour: ListeContours ){ + i++; + objetrond=MaBibliothequeTraitementImage.DetectForm(m,contour); + + if (objetrond!=null){ + MaBibliothequeTraitementImage.afficheImage("Objet rond det�ct�", objetrond); + scores[0]=MaBibliothequeTraitementImage.tauxDeSimilitude(objetrond,"/Users/ibrahim/Java_Project/TutoOpenCv/assets/ref30.jpg"); + scores[1]=MaBibliothequeTraitementImage.tauxDeSimilitude(objetrond,"/Users/ibrahim/Java_Project/TutoOpenCv/assets/ref50.jpg"); + scores[2]=MaBibliothequeTraitementImage.tauxDeSimilitude(objetrond,"/Users/ibrahim/Java_Project/TutoOpenCv/assets/ref70.jpg"); + scores[3]=MaBibliothequeTraitementImage.tauxDeSimilitude(objetrond,"/Users/ibrahim/Java_Project/TutoOpenCv/assets/ref90.jpg"); + scores[4]=MaBibliothequeTraitementImage.tauxDeSimilitude(objetrond,"/Users/ibrahim/Java_Project/TutoOpenCv/assets/ref110.jpg"); + scores[5]=MaBibliothequeTraitementImage.tauxDeSimilitude(objetrond,"/Users/ibrahim/Java_Project/TutoOpenCv/assets/refdouble.jpg"); + //recherche de l'index du maximum et affichage du panneau detect� + double scoremax=-1; + int indexmax=0; + for(int j=0;jscoremax){ + scoremax=scores[j]; + indexmax=j; + } + } + if(scoremax<0){System.out.println("Aucun Panneau d�t�ct�");} + else{switch(indexmax){ + case -1:;break; + case 0:System.out.println("Panneau 30 d�t�ct�"); + res.add(Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/assets/ref30.jpg")); + break; + case 1:System.out.println("Panneau 50 d�t�ct�"); + res.add(Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/assets/ref50.jpg")); + break; + case 2:System.out.println("Panneau 70 d�t�ct�"); + res.add(Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/asets/ref70.jpg")); + break; + case 3:System.out.println("Panneau 90 d�t�ct�"); + res.add(Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/assets/ref90.jpg")); + break; + case 4:System.out.println("Panneau 110 d�t�ct�"); + res.add(Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/assets/ref110.jpg")); + break; + case 5:System.out.println("Panneau interdiction de d�passer d�t�ct�"); + res.add(Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/assets/refdouble.jpg")); + break; + }} + + } + } + return res; + + } + public static ArrayList detect_panneau_video(String fichier){ + ArrayList res = new ArrayList(); + + return res; + + } + public static void afficheImage(Mat img){ + MatOfByte matOfByte = new MatOfByte(); + Highgui.imencode(".png", img, matOfByte); + byte[] byteArray = matOfByte.toArray(); + java.awt.image.BufferedImage bufImage = null; + try { + InputStream in = new ByteArrayInputStream(byteArray); + bufImage = ImageIO.read(in); + JFrame frame = new JFrame(); + frame.getContentPane().add(new JLabel(new ImageIcon(bufImage))); + frame.pack(); + frame.setVisible(true); + } + catch (Exception e){ + e.printStackTrace(); + } + } + } diff --git a/TutoOpenCv/src/MaBibliothequeTraitementImage.java b/TutoOpenCv/src/MaBibliothequeTraitementImage.java index 21d8f7f..bebcf2a 100644 --- a/TutoOpenCv/src/MaBibliothequeTraitementImage.java +++ b/TutoOpenCv/src/MaBibliothequeTraitementImage.java @@ -84,10 +84,11 @@ public static Mat seuillage(Mat input, int seuilRougeOrange, int seuilRougeViole Mat threshold_img2 = new Mat(); //threshold_img1 = seuillage_exemple(input, seuilRougeViolet); //threshold_img1 = seuillage_exemple(input, seuilRougeOrange); - Core.inRange(input,new Scalar(0,seuilSaturation,100),new Scalar(seuilRougeOrange,255,255),threshold_img1); - Core.inRange(input,new Scalar(160,seuilSaturation,100),new Scalar(seuilRougeViolet,255,255),threshold_img2); + Core.inRange(input,new Scalar(0,seuilSaturation,0),new Scalar(seuilRougeOrange,255,255),threshold_img1); + Core.inRange(input,new Scalar(160,seuilSaturation,0),new Scalar(seuilRougeViolet,255,255),threshold_img2); Core.bitwise_or(threshold_img1,threshold_img2, threshold_img); - Imgproc.GaussianBlur(threshold_img,threshold_img,new Size(9,9),2,2); + Imgproc.GaussianBlur(threshold_img,threshold_img,new Size(threshold_img.rows(),threshold_img.cols()),9,9); + //image satur�e � retourner return threshold_img; @@ -96,7 +97,6 @@ public static Mat seuillage(Mat input, int seuilRougeOrange, int seuilRougeViole } - //Methode d'exemple qui permet de saturer les couleurs rouges � partir d'un seul seuil public static Mat seuillage_exemple(Mat input, int seuilRougeViolet){ // Decomposition en 3 cannaux HSV @@ -111,7 +111,7 @@ public static Mat seuillage_exemple(Mat input, int seuilRougeViolet){ return rouges; } - //Methode qui permet d'extraire les contours d'une image donnee + //Methode qui permet d'extraire les contours d'une image donnee public static List ExtractContours(Mat input) { // Detecter les contours des formes trouv�es int thresh = 100; @@ -208,8 +208,6 @@ public static Mat DetectForm(Mat img,MatOfPoint contour) { } - - public static double angle(Point a, Point b, Point c) { Point ab = new Point( b.x - a.x, b.y - a.y ); Point cb = new Point( b.x - c.x, b.y - c.y ); @@ -219,7 +217,6 @@ public static double angle(Point a, Point b, Point c) { return Math.floor(alpha * 180. / Math.PI + 0.5); } - //methode � completer public static double tauxDeSimilitude(Mat object,String signfile) { @@ -260,13 +257,5 @@ public static double tauxDeSimilitude(Mat object,String signfile) { } - - - - - - - - } diff --git a/TutoOpenCv/src/Principale.java b/TutoOpenCv/src/Principale.java index 9c27be3..87496c1 100644 --- a/TutoOpenCv/src/Principale.java +++ b/TutoOpenCv/src/Principale.java @@ -5,6 +5,7 @@ import org.opencv.core.*; import org.opencv.highgui.*; import utilitaireAgreg.MaBibliothequeTraitementImage; + public class Principale { public static void main(String[] args) @@ -22,7 +23,7 @@ public static void main(String[] args) MaBibliothequeTraitementImage.afficheImage("Saturation des rouges", imageSaturee); //Ouverture le l'image et saturation des rouges - Mat m=Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/assets/p10.jpg",Highgui.CV_LOAD_IMAGE_COLOR); + Mat m=Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/assets/p7.jpg",Highgui.CV_LOAD_IMAGE_COLOR); MaBibliothequeTraitementImage.afficheImage("Image test�e", m); Mat transformee=MaBibliothequeTraitementImage.transformeBGRversHSV(m); //la methode seuillage est ici extraite de l'archivage jar du meme nom @@ -82,10 +83,7 @@ public static void main(String[] args) res.add(Highgui.imread("/Users/ibrahim/Java_Project/TutoOpenCv/assets/refdouble.jpg")); break; }} - } } - - } } \ No newline at end of file diff --git a/TutoOpenCv/src/TestFunc.java b/TutoOpenCv/src/TestFunc.java index ee8a8d9..b9e468d 100644 --- a/TutoOpenCv/src/TestFunc.java +++ b/TutoOpenCv/src/TestFunc.java @@ -41,6 +41,7 @@ public class TestFunc{ public static void main(String[] args){ Fonctions.detect_panneau_image("/Users/ibrahim/Java_Project/TutoOpenCv/assets/p10.jpg"); + Fonctions.detect_panneau_video("/Users/ibrahim/Java_Project/TutoOpenCv/assets/video2.mp4"); }