<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Yes, you can use the ITK pipeline and run the Extract filter on demand. If you want a memory efficient way to deal with sub-images, you use the ITK pipeline with an Extract filter and don't store them. You could choose to store you 4D image in memory, or stream read it from disk if you really want to minimize you memory foot print.<div><br></div><div>If you want an efficient way to process 3d sub volumes of the 4d volume you may want to look into the SliceBySliceImageFilter:</div><div><a href="http://www.itk.org/Doxygen/html/classitk_1_1SliceBySliceImageFilter.html">http://www.itk.org/Doxygen/html/classitk_1_1SliceBySliceImageFilter.html</a></div><div><br></div><div>Hope that help,</div><div>Brad</div><div><br><div><div>On Mar 7, 2014, at 2:50 AM, Polfliet Mathias <<a href="mailto:mpolflie@etro.vub.ac.be">mpolflie@etro.vub.ac.be</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">

<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
It  does help, thank you Brad. Just making sure I understood it clearly. What you mean is that I should use the Extract image filter every time I need the 3D slice? Instead of the way I do it now: Use it once, store all the separate 3D images into a std::vector
 and when I need them, I call the pointer from memory.
<div><br>
</div>
<div>With kind regards,</div>
<div><br>
</div>
<div>Mathias</div>
<div><br>
<div>
<div>On 06 Mar 2014, at 13:35, Bradley Lowekamp <<a href="mailto:blowekamp@mail.nih.gov">blowekamp@mail.nih.gov</a>> wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
Hello,
<div><br>
</div>
<div>Using the Extract image filter in a streaming fashion is very efficient. Additionally the filter can be run "in-place" so no copy of the data is required. What is your file type and how is is stored?</div>
<div><br>
</div>
<div>Just create an ExtractImageFilter connected to connected to a reader/series reader, then only update the Extract filter not the Reader. This will cause just a region of interest to be read and stream the pipeline. As long as the ImageIO supports streaming
 or you have a series, the IO/memory should be quite minimal.</div>
<div><br>
</div>
<div>Hope that help,</div>
<div>Brad</div>
<div><br>
<div>
<div>On Mar 6, 2014, at 3:31 AM, Cyril Jaudet <<a href="mailto:drcjaudet@gmail.com">drcjaudet@gmail.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div dir="ltr">Hi,
<div> i have a similar problem to use a registration process on 4dPET images there is a multivolume explorer module architecture that seems to access in an efficient way to the multivolume data in 3Dslicer but it use vtk :
<div><a href="https://github.com/fedorov/MultiVolumeExplorer">https://github.com/fedorov/MultiVolumeExplorer</a></div>
<div>Best Regards,</div><p class=""><a name="_MailAutoSig"><span style="font-size:10pt;font-family:Cambria">Jaudet Cyril, PSRPM, PhD</span></a></p><p class=""><span style="font-size:10pt;font-family:Cambria">Département d'Ingénierie et de Physique Médicale</span><span style="font-family:Cambria"></span></p><p class=""><span style="font-size:10pt;font-family:Cambria">Institut Claudius Regaud</span></p><p class=""><span style="font-size:10pt;font-family:Cambria">20-24, rue du Pont Saint-Pierre - 31052 Toulouse Cedex</span><span style="font-family:Cambria"></span></p><p class=""><span style="font-size:10pt;font-family:Cambria">Tél. interne:4801 /Tél. externe : 05 67 69 63 46
</span></p>
<div><br class="webkit-block-placeholder">
</div>
<div><span style="font-size:10pt;font-family:Cambria">E-mail : </span><a href="mailto:jaudet.cyril@claudiusregaud.fr"><span style="font-family:Cambria">jaudet.cyril@claudiusregaud.fr</span></a>  </div>
</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">2014-03-06 9:07 GMT+01:00 Polfliet Mathias <span dir="ltr">
<<a href="mailto:mpolflie@etro.vub.ac.be" target="_blank">mpolflie@etro.vub.ac.be</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear ITK community,<br>
<br>
Is there an elegant, CPU and/or memory efficient way provided in the source code to store or get “subimages" ( such as a single 2D slice in a 3D volume or a single time point in a 4D series)? Some functions I use take Images as input so I cannot use Regions.
 For example if I were to take a 4DCT image and I want to work on a single time point ( i.e. a 3D image), I would have to use ITK::ExtractImageFilter. This method, however, becomes very memory intensive because the 4DCT is loaded into the memory and (in my
 case) every separate 3D slice as well. Is there an elegant or CPU/Memory friendly way to work around this?<br>
<br>
With kind regards,<br>
<br>
Mathias Polfliet<br>
PhD Student Vrije Universiteit Brussel<br>
_______________________________________________<br>
Community mailing list<br>
<a href="mailto:Community@itk.org">Community@itk.org</a><br>
<a href="http://public.kitware.com/cgi-bin/mailman/listinfo/community" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/community</a><br>
</blockquote>
</div>
<br>
</div>
_______________________________________________<br>
Community mailing list<br>
<a href="mailto:Community@itk.org">Community@itk.org</a><br>
<a href="http://public.kitware.com/cgi-bin/mailman/listinfo/community">http://public.kitware.com/cgi-bin/mailman/listinfo/community</a><br>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>

</blockquote></div><br></div></body></html>