[ITK-users] Splitting and repasting a volume with overlap

Pol Monsó Purtí lluna.nova at gmail.com
Mon Mar 16 10:16:05 EDT 2015


Mmh, I believe I misread the RegionOfInterestImageFilter documentation,
confusing dimension with size. That should work.

I still have the computation of the splitting regions problem to handle,
but maybe with this filter is easier than with the ExtractImageFilter. Or
maybe it just removes step 7?

Is there a way to ease the repasting back to the original region with it?
How should I use the physical space index?

2015-03-16 14:25 GMT+01:00 Pol Monsó Purtí <lluna.nova at gmail.com>:

> Hello Bradley,
>
> Thank you for your answer and suggestion.
>
> Answering your question: It's not for multi-threading purposes, I have to
> split the image due to memory limitations.
>
> I would use extractImage directly and do streaming, but the client and the
> low-level libraries might not work correctly if I do that. I have to
> provide itk images disconnected from the pipeline and with proper indexes
> and sizes.
>
> The RegionOfInterestImageFilter would have the same memory footprint, and
> it would still be tricky to compute the regions of interest, due to the
> overlapping.
>
>
>
> 2015-03-16 14:00 GMT+01:00 Bradley Lowekamp <blowekamp at mail.nih.gov>:
>
>> Hello,
>>
>> The RegionOfInterestImageFilter[1] is very similar to the
>> ExtractImageFilter, but returns an image whose starting index is always
>> zeros.
>>
>> The process you described is remarkable close to what occur in each
>> filter for the multi-threading process.  Also what occurs in the
>> StreamingImageFilter is very similar, but just copies the region.
>>
>> As you didn't mention you motivation for chunking the data this way be it
>> for threading or memory requirements, I can't fully advise.
>>
>> Brad
>>
>>
>> [1 ]
>> http://www.itk.org/Doxygen/html/classitk_1_1RegionOfInterestImageFilter.html
>> [2]
>> https://github.com/InsightSoftwareConsortium/ITK/blob/b184194869ac6407fcbb4e309710894cfc84466f/Modules/Core/Common/include/itkStreamingImageFilter.hxx#L194-L213
>>
>>
>> On Mar 16, 2015, at 7:37 AM, Pol Monsó Purtí <lluna.nova at gmail.com>
>> wrote:
>>
>> > Hello everyone,
>> >
>> > We need to split a volume into pieces, overlaped by a certain amount,
>> do some computation and then repaste them.
>> >
>> > The computation requires the pieces' region indexes to be set to zero.
>> The original volume might not have index at zero, but be a subregion itself.
>> >
>> > What is the best way to achieve this?
>> >
>> > I've thought of the following pipeline:
>> >
>> > 1. imageRegionSplitterSlowDimension
>> > 2. Store the index and size of each region
>> > 3. manually increase the size of each region (and modify index)
>> > 4. crop with the largestPossibleRegion of the original volume (to
>> prevent requesting more than available)
>> > iterate over regions:
>> >       5. extractImageFilter
>> >       6. disconnect pipeline for each region
>> >       7. reset indexes
>> >       8. perform computation
>> >       9. crop with the regions in step 1 to remove the added overlap
>> >       10. restore indexes
>> > 11. pasteImageFilter
>> >
>> > I'll have to think of a smart way to deal with the index
>> restore/cropping of steps 9 and 10.
>> >
>> > I somehow feel somebody will have already dealt with this... And
>> there's certainly a better way to do it.
>> > _____________________________________
>> > 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
>>
>>
>
> 2015-03-16 14:00 GMT+01:00 Bradley Lowekamp <blowekamp at mail.nih.gov>:
>
>> Hello,
>>
>> The RegionOfInterestImageFilter[1] is very similar to the
>> ExtractImageFilter, but returns an image whose starting index is always
>> zeros.
>>
>> The process you described is remarkable close to what occur in each
>> filter for the multi-threading process.  Also what occurs in the
>> StreamingImageFilter is very similar, but just copies the region.
>>
>> As you didn't mention you motivation for chunking the data this way be it
>> for threading or memory requirements, I can't fully advise.
>>
>> Brad
>>
>>
>> [1 ]
>> http://www.itk.org/Doxygen/html/classitk_1_1RegionOfInterestImageFilter.html
>> [2]
>> https://github.com/InsightSoftwareConsortium/ITK/blob/b184194869ac6407fcbb4e309710894cfc84466f/Modules/Core/Common/include/itkStreamingImageFilter.hxx#L194-L213
>>
>>
>> On Mar 16, 2015, at 7:37 AM, Pol Monsó Purtí <lluna.nova at gmail.com>
>> wrote:
>>
>> > Hello everyone,
>> >
>> > We need to split a volume into pieces, overlaped by a certain amount,
>> do some computation and then repaste them.
>> >
>> > The computation requires the pieces' region indexes to be set to zero.
>> The original volume might not have index at zero, but be a subregion itself.
>> >
>> > What is the best way to achieve this?
>> >
>> > I've thought of the following pipeline:
>> >
>> > 1. imageRegionSplitterSlowDimension
>> > 2. Store the index and size of each region
>> > 3. manually increase the size of each region (and modify index)
>> > 4. crop with the largestPossibleRegion of the original volume (to
>> prevent requesting more than available)
>> > iterate over regions:
>> >       5. extractImageFilter
>> >       6. disconnect pipeline for each region
>> >       7. reset indexes
>> >       8. perform computation
>> >       9. crop with the regions in step 1 to remove the added overlap
>> >       10. restore indexes
>> > 11. pasteImageFilter
>> >
>> > I'll have to think of a smart way to deal with the index
>> restore/cropping of steps 9 and 10.
>> >
>> > I somehow feel somebody will have already dealt with this... And
>> there's certainly a better way to do it.
>> > _____________________________________
>> > 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
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20150316/09aec65f/attachment.html>


More information about the Insight-users mailing list