From 5468e1e9820093c08ad166ddd847123338479b2c Mon Sep 17 00:00:00 2001 From: zulu Date: Wed, 28 Aug 2013 09:23:09 +0200 Subject: [PATCH] 28/08 matin --- THESE/Chapters/chapter2/chapter2.tex | 20 ++- .../snake/cochon128_tradi_snake_init.png | Bin 0 -> 6804 bytes .../snake/cochon128_tradi_snake_it10.png | Bin 0 -> 1757 bytes .../codes/snake/cochon128_tradi_snake_it3.png | Bin 0 -> 2720 bytes .../codes/snake/cochon128_tradi_snake_it7.png | Bin 0 -> 1784 bytes .../snake/cochon128_tradi_snake_result.png | Bin 4808 -> 2718 bytes .../snake/gvf_dist_v4.2c/examples/gvf_ex.m | 6 +- .../gvf_dist_v4.2c/examples/tradition_ex.m | 6 +- .../gvf_dist_v4.2c/examples/tradition_ex.m~ | 63 ++++++++ THESE/these.aux | 8 +- THESE/these.lof | 5 + THESE/these.log | 142 +++++++++++++----- THESE/these.pdf | Bin 3858752 -> 3871347 bytes THESE/these.tex | 4 +- THESE/these.toc | 2 +- 15 files changed, 207 insertions(+), 49 deletions(-) create mode 100644 THESE/codes/snake/cochon128_tradi_snake_init.png create mode 100644 THESE/codes/snake/cochon128_tradi_snake_it10.png create mode 100644 THESE/codes/snake/cochon128_tradi_snake_it3.png create mode 100644 THESE/codes/snake/cochon128_tradi_snake_it7.png create mode 100644 THESE/codes/snake/gvf_dist_v4.2c/examples/tradition_ex.m~ diff --git a/THESE/Chapters/chapter2/chapter2.tex b/THESE/Chapters/chapter2/chapter2.tex index e4dcf5e..2e2e701 100644 --- a/THESE/Chapters/chapter2/chapter2.tex +++ b/THESE/Chapters/chapter2/chapter2.tex @@ -189,15 +189,29 @@ Le principe général est de superposer une courbe paramétrique à l'image, le \item l'énergie interne de la courbe, fonction de son allongement de sa courbure. \item l'énergie externe liée à l'image, fonction de la proximité de la courbe avec les zones de fort gradient et éventuellement une contrainte fixée par l'utilisateur comme des points imposés par exemple. \end{itemize} -Ici encore, la résolution du problème revient à minimiser une fonction d'énergie sous contrainte et les diverses techniques de résolution numérique peuvent s'appliquer comme pour les autres classes d'algorithmes itératifs présentés précédemment. +%TODO +% formule générale +Ici encore, la résolution du problème revient à minimiser une fonction d'énergie sous contrainte et les diverses techniques de résolution numérique peuvent s'appliquer comme pour les autres classes d'algorithmes itératifs présentés précédemment, avec ici encore, un nombre de paramètres à régler assez important. Dans sa version originale proposée par Kass \textit{et al.} en 1988 \ref{snake_kass_1988}, l'algorithme dit du \textit{snake} présente l'intérêt de converger en un nombre d'itérations assez réduit et permet de suivre naturellement un \textit{cible} en mouvement après une convergence initiale à une position donnée, chaque position de convergence fournissant une position initiale pertinente pour la position suivante. -Toutefois, il se montre sensible à l'état initial de la courbe et requiert souvent de celle-ci qu'elle soit assez proche de l'objet à ``entourer'', sous peine de se verrouiller dans un minimum local. +Toutefois, il se montre particulièrement sensible à l'état initial de la courbe et requiert souvent de celle-ci qu'elle soit assez proche de l'objet à ``entourer'', sous peine de se verrouiller dans un minimum local. La sensibilité au bruit n'est pas non plus très bonne du fait de la formulation locale de l'énergie. Les ``concavités'' étroites ou présentant un goulot d'étranglement marqué sont par ailleurs mal délimitées. Enfin, la fonction d'énergie étant calculée sur la longueur totale de la courbe, cela pénalise la bonne identification des structures de petite taille vis à vis de la longueur totale de la courbe. +La figure \ref{fig-snake-tradi-cochon} illustre ces défauts en montrant quelques états intérmédiaires ainsi que le résultat final d'une segmentation réalisée à partir d'un contour initial circulaire et des paramètres réglés empiriquement, en employant la méthode du snake original. +On voit que la convergence est assez rapide mais que le contour ainsi détérminé ne ``colle'' pas bien à l'objet que l'on s'attend à isoler. +\begin{figure} + \centering +\subfigure[Les états initial et après chacune des trois premières itérations]{\includegraphics[height=3cm]{/home/zulu/Documents/these_gilles/THESE/codes/snake/cochon128_tradi_snake_it3.png}}\quad +\subfigure[L'état du contour après la septième itération]{\includegraphics[height=3cm]{/home/zulu/Documents/these_gilles/THESE/codes/snake/cochon128_tradi_snake_it7.png}}\\ +\subfigure[L'état du contour après la dixième itération]{\includegraphics[height=3cm]{/home/zulu/Documents/these_gilles/THESE/codes/snake/cochon128_tradi_snake_it10.png}}\quad +\subfigure[L'état du contour après la centième itération. C'est le contour final.]{\includegraphics[height=3cm]{/home/zulu/Documents/these_gilles/THESE/codes/snake/cochon128_tradi_snake_result.png}} +\caption{Segmentation d'une image en niveaux de gris de 128 $\times$ 128 pixels par algorithme dit du \textit{snake}, dans sa version originale. Les paramètres d'élastictié, de viscosité, de raideur et d'attraction ont été fixés respectivement aux valeurs 5, 0, 0.1 et 5. } +\label{fig-snake-tradi-cochon} +\end{figure} + Il est cependant possible de contrôler la finesse de la segmentation mais au prix de temps de calculs qui peuvent devenir très longs. -Les variantes les plus intéressantes sont : +Parmi les variantes élaborées qui tentent de pallier ces défauts, les plus intéressantes sont : \begin{itemize} \item le \textit{balloon snake}, conçu pour remédier au mauvais suivi des concavités en introduisant une force supplémentaire de pression tendant à \textit{gonfler} le snake jusqu'à ce qu'il rencontre un contour suffisamment marqué. Cela suppose toutefois que l'état initial de la courbe la situe entièrement à l'intérieur de la zone à segmenter et est surtout employé dans des applications semi-automatiques où l'utilisateur définit au moins une position et une taille initiales pour la courbe. \item le \textit{snake} GVF (pour Gradient Vector Flow), dont le but est de permettre qu'une initialisation lointaine de la courbe ne pénalise pas la segmentation. Une carte des lignes de gradient est établie sur tout le domaine de l'image et sert à intégrer une force supplémentaire dans l'énergie totale, qui attire la courbe vers la zone de fort gradient. diff --git a/THESE/codes/snake/cochon128_tradi_snake_init.png b/THESE/codes/snake/cochon128_tradi_snake_init.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd6bdd8e9fabed0271465f44b9cddca3d555618 GIT binary patch literal 6804 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 literal 0 HcmV?d00001 diff --git a/THESE/codes/snake/cochon128_tradi_snake_it10.png b/THESE/codes/snake/cochon128_tradi_snake_it10.png new file mode 100644 index 0000000000000000000000000000000000000000..fcf2472f07d16043c36f1a82f4d2e6e5508ad6cb GIT binary patch literal 1757 zcmah~{Xf%-9{kQt9 zfD8~1E1R2U7Ji5j);FC`PuJ*RhtK&u8PlI`pwFm$Q6az#J0QNr|V&3@5AR|5f z*2hGFKCVU9KzF&gvHw#HKXI8Y*&6GV970D;rM}a?{|G-AZi8Gs;LzuzPAp zN0naJ>aNKwVZRxb5kCS}P^~FZa~&l$4?7m&ZD>7ZSjqV2O_#c+y>!>)fzx+)I$?F5|1DcZa~iI8<8LC5fw&40Fv*PFjM6uI$FloFB`#iJ|DAx9k> z8vRr?Ny1{GZT10-TqOx=roFCy*<+qEwG$QN1V(ZJW5jRsL!}LPpUWxsY0B-i&Ak?y zT^+`%A-txfHJEX-tbE;9Mh5pt=G(KG1x0*_8qv^I2t3mgNaF5o4`b5{iyUbNcCrK$U9pTe2{ zsr%mk6BkKy6pc1Ck+W{^N-(8cl3Gd@K3E?J(hX#DM#^J#$5x{$j~(5n0Q}rE_^WIlES}sMW=W`2_q{yIGo>SsX_6mYP4(VW zX0jd?;^ou3CFb$0^md9ZR6IpLuD$V|`Hw@Oxp~;i zfnUaT&Mk+?cm~PahrgIdsh;<{a!uy8?wDU#0$C+GS!^T*E|!?&(Kyoct(N;5A9=j| zM6AOl&@@h8FzSWd?;>=fAa_&IM2C;f8NT4Z(BV38q;r0DS!-OU*Ci31Dh)`P#BU?9 zX>E0nU-%K;aLrG>xoL7Qt{$Fg6J^jW5udcWx&Ub6yR1wnBa+O1^1RM)qFp7_xVn5) z+Rj6W1QQQ=f}aqTP<@bQXz=e<-uCsDFy`8|LWbtqVD$oFe6|8_)4Sf8T3)fw2h{+V z?xqH8Nzo6r3v+g45S{8j=MVMVK*;-W!}>JNOWT~V$OSn1Lw^atAUdJ;d{>4^8uho* zf)??6!wwcInX*_{kFnH>)yCN~w`rX(oZ34ml`S>EBy6`IcEzm4?n<AKz$uB%^he7dh|D8YYiCeUF#>vh19 zP_t3vf<+kLClk`AY#{81T)wl=uQ%QWv(bvUrDPuwMKR|UgyP8`%ht|yhr&eI-F^P6 z{Oq?&GNyMd@*wrq?7j9kjKe4=SI4z$7vEOQ84ZnszwyTY>esTIw&UB$Cqx{1nLTX7 z5BHwNJBEzHNiWGe?cN!=`&wDphzsaN+@uvc(mWzJzDW`y@hC6n+Wm}oW^=uR&$3>P z4_=*?AX#1pWMK_vc5Nv=S>L;OGW}weVG<09Fci&PCbr0o{?CQ~FUKFZq>sqwV0Gk@ RyXxNqP`vy|O`c(#zX72m672v0 literal 0 HcmV?d00001 diff --git a/THESE/codes/snake/cochon128_tradi_snake_it3.png b/THESE/codes/snake/cochon128_tradi_snake_it3.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e647594d1ba061a0bda927b849b472faa4c1e6 GIT binary patch literal 2720 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 aar_4)*bx5LugfO@0000)h=3MfK=dr0>$jkgM- z+!Wp9uHSvO3SN!}w=19XX(pV@sh>Y`N1@r?>&@WuI(1xib=Pnt+n2k&qs9d%Wq(Bs zj*bZKiMT#1U+eGu7Negm;#w0VzqH+sI8iu|fxlm#5E7`CP*8qcI(KC31%AE6#>kj6Yqx*SN(% z4kX5$X1JQaNXCym-A1LXFYotyom)lQ;)whrXZebkv4 z9t9UZCpx_xR#bt}7{WBsoZ`#rk&vp?@rUgX7#mGSI7|!C!JpxCIMo4ffIO9OEr|IH z+z;Me-%H`Co_=KUvz{T{Guds8z(e2Ch1nb^>Ha{Y0|mS~##up$u%T$Kh+dQSNT(Dk zX%6z?e!x64xr{tHvD?I~MHh0w)Mm@Z3JceKRrN#iSZ10u9X+Hm0U^4;XlkfXM?hmz z*47ijoP`X8ahxrPzX-7XM_EoBuaKY#NM5nz;(MsMdp2}I{;fB77F@3EeBZn;Q!B)U z<6sUZpL5j)I4y}yJ+acqh0tWQOkR^HP0RH7^kjv| zjq>9SOKOqsVAPNZctsB0sauAC(_4wAkgxK6teXi};>T>Fk3q3Af}9)+)mA^aOeN;@ znBRYjrjB30pGea>uwI^=oIkc!C?~DW6D<{J7@ZlI}HevC{A`{x-&dUEw`%&mAWdm zZJz4_x%JE^WxtXz!ugbd+x7uw4eB{R`=K|e*l3pRqzzT9Xg9K>(>)C2XLfx_k&W?8AeNS^DY$?6O|jxZ=x2S6C=3og$Ri)M zOB)=XTRyQOhdS2W;ra~aZ?@9L_YW|k73x8r(A3S`%XlTaODF4=$uCv(=zs= zXnqL@GT(K{bsD4S*wr=dBqvSl*!@ehM6iA_A}ZCwPN# zdJv?;)`Ovk(-7(6^uMLiY`KZG8*jxURBhIK9V>?yDw{*QmDSaL-r{Z!|GS}i`_vy- z#=xPbpZ>P6+S4JlK^2KEmw4Ss(}s`qg%97}&!B?hbg^p*qShkmg-*ozN-)n4gSq@a$<|?vZ3F9k7fxGAEfWj z#3Ny^!DO`wryX?k~o5L#%nETtlkwsbvWoV1#LLsVAnCExs< z&U8xrz*^2~>;+(>n%?Pbza{>eCXkrXdJd_yO3zgv86Qp6q(LQhi{+~7r2=Jgg2*va zA01$8PQywm)1{I5F;)fyawi+9;A#tp#b{)&&;kOb|0z}r<6@DH(6`;oc_~Zw-D3kq_8V%|NBUNKQUVbA~OZl&M zrDIw4@VtUemgH}-RT4pUFcj?VBw5FrE+MR(*Iv?olU6eA|3V!MWASV%rf`#9h*i0o}ybu6vXi3-rXi&5iAYR%33p9nX+3bF~j471fWUXZS;KsiAEddm3J1aiP Glk;Ep9TQdn literal 0 HcmV?d00001 diff --git a/THESE/codes/snake/cochon128_tradi_snake_result.png b/THESE/codes/snake/cochon128_tradi_snake_result.png index 45d90773ec268c1997ba2a2c63640f22ffb86b11..4817ac52c9735ac8f03e448ef195c0fc4e77f758 100644 GIT binary patch literal 2718 zcmaJ@dstH076+{;E3wH&#|LI!$KKe~godc4rH+}6mX@g)HDM9b)$s{F=5~GMBxck2 zO0g`>Qqe&%lZR%gWlFwA1O-h?OA!@C5QKYh=H9<%?svZZoxRuDYn}C5zqQuh>8DS* zZPqi<1A#!BJ=|S=Kp^nySg!*};Pp+|#XuvmxjbaMr1v`;a!>@FbL zaKrt41fV{k9pGa-3t|8v>Um@}}Adnu+!}aKy7`}M;e7N9*;o8%- zA0ltzN)A6IJ*sdAnO;J~#Z0KIf4E@So}qkaERSIZ``#_$VrkUQ4(a@hgjmfaq^5qu>id6!znc7&Z07{o%l2pT1Z|S7`GoA|1h)nd zJsw|DNd4&>4U}p2Pe za6WI3LO*eiOkOHis|?i#>O0bCFW2DzKMD zZ>yzBIj~;G6xEmHwQnkZ^3O}~cVJdcMZ`{4A=0Ou7-ZRdt z(=L=~$l~dys3uzy#h;>A)|#1TV>SF0&$y{%$rm1Y^7j@skWC82ro4__aT6i;0}c}K zFS;0CQ439MKjVnbg8DO|9fv(DtAeH#ePmqk;z0Rq9csJGHMeZ0rf5yU3mW=t z+>FIg;=QTY-_mJrJKdnk?_^0l-Se@h)S?Zt*0tlk`qMX5NWsD@kDq)pJXYDK zW205#X}1~A!@VCV{L(ANnZqWf@pz~ndK&DaUVnRB-$CmiiRD)=9(`Et2riP~{63*Y}=Q*hmEOLA)TeTFqHB z5BjlqHO@(v?B%yk1y#P92Ky_Nf>zT8$#6UX;u|xeK%cK}>cr^3a-k;V*DG@i1GPS9(d@nn4 zZ+)%b!`a~kfRY-BO9D@%dUNPG<6h_UOnPd5>Jt4X9X>l4&NBZm;^K;Nd)FQS*3A~8 zi<&3>9R5+H(!E3e`J|E$Gi1@>0d@@pUZ`p?_nHMBC}87xd(uA|j+DYyc6SV#J9d~R zyio2~-ks_m#vagGv80&lgQGG(6eLbhZjEWQGn+kk5f2^Im*63IG+UN4+(?`B@r)13 zanPFAdOh`&(!o@ZbQX351&P*=_XKGpS=DyC^4VN|;WtMr<8!925)Fv!o8nlOY?<4Q z0~JEXwMcHELpd_-*Iwm=t0Fy$wwu_Fi%K#Sw1vFczyU*}<$VV;O0w*F+F!!A+hn_*_qi{o$qX?-cKW)Sxyr@aXDC@3xzw1uf!6hn%T&6ae*L zu#8X4D7Ra@PA&9Z=q>}re9WOkYUBNrV<$a$mHQm=j!g$88@pJKa+a|JP>B_VN$!{J z?;pX=YdMU#Tr?DG6YDz`Ux__as=p(=ayC|0s&)3Ih0t`KyD6)HoDqO7308ZLO>QQ9 z$%noFl0|otAN8nR?s5{Hseg79546mXc1fYN|~UJx2`ti0Hv7U)i)g zg&EIVh5!&#<+*-^1Wyahv;#b(9mr0)2E~rOl8_FoBDOWA=HQ4oV&Jli!tVj1M0SO^ zcD6igFVLS?>Di=CS7iop+28zoDclwVbY@H0hhp(n=Ba_4b?}6N$J-pW%)HtPG&_ln z^F|^kMbmlFQR0-aoV#Ph#`RB3r0+Uq9p{(dz0q{TciAl;v4Tr|mH2Kk0=nPJ)+ zKPO4~QV-rtL1JAZCX=;su%x`Ftu(M%W-kZekey5J)VZ*s9$B$i*FxABNX;0uj0~Qw zO~MiRu$Nnu=wt#iq&-#dihnoWv4*yg4YaD3Vr^9kmnMIg;=C3$>@Dn6Mel?Z4huA% z2Lq*8RvG_oqv}#J>pphm;%R^~jOGeCY}L%z$|CLxw~$M|QCUUzmjnA<9Es~*x{U21 z(m!(s6LwcWa(asaB82BQ7A}8kbUaM4^pb6PjnZ~-rPZo4h^Q`2ufzGSa6xH`rti)# z(Qbl0Bm<)D_}$&Am5HnS`f`xfN9Jr$*F6QgeD#^pvi;i&wq@|yVH0-``U?$F+Q#K{ zPEH3fJZVho_iZb;?|n=8r!T?r%tkzQ_UN>=g$v88Ix$oe-0vNPcoBH{aH5~n$!g#b zigXNB_CIw0S~Hi+VwF}(2oK8ZeZ)8=4p_CdTydVZ`dZXPwshhR$>Y3w7Ya$DymVgb z;93&8N>ic`>!cid8$FU9uU2uRz)@?`;-3d4nS(I|x2&NpJge=p(Wo^iZvJMf;%`u0 z)Su?Cl-*4;pc*K`BzL0$u~FA^-SM9fjb<>db&)!Fa`$%C%t)tIcI(r)ntH41%LX`x z5pnNVu5VR`yvR8v$o<%oHuL6>{n+V7txWwqvgwR*xp_1?z7o|M#O- z?{78#G;01ztsv1EqYMW)Rg_aEJ_;Q2zz^TmCxYGA2vxX=eY(Kq5#(|Flxx+okbnIL D{Hu=f literal 4808 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 R4*rP**jPB4SD)~``7g}OuUG&8 diff --git a/THESE/codes/snake/gvf_dist_v4.2c/examples/gvf_ex.m b/THESE/codes/snake/gvf_dist_v4.2c/examples/gvf_ex.m index 57d53e2..79708c0 100644 --- a/THESE/codes/snake/gvf_dist_v4.2c/examples/gvf_ex.m +++ b/THESE/codes/snake/gvf_dist_v4.2c/examples/gvf_ex.m @@ -45,7 +45,7 @@ % Compute the GVF of the edge map f disp(' Compute GVF ...'); - [u,v] = GVF(f, 0.2, 80); + [u,v] = GVF(f, 0.1, 80); disp(' Nomalizing the GVF external force ...'); mag = sqrt(u.*u+v.*v); px = u./(mag+1e-10); py = v./(mag+1e-10); @@ -72,14 +72,14 @@ figure(1); subplot(221); cla; colormap(gray(64)); image(((1-f)+1)*40); axis('equal', 'off'); t = 0:0.05:6.28; - x = 32 + 30*cos(t); + x = 32 + 20*cos(t); y = 32 + 30*sin(t); [x,y] = snakeinterp(x,y,2,0.5); snakedisp(x,y,'r') pause(1); for i=1:50, - [x,y] = snakedeform(x,y,2,0,1,0.1,px,py,5); + [x,y] = snakedeform(x,y,3,0,1,0.5,px,py,5); [x,y] = snakeinterp(x,y,2,0.5); snakedisp(x,y,'r') title(['Deformation in progress, iter = ' num2str(i*5)]) diff --git a/THESE/codes/snake/gvf_dist_v4.2c/examples/tradition_ex.m b/THESE/codes/snake/gvf_dist_v4.2c/examples/tradition_ex.m index 37e6cc5..abfdd66 100644 --- a/THESE/codes/snake/gvf_dist_v4.2c/examples/tradition_ex.m +++ b/THESE/codes/snake/gvf_dist_v4.2c/examples/tradition_ex.m @@ -44,10 +44,12 @@ pause(1); disp('... Press -C to stop the program at any time.'); - for i=1:100, + for i=1:20, [x,y] = snakedeform(x,y,5,0,0.1,5,px,py,5); [x,y] = snakeinterp(x,y,2,0.5); - snakedisp(x,y,'r') + if i > 100 + snakedisp(x,y,'r') + end title(['Deformation in progress, iter = ' num2str(i*5)]) pause(0.5); end diff --git a/THESE/codes/snake/gvf_dist_v4.2c/examples/tradition_ex.m~ b/THESE/codes/snake/gvf_dist_v4.2c/examples/tradition_ex.m~ new file mode 100644 index 0000000..4bb9da4 --- /dev/null +++ b/THESE/codes/snake/gvf_dist_v4.2c/examples/tradition_ex.m~ @@ -0,0 +1,63 @@ +% EXAMPLE an example of traditional snake on U-shape image +% + +% Chenyang Xu and Jerry Prince 6/17/97 +% Copyright (c) 1996-97 by Chenyang Xu and Jerry Prince + + cd ..; s = cd; s = [s, '/snake']; path(s, path); cd examples; + + help tradition_ex; + % ==== Example 1: U-shape object ==== + + % Read in the 64x64 U-shape image + %[I,map] = rawread('../images/cochon64.pgm'); + I = imread('../images/cochon128.pgm'); + % Compute its edge map, + disp(' Compute edge map ...'); + f = 1 - I/255; + f0 = gaussianBlur(f,1); + % note: snake potential is the negative of edge map + disp(' Comute the traditional external force ...'); + [px,py] = gradient(f0); + + % display the results + figure(1); + subplot(121); imdisp(-f); title('snake potential'); + subplot(122); quiver(px,py); + axis('square', 'equal', 'off', 'ij'); % fix the axis + title('traditional force'); + + % snake deformation + disp(' '); + disp(' Press any key to start the deformation'); + pause; + figure(1); subplot(121); cla; + colormap(gray(64)); image(((1-f)+1)*40); + axis('square', 'equal', 'off'); + disp(''); + disp('... Now capture range is small, use closer initialization.') + t = 0:0.05:6.28; + x = 64 + 60*cos(t); + y = 64 + 60*sin(t); + [x,y] = snakeinterp(x,y,2,0.5); + %snakedisp(x,y,'r') + pause(1); + + disp('... Press -C to stop the program at any time.'); + for i=1:20, + [x,y] = snakedeform(x,y,5,0,0.1,5,px,py,5); + [x,y] = snakeinterp(x,y,2,0.5); + if i == 10 + snakedisp(x,y,'r') + end + title(['Deformation in progress, iter = ' num2str(i*5)]) + pause(0.5); + end + + disp(' '); + disp(' Press any key to display the final result'); + pause; + figure(2); clf; + colormap(gray(64)); image(((1-f)+1)*40); axis equal + snakedisp(x,y,'r') + title(['Final result, iter = ' num2str(i*5)]); diff --git a/THESE/these.aux b/THESE/these.aux index c83dbe8..4a2ca98 100644 --- a/THESE/these.aux +++ b/THESE/these.aux @@ -77,7 +77,13 @@ \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$r=35 \Rightarrow s = 4$}}}{20}{figure.2.4}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$r=25 \Rightarrow s = 5$}}}{20}{figure.2.4}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.4.4}Les contours actifs, ou \textit {snakes}}{20}{subsection.2.4.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.5}M\IeC {\'e}thodes hybrides}{21}{subsection.2.4.5}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme dit du \textit {snake}, dans sa version originale. Les param\IeC {\`e}tres d'\IeC {\'e}lasticti\IeC {\'e}, de viscosit\IeC {\'e}, de raideur et d'attraction ont \IeC {\'e}t\IeC {\'e} fix\IeC {\'e}s respectivement aux valeurs 5, 0, 0.1 et 5. }}{21}{figure.2.5}} +\newlabel{fig-snake-tradi-cochon}{{2.5}{21}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme dit du \textit {snake}, dans sa version originale. Les paramètres d'élastictié, de viscosité, de raideur et d'attraction ont été fixés respectivement aux valeurs 5, 0, 0.1 et 5. \relax }{figure.2.5}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Les \IeC {\'e}tats initial et apr\IeC {\`e}s chacune des trois premi\IeC {\`e}res it\IeC {\'e}rations}}}{21}{figure.2.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la septi\IeC {\`e}me it\IeC {\'e}ration}}}{21}{figure.2.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la dixi\IeC {\`e}me it\IeC {\'e}ration}}}{21}{figure.2.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la centi\IeC {\`e}me it\IeC {\'e}ration. C'est le contour final.}}}{21}{figure.2.5}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.5}M\IeC {\'e}thodes hybrides}{22}{subsection.2.4.5}} \@writefile{toc}{\contentsline {section}{\numberline {2.5}L'\IeC {\'e}tat de l'art des impl\IeC {\'e}mentations GPU}{22}{section.2.5}} \@writefile{toc}{\contentsline {chapter}{\numberline {3}La segmentation orient\IeC {\'e}e r\IeC {\'e}gions dans les images bruit\IeC {\'e}es}{23}{chapter.3}} \@writefile{lof}{\addvspace {10\p@ }} diff --git a/THESE/these.lof b/THESE/these.lof index bf23ecc..fb8b605 100644 --- a/THESE/these.lof +++ b/THESE/these.lof @@ -23,6 +23,11 @@ \contentsline {subfigure}{\numberline {(b)}{\ignorespaces {$r=50 \Rightarrow s = 3$}}}{20}{figure.2.4} \contentsline {subfigure}{\numberline {(c)}{\ignorespaces {$r=35 \Rightarrow s = 4$}}}{20}{figure.2.4} \contentsline {subfigure}{\numberline {(d)}{\ignorespaces {$r=25 \Rightarrow s = 5$}}}{20}{figure.2.4} +\contentsline {figure}{\numberline {2.5}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme dit du \textit {snake}, dans sa version originale. Les param\IeC {\`e}tres d'\IeC {\'e}lasticti\IeC {\'e}, de viscosit\IeC {\'e}, de raideur et d'attraction ont \IeC {\'e}t\IeC {\'e} fix\IeC {\'e}s respectivement aux valeurs 5, 0, 0.1 et 5. }}{21}{figure.2.5} +\contentsline {subfigure}{\numberline {(a)}{\ignorespaces {Les \IeC {\'e}tats initial et apr\IeC {\`e}s chacune des trois premi\IeC {\`e}res it\IeC {\'e}rations}}}{21}{figure.2.5} +\contentsline {subfigure}{\numberline {(b)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la septi\IeC {\`e}me it\IeC {\'e}ration}}}{21}{figure.2.5} +\contentsline {subfigure}{\numberline {(c)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la dixi\IeC {\`e}me it\IeC {\'e}ration}}}{21}{figure.2.5} +\contentsline {subfigure}{\numberline {(d)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la centi\IeC {\`e}me it\IeC {\'e}ration. C'est le contour final.}}}{21}{figure.2.5} \addvspace {10\p@ } \addvspace {10\p@ } \addvspace {10\p@ } diff --git a/THESE/these.log b/THESE/these.log index 9aaabab..676946b 100644 --- a/THESE/these.log +++ b/THESE/these.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2012.12.6) 27 AUG 2013 14:19 +This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2012.12.6) 28 AUG 2013 09:21 entering extended mode %&-line parsing enabled. **\input these.tex @@ -1312,9 +1312,6 @@ ft_r25m100.png Graphic file (type png) -LaTeX Font Info: Font shape `OT1/phv/m/it' in size <12> not available -(Font) Font shape `OT1/phv/m/sl' tried instead on input line 185. - Underfull \vbox (badness 1033) has occurred while \output is active [] [19 ] +LaTeX Font Info: Font shape `OT1/phv/m/it' in size <12> not available +(Font) Font shape `OT1/phv/m/sl' tried instead on input line 185. + LaTeX Warning: Reference `snake_kass_1988' on page 20 undefined on input line 1 -94. +96. + + + +File: /home/zulu/Documents/these_gilles/THESE/codes/snake/cochon128_tradi_snake +_it3.png Graphic file (type png) + +Underfull \hbox (badness 2662) in paragraph at lines 205--205 +[]\OT1/phv/m/n/9 (a) Les []etats ini-tial + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 205--205 +\OT1/phv/m/n/9 et apr[]es cha-cune + [] -Underfull \vbox (badness 2644) has occurred while \output is active [] - [20 ] +Underfull \hbox (badness 2591) in paragraph at lines 205--205 +\OT1/phv/m/n/9 des trois premi[]eres + [] + -LaTeX Warning: Reference `level_sets_osher_sethian_1988' on page 21 undefined o -n input line 206. + +File: /home/zulu/Documents/these_gilles/THESE/codes/snake/cochon128_tradi_snake +_it7.png Graphic file (type png) + +Underfull \hbox (badness 10000) in paragraph at lines 206--206 +\OT1/phv/m/n/9 apr[]es la septi[]eme + [] -LaTeX Warning: Reference `narrow_band_level_set' on page 21 undefined on input -line 206. + +File: /home/zulu/Documents/these_gilles/THESE/codes/snake/cochon128_tradi_snake +_it10.png Graphic file (type png) -LaTeX Warning: Reference `fast_marching_sethian' on page 21 undefined on input -line 206. + +Underfull \hbox (badness 10000) in paragraph at lines 207--207 +\OT1/phv/m/n/9 apr[]es la dixi[]eme + [] -LaTeX Warning: Reference `cohenSMIE93, ronfard' on page 21 undefined on input l -ine 207. + +File: /home/zulu/Documents/these_gilles/THESE/codes/snake/cochon128_tradi_snake +_result.png Graphic file (type png) + + +Underfull \hbox (badness 10000) in paragraph at lines 208--208 +\OT1/phv/m/n/9 apr[]es la centi[]eme + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 208--208 +\OT1/phv/m/n/9 it[]eration. C'est le + [] + +[20 ] [21 ] + +LaTeX Warning: Reference `level_sets_osher_sethian_1988' on page 22 undefined o +n input line 220. + + +LaTeX Warning: Reference `narrow_band_level_set' on page 22 undefined on input +line 220. + + +LaTeX Warning: Reference `fast_marching_sethian' on page 22 undefined on input +line 220. + + +LaTeX Warning: Reference `cohenSMIE93, ronfard' on page 22 undefined on input l +ine 221. ! Undefined control sequence. -l.207 ...ibitifs jusqu'à ce que Bertaux \textitat +l.221 ...ibitifs jusqu'à ce que Bertaux \textitat {et al.} proposent une amÃ... The control sequence at the end of the top line of your error message was never \def'ed. If you have @@ -1361,20 +1426,23 @@ spelling (e.g., `I\hbox'). Otherwise just continue, and I'll forget about whatever was undefined. -LaTeX Warning: Reference `snake_bertaux' on page 21 undefined on input line 207 +LaTeX Warning: Reference `snake_bertaux' on page 22 undefined on input line 221 . -LaTeX Warning: Reference `sec_contrib_snake' on page 21 undefined on input line - 207. +LaTeX Warning: Reference `sec_contrib_snake' on page 22 undefined on input line + 221. + + +LaTeX Warning: Reference `amfm_2010' on page 22 undefined on input line 227. -LaTeX Warning: Reference `amfm_2010' on page 21 undefined on input line 213. +LaTeX Warning: Reference `watershed' on page 22 undefined on input line 227. -LaTeX Warning: Reference `sec_ea_gpu' on page 21 undefined on input line 214. +LaTeX Warning: Reference `sec_ea_gpu' on page 22 undefined on input line 228. -) [21] [22] +) [22] Chapitre 3. [23 @@ -1407,7 +1475,7 @@ No file these.bbl. pdfTeX warning: pdflatex (file /usr/share/texmf/tex/latex/upmethodology-extensi ons/phd_thesis/spimufcphdthesis/spimufcphdthesis-backpage.pdf): PDF inclusion: found PDF version <1.6>, but at most version <1.4> allowed - + File: spimufcphdthesis-backpage.pdf Graphic file (type pdf) @@ -1424,13 +1492,13 @@ LaTeX Warning: There were undefined references. ) (\end occurred when \iftrue on line 130 was incomplete) Here is how much of TeX's memory you used: - 9989 strings out of 495028 - 145172 string characters out of 1181229 - 275209 words of memory out of 3000000 - 12759 multiletter control sequences out of 15000+50000 + 10017 strings out of 495028 + 146837 string characters out of 1181229 + 275496 words of memory out of 3000000 + 12777 multiletter control sequences out of 15000+50000 71443 words of font info for 129 fonts, out of 3000000 for 9000 28 hyphenation exceptions out of 8191 - 61i,15n,47p,1412b,425s stack positions out of 5000i,500n,10000p,200000b,50000s + 61i,15n,47p,1412b,463s stack positions out of 5000i,500n,10000p,200000b,50000s {/usr/share/texmf-texliv e/fonts/enc/dvips/base/8r.enc} -Output written on these.pdf (34 pages, 3858752 bytes). +Output written on these.pdf (34 pages, 3871347 bytes). PDF statistics: - 482 PDF objects out of 1000 (max. 8388607) - 95 named destinations out of 1000 (max. 500000) - 298 words of extra memory for PDF output out of 10000 (max. 10000000) + 494 PDF objects out of 1000 (max. 8388607) + 100 named destinations out of 1000 (max. 500000) + 318 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/THESE/these.pdf b/THESE/these.pdf index 6a369a4557424a66942024ee38f37faf611804ad..c8326247fb3e06937005c5bd6813e9ddcc7ee0c4 100644 GIT binary patch delta 36949 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 HD~0|KMlzRw delta 25127 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 V*6lr1N3&Yr-n($&`X@K`{saC&wQB$X diff --git a/THESE/these.tex b/THESE/these.tex index 741a067..a483507 100644 --- a/THESE/these.tex +++ b/THESE/these.tex @@ -74,12 +74,12 @@ \begin{document} \tableofcontents - + %-------------------- % The content of the PhD thesis % objectifs, cadre % annonce du plan -\chapter{Introduction} +\chapter{Introduction} \input{Chapters/chapter1/chapter1.tex} \chapter{Le traitement des images bruitées} \input{Chapters/chapter2/chapter2.tex} diff --git a/THESE/these.toc b/THESE/these.toc index 9241416..5286c63 100644 --- a/THESE/these.toc +++ b/THESE/these.toc @@ -13,7 +13,7 @@ \contentsline {subsection}{\numberline {2.4.2}Analyse de graphe}{15}{subsection.2.4.2} \contentsline {subsection}{\numberline {2.4.3}kernel-means, mean-shift et d\IeC {\'e}riv\IeC {\'e}s}{17}{subsection.2.4.3} \contentsline {subsection}{\numberline {2.4.4}Les contours actifs, ou \textit {snakes}}{20}{subsection.2.4.4} -\contentsline {subsection}{\numberline {2.4.5}M\IeC {\'e}thodes hybrides}{21}{subsection.2.4.5} +\contentsline {subsection}{\numberline {2.4.5}M\IeC {\'e}thodes hybrides}{22}{subsection.2.4.5} \contentsline {section}{\numberline {2.5}L'\IeC {\'e}tat de l'art des impl\IeC {\'e}mentations GPU}{22}{section.2.5} \contentsline {chapter}{\numberline {3}La segmentation orient\IeC {\'e}e r\IeC {\'e}gions dans les images bruit\IeC {\'e}es}{23}{chapter.3} \contentsline {section}{\numberline {3.1}Pr\IeC {\'e}sentation - existant}{23}{section.3.1} -- 2.39.5