<div dir="ltr"><div><div><div><div><div><div><div>Hello Nirvedh,<br><br></div>It is difficult to know exactly why your predecessor used the "Update" calls without having the entire code (and being able to read his mind :p). My guess, because he is disconnecting the pipelines, is that he wanted to either process the images manually after (maybe using an iterator) or that this is done in a loop that does more things. Or maybe he wanted to make sure that everything executed well up to that point.<br></div>The reason why not forcing the update calls can make the processing faster is because your pipeline may not need to process all of the data.<br></div>Let's take a simple example:<br></div>If I create a pipeline that 1) reads an image, 2) performs some filtering filter over the image, 3) extract one slice of the filtered result, 4) save the extracted slice, the pipeline really need to perform the filtering only on the slice that is being extracted (and maybe a neighboring region). Calling Update after 2) (depending how you set up the processing region) would filter the entire image. So in this example, it is better to not call Update().<br><br></div>As I said before, there are situations were calling Update() is necessary, but otherwise it may very well slow down your processing.<br><br></div>Hopes this helps,<br></div>Francois<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, May 12, 2017 at 2:01 PM, Nirvedh Meshram <span dir="ltr"><<a href="mailto:nmeshram@wisc.edu" target="_blank">nmeshram@wisc.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">
<div id="m_8442359950585830879divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr">
<p>Hi all,</p>
<p><br>
</p>
<p>I am looking at a ITK code written by a predecessor in my lab group. This code is used for image registration and the snippet of this looks as shown below.</p>
<p><br>
</p>
<p></p>
<div>    m_FixedImage->Update();</div>
<div>   m_MovingImage->Update();</div>
<div>    m_FixedImage-><wbr>DisconnectPipeline();</div>
<div>    m_MovingImage-><wbr>DisconnectPipeline();</div>
<div><br>
</div>
<div>  // do image registration</div>
<div><br>
</div>
<div>However, if I comment the first two lines. I still get the exact same results but I end up saving 30 seconds. </div>
<div><br>
</div>
<div>If I comment all lines I get an error saying I tried to access some region which was of size [0,0]</div>
<div><br>
</div>
<div>I was hoping someone could give me insight into what exactly is going on here. </div>
<div>I understand updates matter to make sure your pipeline executes. But both these images are inputs to downstream filters then why had my predecessor chosen to do these updates separately here and why do I still get correct results without the updates.</div>
<div>Why is it important to disconnect these pipelines here before continuing the registration?</div>
<div><br>
</div>
<div>Thank you,</div>
<div>Nirvedh</div>
<div><br>
</div>
<p></p>
</div>
</div>

<br>______________________________<wbr>_________________<br>
Community mailing list<br>
<a href="mailto:Community@itk.org">Community@itk.org</a><br>
<a href="http://public.kitware.com/mailman/listinfo/community" rel="noreferrer" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/community</a><br>
<br></blockquote></div><br></div>