<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Times New Roman \, serif";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
pre
        {mso-style-priority:99;
        mso-style-link:"Préformaté HTML Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Texte de bulles Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        color:black;}
span.PrformatHTMLCar
        {mso-style-name:"Préformaté HTML Car";
        mso-style-priority:99;
        mso-style-link:"Préformaté HTML";
        font-family:Consolas;
        color:black;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.TextedebullesCar
        {mso-style-name:"Texte de bulles Car";
        mso-style-priority:99;
        mso-style-link:"Texte de bulles";
        font-family:"Tahoma","sans-serif";
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=FR link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Cyril, Simon,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Thanks for your detailed answers. I’ll try to give a go with the FDK filter first, and I’ll keep you updated.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Regards,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Albert<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>De :</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> Cyril Mory [mailto:cyril.mory@creatis.insa-lyon.fr] <br><b>Envoyé :</b> jeudi 9 novembre 2017 14:34<br><b>À :</b> MURIENNE Albert<br><b>Cc :</b> rtk-users@public.kitware.com<br><b>Objet :</b> Re: [Rtk-users] Reconstruction filter progress observer<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p><span style='font-family:"Calibri","sans-serif"'>A few more sentences on this point:</span><o:p></o:p></p><p><span style='font-family:"Calibri","sans-serif"'>- Indeed, very few RTK filters currently perform progress reporting</span><o:p></o:p></p><p><span style='font-family:"Calibri","sans-serif"'>- For pipelines (instead of individual filters), you want to use that class: <a href="https://itk.org/Doxygen/html/classitk_1_1ProgressAccumulator.html">https://itk.org/Doxygen/html/classitk_1_1ProgressAccumulator.html</a>.</span><o:p></o:p></p><p><span style='font-family:"Calibri","sans-serif"'>- Despite its name, "progress.CompletedPixel()" can be called after any meaningful step, not just the update of a pixel. On iterative filters, for example, <a href="http://www.cs.cmu.edu/~galeotti/methods_course/ITK_Filters2.pdf">http://www.cs.cmu.edu/~galeotti/methods_course/ITK_Filters2.pdf</a> suggest that ProgressReporter can be initialized with the maximum number of iterations instead of with the total number of pixels to update, and progress.CompletedPixel() can be called at each iteration. So if you are reconstructing with an iterative reconstruction filter, you could start by trying to add a ProgressReporter to that class, and count its iterations. That's for the modifications to perform in the RTK code, it is probably just a few lines for the first test.<br><br>Now, your question was about the existence of some code to observe the progress of a filter, assuming that filter does call the </span><br><span style='font-family:"Calibri","sans-serif"'>progress.CompletedPixel() adequately. You may want to check this ITK example: <br><a href="https://itk.org/Doxygen/html/SphinxExamples_2src_2Core_2Common_2ObserveAnEvent_2Code_8cxx-example.html">https://itk.org/Doxygen/html/SphinxExamples_2src_2Core_2Common_2ObserveAnEvent_2Code_8cxx-example.html</a><br><br>I hope it helps,<br>Cyril</span><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On 09/11/2017 14:29, Simon Rit wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><div><div><div><div><div><p class=MsoNormal>Dear Albert,<o:p></o:p></p></div><p class=MsoNormal>We have not implemented anything in this direction so far. But it would be useful to have it and I know there is a mechanism to do that in ITK Have you ever used it on your side?<o:p></o:p></p></div><p class=MsoNormal>I think the idea is:<o:p></o:p></p></div><p class=MsoNormal>- in the reconstruction filter, to create and regularly call a <a href="https://itk.org/Doxygen/html/classitk_1_1ProgressReporter.html">ProgressReporter</a>,<o:p></o:p></p></div><p class=MsoNormal>- where you want to observe the progress, you add an observer.<o:p></o:p></p></div><p class=MsoNormal>There are many examples in ITK. If you want to do it, feel free to give it a try. If you need help, I'm happy to support your. I have created an <a href="https://github.com/SimonRit/RTK/issues/114">issue</a> in github to keep it in mind.<o:p></o:p></p></div><p class=MsoNormal>Simon<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Thu, Nov 9, 2017 at 1:27 PM, MURIENNE Albert <<a href="mailto:albert.murienne@thalesgroup.com" target="_blank">albert.murienne@thalesgroup.com</a>> wrote:<o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US style='color:#1F497D'>Cyril, to be more precise : if I run a long time reconstruction, I want to be available to track progression of the computation (ie 0 to 1 floating index), to have an idea of how fast it is running, if we are close to the end and so on…</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US style='color:#1F497D'>Albert</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US style='color:#1F497D'> </span><o:p></o:p></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>De :</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> Cyril Mory [mailto:<a href="mailto:cyril.mory@creatis.insa-lyon.fr" target="_blank">cyril.mory@creatis.insa-lyon.fr</a>] <br><b>Envoyé :</b> jeudi 9 novembre 2017 13:25<br><b>À :</b> MURIENNE Albert; <a href="mailto:rtk-users@public.kitware.com" target="_blank">rtk-users@public.kitware.com</a><br><b>Objet :</b> Re: [Rtk-users] Reconstruction filter progress observer</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p>Hello,<o:p></o:p></p><p>I am not sure I understand. Are you trying to know, during runtime, which filter is currently being updated ? <o:p></o:p></p><p>Otherwise, can you reformulate your question (possibly with more context) ? <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'>Best,<br>Cyril<o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On 09/11/2017 13:11, MURIENNE Albert wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US>Hello,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US>Is there a simple code example available to illustrate the registration of an observer to be notified with the progression of rtk’s reconstruction filters?</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US>Thanks in advance for your help,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US>Regards</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>--<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Albert Murienne<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'><span style='font-family:"Times New Roman , serif","serif"'><br><br></span><o:p></o:p></p><pre>_______________________________________________<o:p></o:p></pre><pre>Rtk-users mailing list<o:p></o:p></pre><pre><a href="mailto:Rtk-users@public.kitware.com" target="_blank">Rtk-users@public.kitware.com</a><o:p></o:p></pre><pre><a href="http://public.kitware.com/mailman/listinfo/rtk-users" target="_blank">http://public.kitware.com/mailman/listinfo/rtk-users</a><o:p></o:p></pre></blockquote><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Times New Roman , serif","serif"'> </span><o:p></o:p></p></div></div></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><br>_______________________________________________<br>Rtk-users mailing list<br><a href="mailto:Rtk-users@public.kitware.com">Rtk-users@public.kitware.com</a><br><a href="http://public.kitware.com/mailman/listinfo/rtk-users" target="_blank">http://public.kitware.com/mailman/listinfo/rtk-users</a><o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p></div></blockquote><p class=MsoNormal><o:p> </o:p></p></div></body></html>