[ITK] [ITK-users] why can the itkStatisticsImageFilter not stream?
Grothausmann, Roman Dr.
grothausmann.roman at mh-hannover.de
Fri Apr 17 12:12:17 EDT 2015
Dear Brad, dear Richard,
Many thanks for Your replies. So, if I understand You correctly, the problem is
that the current framework (with StreamingImageFilter) will run
AfterThreadedGenerateData for each chunk and not just when the whole image has
been processed. So one would need to combine StatisticsImageFilter and
StreamingImageFilter into one filter, i.e. basically that the part of
AfterThreadedGenerateData is executed by StreamingImageFilter.
If I understand the code of itkStreamingSinc correctly, this is what it does?
itkStreamingSinc provides a base class to combine multi-threaded filters with a
StreamingImageFilter to make them streamable. This comes with the trade-off that
the resulting filter will not provide an output, which is no problem if it is
not needed. So, e.g. itkStreamingStatisticsImageFilter cannot be connected to
itkPipelineMonitorImageFilter as it would need an output of
itkStreamingStatisticsImageFilter?
Many thanks Brad for implementing itkStreamingStatisticsImageFilter. I just
tested it and it works perfectly
(https://github.com/romangrothausmann/ITK-CLIs/commit/38bcad35bf004feaf2189bdaaffcf398fbca1f60).
Though, I do not understand the changes You made in:
https://github.com/blowekamp/itkStreamingSinc/commit/b4ae9b61dc08388fbf1b3bfd9e5cf570dd40a0c6
Is the accumulation that still resides in AfterStreamedGenerateData not used at
all?
(https://github.com/blowekamp/itkStreamingSinc/commit/dae948bea0966a2c3924351bf9c15bfcef318ac6#diff-ad64d497b8f9aadd5da97c5e1c793dc9R210)
Just as a side note: The progress reported by itkStreamingStatisticsImageFilter
jumps to 100% for each chunk.
All in all Your itkStreamingSinc and the implemented streaming-filters are
really a great contribution to ITK and I fully recommend incorporating it into ITK.
Many thanks again
Roman
On 17/04/15 15:47, Bradley Lowekamp wrote:
> Hi,
>
> I was able to easy update a the StatisticsImageFilter to use my streaming
> base class for reduction algorithms [1]. It runs basically the same expect
> that you can set the number of stream divisions[2], there is the potential
> for setting the way the input image is split via the RegionSplitter in a base
> class [3].
>
> You should be able to just clone the repository into you ITK/Modules/External
> directory, then enable it in the CMake configuration to use.
>
> Please let me know if it works for you.
>
> This should help :) Brad >
> [1] https://github.com/blowekamp/itkStreamingSinc/blob/master/include/itkStreamingStatisticsImageFilter.h
> [2] https://github.com/blowekamp/itkStreamingSinc/blob/master/test/itkStreamingStatisticsImageFilterTest2.cxx#L61
> [3] https://github.com/blowekamp/itkStreamingSinc/blob/master/include/itkImageSinc.h#L99
>
>
>
> On Apr 17, 2015, at 7:14 AM, Bradley Lowekamp <blowekamp at mail.nih.gov>
> wrote:
>
>> Hello fellow mailing list member,
>>
>> Currently in ITK there are two base classes for streaming images in ITK.
>> The
ImageToImageFilter provide the framework of streaming one input region to one
output region. The other is the StreamingImageFilter which provides the
framework to stream multiple image regions and merge them together into a single
output image. This StatisticsImageFilter needs a framework which consumes
multiple input image regions and reduces the data produced. I happen to have
implemented such a framework here [1]. It currently has the
LabelStatisticsImageFilter implemented in a streaming fashion.
>>
>> Let me give it a try and see how quickly I can get the
>> StatisticsImageFilter
in this framework. Help writing tests would be appreciated.
>>
>> Thanks, Brad
>>
>> [1] https://github.com/blowekamp/itkStreamingSinc
>>
>> On Apr 17, 2015, at 5:08 AM, Dr. Roman Grothausmann <grothausmann.roman at mh-hannover.de> wrote:
>>
>>> Dear mailing list members,
>>>
>>>
>>> I'm wondering why the itkStatisticsImageFilter cannot stream?
>>> Looking into itkStatisticsImageFilter.hxx it requests the whole input in GenerateInputRequestedRegion and EnlargeOutputRequestedRegion but in ThreadedGenerateData only iterates over the outputRegionForThread.
>>> Where in the code is the whole input image needed as one single block?
>>>
>>> Thanks for any hints
>>> Roman
>>>
>>> --
>>> Dr. Roman Grothausmann
>>>
>>> Tomographie und Digitale Bildverarbeitung
>>> Tomography and Digital Image Analysis
>>>
>>> Institut für Funktionelle und Angewandte Anatomie, OE 4120
>>> Medizinische Hochschule Hannover
>>> Carl-Neuberg-Str. 1
>>> D-30625 Hannover
>>>
>>> Tel. +49 511 532-2900
>>> _____________________________________
>>> Powered by 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
>>
>> _____________________________________
>> Powered by 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
>
--
Dr. Roman Grothausmann
Tomographie und Digitale Bildverarbeitung
Tomography and Digital Image Analysis
Institut für Funktionelle und Angewandte Anatomie, OE 4120
Medizinische Hochschule Hannover
Carl-Neuberg-Str. 1
D-30625 Hannover
Tel. +49 511 532-2900
_____________________________________
Powered by 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 Community
mailing list