From c5848d787467af2c61d5fbc74f3f3d2214a2daad Mon Sep 17 00:00:00 2001 From: even <philippe.even@loria.fr> Date: Tue, 18 Dec 2018 20:09:14 +0100 Subject: [PATCH] Article: scan escapes --- Article/Fig_notions/escapeFirst_zoom.png | Bin 3453 -> 15375 bytes Article/method.tex | 18 ++++++++++++++---- Code/Seg/BSTools/bsstructureitem.cpp | 19 +++++++++++++++++++ Code/Seg/BSTools/bsstructureitem.h | 8 +++++++- Code/Seg/BSTools/bsstructureview.cpp | 10 +++++++++- Methode/ctrl.tex | 1 + 6 files changed, 50 insertions(+), 6 deletions(-) diff --git a/Article/Fig_notions/escapeFirst_zoom.png b/Article/Fig_notions/escapeFirst_zoom.png index a9038d5ccc3185c179f98e2f6a6432666bd88c95..283b80117b047d51d14981778746eb7d200d125c 100644 GIT binary patch literal 15375 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 delta 3438 zcmV-!4UzJXc>Nk7iBL{Q4GJ0x0000DNk~Le0002S000152nGNE0OLO?WsxB=e+?D} z4hf5Jwg3PP3Q0skRCwC$UE5L=Sr9zHpnix72o7>lH^SBZ_EjU+^%A?HEFg;d8-mO} zXc<y-vNNk1->P0ZdKmijWxBE|>$b45u`z3{wS|R+_OmQ5F1FTMo6TnJ=f8jb`t`#1 z&d<*;Z0-BDH9`A!T-*BZ+2?kAfAl@SuD>4ix!?EK<-fPIv~=Nk=svM^(RHHldqKyG zo`?E8{QXeRn>{~t|IqIU-M{GHnJl)Fl9D-@EH5v2HNPPPLISTryar$z8EFQuS&*he z8p^NF&I4%{bRBG6fBs{U3n8R>ed^!QeL+YPJx}(#K>N%xU>1&w9CJukf4ZThq=Oiz zr>9-SKpNHFOtZCBP0o-3+4x@5FpaI+sP;XtY5e&iO@yuwod-i4RWmcBW4;7BkEl<= zd_v?~s7R$EDZ3xpbqg^{N_vQKc6K)ShN+rZ^%WRfWr7e1u_h{;!!!l*mC*XC?aIzy zy}#%@Ro^CxScsidHMfd<f9$!c&kZ3Nx=-l76k?Q=^c32xwG`pIwz}GV<It9ARBy|x zY>;Z>jztcCo+{hLG&9r4mt{k%>=W|okk1!or&MHQ&sk-gn2(2kAB7ktCA}ATeSLkV zXnOy~9ULB}7QA`mM%VUZ{B%^KM0sr0S3ujSEsPLytgz#;`yFMcf3oKhMKa{8GM@?^ z4~hA<g%~9zJw>>>x;o3)wCIgwy!E@|<55WCZGObYs6GSJENTQ?jhis`gz^8(2T|iD zDti{y{88VIeNWAaQxP0lB6Itt8%jzB5JP1Xn9asCcr^Ft@aSmN1sZ!6^$FPD8S<!_ zS+#wc%^!`csPUg@f38~;5zzM;BKs`w$z*cDNAS<v`&P(zEyO4(8IXyp+0^f$h;`Ja zwSCk0=zA<Oe{gV+x-qLOD}(DX4URM=ioB}(z8*wH26kRiAHy^@^VL+g$d2cc03ivh z=djOJpK{IzDcw*~(oqy^YiqNiH;8GHXqG36Q)DB!>iMwqfAjyBjnf#yG21%IHZe^e z&F0OrW@?TS`W)5$ASCcx)uQn}hPPx`T&fVGq-2PdVw!_RM6+40j4e_l#A^1as=*OE z!X%3{D>rXS*Q;i?s?Y1P#8-Sqv#F6!;8`Y?Ie-ud-7l02SBOzk(o;YyD=V{}4VTr} z%m(~b*`sWIe^!|o^_9^5Qgd|dct_vkG+F(9Yi&)sf2bmn`5IpHBaO_moV`Xy`~JS6 z+%7dPg`PV*??Q}{l8#IeFV1W_mAzsbDazWYEKPKuX)N`;P^B2FV=&FHBIysGCK;#k z?3vfB%vV6H4`P#4O|SOrQhh5G+2__T-B41}K@67Df5d8*{hOv{OR9Z^SYIjDhl*W? zTDiuMkMZW}{fV+m>$h%6wzH2Le7Gd`O!Xzzj+0TJ6lDak`^PFq3o%McdM~8!U5jdb z?Tu9XPpO)KX#_Qb9Q9dLc0#R-h{kyiziaHZ@4kiFO#>kTVvSf$xqrSM32ggc(w8wY zWXnFse`rn_^Ci)9Egz$#WXQ*0*`m=3wJ5uk&G})zLAKYf7nO}uvsMwyrTS88WZBmF z{ONORt+nenu6GdvU9Uf$X?(SU(f@w-_xDF3joOnKW!a+7J@S^1QBpF57*Q69@xp3< zsi^P4dfZ0i6i8F3{f<<=oFRj+L-5z*zwg)ifAsN_^q{X?xgy!*s!xXQGh%x-*4IPp z+uyTDW9vmL6$>#+N+Ldn%GyLH-5{TZ*^VmvmDPA^Z`NoBLX>Od*Z=b6%OJv;k3co# z?Tuk%TsR-}<<uN16xnAiQ*`o_ZEtUEq}Z#sV||*^4J9R=7khJab2enNGuxVV1wpJ1 zf9o`t?W!G(h_f6ZwWb@fMo5#MoSb~W5K)tDtcQFwW>c#y8q(-l3qfU*#>OdB3&)@5 z-kUdt7$qeTF{ab$OwlMTZ(i+25zXRd-7Z)hgRQUbBP3<<m6H!A{qwNvcRs>ciQ4oG zDO8QiD)X`xo>4aQvg(EkF-l5$tQ6w!e;EsdBCsl3!w?7|PqqsNLPR#Fob^ckc=AzN z@AmZe#sA;iYpu05old{4vv4`xO`>%%DpIhBJ&WV0mPa(R0rj9ozZ<nLS0P48Ne?mD z#GJ8l43!nhc0N?IP8mX=dWsM4KZFp0*}QuWDHxl?=7nUtgs8Rr%mVNlSnWd3e~_5n zN42stJGrV5qoiaAF&LYqB1p71s#*gaWr<jhRumD8HG;PELQAnPERMq17j;eqn=7KS zf@&R&>T_gg@<r!iM7!=6Vw999h!NdaZBnEen6JW+0j+Bq>;3WjQ9i<t{iWDk4Yk9f znyaO<OKQzNn-_r)COcg>id5=xf7O0kYSwo77$qeNVyLyYtfI~PD(b8|lzW71XY&!> z9let-bh<eW*~Hn|b1J*0b_+r53evDF;;nv9WsR6GfRHKbJ7jzAs=iM77$qeNVvNmO zXBrS82a6+E#o5uJHiK{T&gQV@U5sg<X!dHBjX@a&s814`Hma`6u2Y>>e~Uh6v-H?; zqup853QpBWF2pD)=^=(%A?4rb{kLyZ3);Ny<>lqpT5E>~T1ULC?X6)SU?HX<vy+C@ zTr$K0A&tx;$!cx2S{I{g(rE4#^JSQClAVehjgT`Rrx2s0q=y(PE8u+t--W?Gw;E<Y zebW%)`1rW1=x3D7`KPtkf7;IWcGnhVnoHGis!tGQNz}Lt%T`q@57~J$R*tb#Sq-kn zWuRq{WTDiYy^3R$lnlMtR>8;mE3up-|Hh&0RyL2>kj2}WFJ8V(U7$yptR_-zab&x` zdiAQc*4pmwu7oVACePabEH1*>G4*`ZT5k1zG9QB7PmdJdvMC><f23r{$2dDX8?*tL z&8GHYGVyPyy}5QC_IHmY+gsmQsmWv_*}S&@>cxxHjoIDV39&+BX9%kIRqX?%o(DRA zwSSb#UPW{6&~Z=&UbJU1ngRHu>wD>jl9CQ$cpo9k>ZmrL-+IJAZ@Ta8dU|?#0Xgja z{d@;I&TsecOKgOff0s$5xp()jbo^+RD6*-ewtKX{6GF0R-H94uN0P14_v_p52E~<X z&UZ=4(2MLl5oRY7W$Oi0&4;>yBaL9}7K=Yb=YSwhX8-^9^XI7tVaTSgpY0epmR)1V zV~ED?BeEn=XGt^x%Fh8ozAwtrD#R!$8A6P##*EIhVE>0~e^6G_?R^o%W_TOZZyDQ# z5K9&0gZ=gF*(ju8*{F<NQu}pfeF+xd@}DE*@$3<bhh^g@75OeHi6DmRJE%w!MT%&) zD~i~nDW+aicqBn_5~lh6=giheK2Eg%QP!uqfA3z($6)ar|GCAd7@Or08%>i{eHXRc z2%KS9x}l_`f1@Do+_@te%VT?`qBoamf-Jv}j_27e<TLpAh~KK3CtI<m&H!XNZs<Ip zC*w3GmKmT{WO~*R`35WtnB6Dz{8?wjIp4N)LrF>Jh1%NMnhmif+5SODlSZe8M)`ci zN-(y@=WO}UJsW}|?`$15SA!u?_C6sWkL4D5g#GvRf9uo_?e_-{MzKaJ0?%oFGM}UR zN|lsk5JP=))jmUB)G43o3lYyt?TU?Zwoo3wM-GoDtgeDhcU3FlSf4KzKS1}(Ux#On zkcPJX$4{Q5p6jEB4^xO3Weexn&e9DfC7l;+dwY8pvHhbpyeg{|MJ#!i8tE{Yoi2*9 zf6?qhf77hiFH2n?u~MpUfWC)(GlU4Jdx@HRm1UEjJbjw_VgK>yk@WjTQixGf(t9y? zc6Mf$!6Ie*1F6}!%%@;;yjc%bcKxbN>m$AlNo?zLxJ*N%Is}9WNTaiE=BQpqWwWxG z0$CrDJ*Ph(KOW`N6k?Q=3?W7|;+*wC#&)?Le_IcNSc)jWj@CoAxM_Gp65D!&LF|st z8upqVv0(l@eNDYTU$w&_^C8E^tD@^?bNl@N8PXJDl$3O2GPXCV*Klm^x7w|m*{0DP zE%g6vUIWvh2!YW3F%9k6EWh>QSsklTMDYbSPg~{nRn45O-(bHdk7R6aikiWJj%#dI ze<4OmiGmo}?%2`EJnGE4v5|6>jbb(|)4(1nt(ysobNKZQ0j^!U)?Lr{1~#9>@B6wE z?|ayOHa?{K3T$3{v|kzeyP5;Xx{=IT3Z)xLN;-(aGy!_^$4(B4?lVMStOH_S7{VY; ziuzr7_Q_w5*W|35h1aweIrr<>`hMT{e*{J~@6j$FEN+$U#vaWHW0io>x|l+Yl9D0B z$aa)tk?pY^4YOI2{=C>EBQ_h*Yi3`!fmo2MSFd($eB`Sj778Jnk6+k&s28yLBDVEe zvxY>dQ=dA2Jli)cI-ONzH`$CsXo-|=C@C56F_>?lvJGm@H|wVTt9%mVBX~B6L{;1& zAA$AiWj3#B10y8yK8(L!A9+Vz<`Juf`Z|rRILuC}in64r(y|bvq(qSa0snp`-#L_- QZ~y=R07*qoM6N<$f`stS0RR91 diff --git a/Article/method.tex b/Article/method.tex index 355e76c..6563452 100755 --- a/Article/method.tex +++ b/Article/method.tex @@ -77,11 +77,21 @@ fail again on a blurred segment escape from the directional scan. \begin{figure}[h] \center - \begin{tabular}{c} - \includegraphics[width=0.49\textwidth]{Fig_notions/escapeFirst_zoom.png} + \begin{tabular}{c@{\hspace{0.2cm}}c@{\hspace{0.2cm}}c} + \includegraphics[width=0.31\textwidth]{Fig_notions/escapeFirst_zoom.png} & + \includegraphics[width=0.31\textwidth]{Fig_notions/escapeSecond_zoom.png} & + \includegraphics[width=0.31\textwidth]{Fig_notions/escapeThird_zoom.png} \end{tabular} - \caption{Example of early detection failures - on side escapes from the directional scan.} + \begin{picture}(1,1)(0,0) + \put(-314,-12){a)} + \put(-200,-12){b)} + \put(-86,-12){c)} + \end{picture} + \caption{Aborted detections on side escapes from the directional scan + during the initial tracking step (a) and during the fine tracking + step (b), and complete detection using an adaptive directional + scan (c). The input selection is drawn in red colour, the scan + strip bounds in blue and the detected blurred segment in green.} \label{fig:escape} \end{figure} diff --git a/Code/Seg/BSTools/bsstructureitem.cpp b/Code/Seg/BSTools/bsstructureitem.cpp index 77bc856..ce96bb3 100755 --- a/Code/Seg/BSTools/bsstructureitem.cpp +++ b/Code/Seg/BSTools/bsstructureitem.cpp @@ -36,6 +36,7 @@ BSStructureItem::BSStructureItem (int width, int height, const QImage *im, det = detector; displayItem = DISPLAY_MIN; displayScanLines = false; + displayInput = false; this->im = im; verbose = true; infoPen = QPen (Qt::red, DEFAULT_PEN_WIDTH, Qt::SolidLine, @@ -274,6 +275,17 @@ void BSStructureItem::paintScansAndFilter (QPainter *painter, int step) } } + // Display the input selection + if (displayInput) + { + vector<Pt2i> stroke; + Pt2i ip1, ip2, ipc; + int iw; + det->getScanInput (BSDetector::STEP_INITIAL, ip1, ip2, iw, ipc); + ip1.draw (stroke, ip2); + paintPixels (painter, stroke, Qt::red); + } + // Displays filter output if (det->isFiltering (step)) { @@ -282,6 +294,13 @@ void BSStructureItem::paintScansAndFilter (QPainter *painter, int step) BlurredSegment *bs = det->getBlurredSegment (step); if (bs != NULL) paintPixels (painter, bs->getStartPt (), Qt::yellow); } + + // Displays the blurred segment + else + { + BlurredSegment *bs = det->getBlurredSegment (step); + if (bs != NULL) paintPixels (painter, bs->getAllPoints (), Qt::green); + } } if (verbose) diff --git a/Code/Seg/BSTools/bsstructureitem.h b/Code/Seg/BSTools/bsstructureitem.h index 4b2d660..d1e8e80 100755 --- a/Code/Seg/BSTools/bsstructureitem.h +++ b/Code/Seg/BSTools/bsstructureitem.h @@ -76,10 +76,14 @@ public: /** * \brief Switches on or off the scan line display modality. - * @param next Get next information if true, previous on otherwise. */ inline void switchScanDisplay () { displayScanLines = ! displayScanLines; } + /** + * \brief Switches on or off the input selection display modality. + */ + inline void switchInputDisplay () { displayInput = ! displayInput; } + /** * \brief Returns the displayed information title. */ @@ -168,6 +172,8 @@ private: int displayItem; /** Scan display modality. */ bool displayScanLines; + /** Input selection display modality. */ + bool displayInput; /** Information text modality. */ bool verbose; /** Information text style. */ diff --git a/Code/Seg/BSTools/bsstructureview.cpp b/Code/Seg/BSTools/bsstructureview.cpp index e40b0f1..606444f 100755 --- a/Code/Seg/BSTools/bsstructureview.cpp +++ b/Code/Seg/BSTools/bsstructureview.cpp @@ -97,6 +97,14 @@ bool BSStructureView::processKeyEvent (QKeyEvent *event) processed = false; break; + case Qt::Key_J : // Input selection display + if (event->modifiers () & Qt::ControlModifier) + grid->switchInputDisplay (); + scene()->update (); + update (); + processed = false; + break; + case Qt::Key_V : // Info display grid->switchInfoDisplay (); scene()->update (); @@ -120,7 +128,7 @@ bool BSStructureView::processKeyEvent (QKeyEvent *event) // QRect (QPoint (0, 0), // QSize (grid->getWidth(), grid->getHeight())) // ).toImage().save ("structure.png"); - // cout << "Structure shot in capture.png" << endl; + // cout << "Structure shot in structure.png" << endl; break; case Qt::Key_Plus : // Zoom in diff --git a/Methode/ctrl.tex b/Methode/ctrl.tex index 86e186c..0c66a0e 100755 --- a/Methode/ctrl.tex +++ b/Methode/ctrl.tex @@ -83,6 +83,7 @@ p && Capture la fen\^etre dans un fichier .png \\ \hline \hline \multicolumn{3}{|l|}{Analyse des segments flous extraits :} \\ Ctrl-i && Commute le type d'affichage des scans \\ +Ctrl-j && Commute l'affichage de la barre de s\'election \\ Ctrl-b && Commute le fond d'\'ecran de la fen\^etre principale. \\ + -- && Zoom \\ $< \wedge > \vee$ && D\'ecalage de l'observation \\ -- GitLab