[ITK-users] In-place extraction of N-1 dimensional images from N dimensional images

Wood, Tobias tobias.wood at kcl.ac.uk
Fri Jul 29 12:28:52 EDT 2016


Thanks for the technical details Brad.

I am going to plead lack of time (and understanding of ITK internals) here, and keep my code as-is. Maybe for the future some time.

Best wishes,
Toby

On 28/07/2016, 18:24, "Lowekamp, Bradley (NIH/NLM/LHC) [C]" <blowekamp at mail.nih.gov> wrote:

    
    
    
    Hello,
    
    
    I think the missing features to implement this proper is one step lower that the ExtractImageFilter, rather in the ImportImageContainer. The container would need to support presenting one buffer, but holding the whole buffer someplace. Also the
     ability to share buffers between images is not supported either. When filters are run “InPlace” the output steals the buffer from the input, so there is no buffer sharing. This is essentially adding different “view” to a buffer.
    
    
    I had been concerned about the performance of the ExtractImageFilter filter previously. If I recall correctly I update the filter to use the ImageAlgorithm::Copy method and improved the performance by something like 100x for some test cases. You
     could profile the filter run with the default number of thread and with just 1 thread to determine how best to run it. Also you would need to veriify that the pipeline is executing as expected and efficiently. If this still does not meet your timing requirements
     you’d likely be better off just writing a function to create a ImportImageContainer with your “view”, and manage the memory yourself. This would bypass the pipeline. 
    
    
    HTH,
    Brad
    
    
    On Jul 28, 2016, at 1:06 PM, Dženan Zukić <dzenanz at gmail.com> wrote:
    
    Hi Toby,
    
    
    Extract filter could theoretically run in place only when the extraction region differs from largest possible region only along the slowest changing index. To make this possible, ExtractImageFilter should override CanRunInPlace() which it inherits from InPlaceImageFilter
     and implement this theoretical check. Of course, other changes will be required to make it function properly.
    
    
    Regards,
    Dženan
    
    
    On Thu, Jul 28, 2016 at 9:23 AM, Wood, Tobias 
    <tobias.wood at kcl.ac.uk> wrote:
    
    Hello Dženan,
    
    I have had the same problem as Edwin with ExtractImageFilter, but in a different context. Eventually I gave up and accepted the speed/memory penalty of copying the 3D volumes out of the 4D series. Is there really no way in ITK to get a temporary “view” of a
     subregion for processing, without resorting to referencing the raw arrays?
    
    Thanks,
    Toby
    
    On 28/07/2016, 13:40, "Insight-users on behalf of Dženan Zukić" <insight-users-bounces at itk.org on behalf of
    dzenanz at gmail.com> wrote:
    
    
        Hi Edwin,
    
    
        you should be able to achieve your goal using
        import image filter <http://www.vtk.org/doc/nightly/html/classvtkImageImport.html#details>. ITK has import image filter
        too <https://itk.org/Doxygen/html/classitk_1_1ImportImageFilter.html>, so you can decide in which library to do dimensional reduction.
    
    
        Regards,
        Dženan
    
    
        On Thu, Jul 28, 2016 at 4:37 AM, Edwin Bennink
        <hebennink at gmail.com> wrote:
    
        Hello,
    
    
        I am working on an ITK/VTK viewer for visualizing 3D+time image data. The data is represented by 4D images in ITK (x,y,z,t). I would like to be able to access the 3D data in VTK without copying it, since that would slow down scrolling through time in large
         datasets. I noticed that, although in-place extraction should be possible, the ExtractImageFilter 'says no' to in-place extraction when the input and output dimensions differ. Does anyone know a way to achieve my goal using existing ITK functions? For
     example,
         if there would be some way of reducing the dimension of 'flat' images, i.e. 3D (Nx,Ny,1) to 2D (Nx, Ny), then I could still use the ExtractImageFilter.
    
    
        Best,
        Edwin
    
    
        _____________________________________
        Powered by 
    www.kitware.com <http://www.kitware.com/> <http://www.kitware.com <http://www.kitware.com/>>
    
        Visit other Kitware open-source projects at
        
    http://www.kitware.com/opensource/opensource.html <http://www.kitware.com/opensource/opensource.html>
    
        Kitware offers ITK Training Courses, for more information visit:
        
    http://www.kitware.com/products/protraining.php <http://www.kitware.com/products/protraining.php>
    
        Please keep messages on-topic and check the ITK FAQ at:
        
    http://www.itk.org/Wiki/ITK_FAQ <http://www.itk.org/Wiki/ITK_FAQ>
    
        Follow this link to subscribe/unsubscribe:
        
    http://public.kitware.com/mailman/listinfo/insight-users <http://public.kitware.com/mailman/listinfo/insight-users>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    _____________________________________
    Powered by www.kitware.com <http://www.kitware.com>
    
    Visit other Kitware open-source projects at
    http://www.kitware.com/opensource/opensource.html
    
    Kitware offers ITK Training Courses, for more information visit:
    http://www.kitware.com/products/protraining.php
    
    Please keep messages on-topic and check the ITK FAQ at:
    http://www.itk.org/Wiki/ITK_FAQ
    
    Follow this link to subscribe/unsubscribe:
    http://public.kitware.com/mailman/listinfo/insight-users
    
    
    
    
    
    
    





More information about the Insight-users mailing list