[Community] [Insight-users] Resampling: defining the output size at 'runtime' (Update-time) relative to the input size
Matt McCormick
matt.mccormick at kitware.com
Wed Oct 16 10:56:30 EDT 2013
Hi Vaaksiainen,
The filter should implement a GenerateOutputInformation() [1] method
that does the size calculation there and assigns it to the output
ImageRegion's.
Hope this helps,
Matt
[1] http://www.itk.org/Doxygen/html/classitk_1_1ProcessObject.html#abe61fb6b7de8c443e7af1561bd722736
On Wed, Oct 16, 2013 at 2:42 PM, Vaaksiainen <vaaksiainen at gmail.com> wrote:
> Thanks for your quick reply, really appreciate.
>
> I could well be using itk::ScaleTransform but I use simply resampling over
> hand written spacing. I think my problem is in fact in pipelining:
>
> void ResampleImageFilterEx<TInputImage,TOutputImage>::GenerateData()
> {
> //....
> typename TInputImage::RegionType roi =
> this->GetOutput()->GetRequestedRegion();
> typename TInputImage::SpacingType spacing =
> this->GetInput()->GetSpacing();
> typename TInputImage::SizeType size = roi.GetSize();
>
> for ( unsigned int i = 0; i < TInputImage::ImageDimension; ++i)
> {
> spacing[i] /= m_Decimation;
> size[i] = (unsigned int)( (double)size[i] * m_Decimation );
> }
> itk::ResampleImageFilter<TInputImage,TOutputImage>::Pointer resampler =
> itk::ResampleImageFilter<TInputImage,TOutputImage>::New();
>
> resampler->SetOutputSpacing( inputSpacing );
> resampler->SetSize( inputSize );
> resampler->SetInput( this->GetInput() );
>
> resampler->GraftOutput( this->GetOutput() );
> resampler->Update();
> resampler->GraftOutput( pyrup->GetOutput() );
> }
>
> but if m_Decimation (or scale parameter) is given as parameter and input yet
> unknown, I can't get regions propagating correctly. Because eventually I
> want to call Update only for the tail filter.
>
> Best,
> -Vaaksiainen
>
>
>
> 2013/10/16 Mike Chinander <chinander at gmail.com>
>>
>> Check out the following example:
>> http://www.itk.org/Wiki/ITK/Examples/ImageProcessing/ScaleTransform
>>
>>
>> On Wed, Oct 16, 2013 at 9:10 AM, Vaaksiainen <vaaksiainen at gmail.com>
>> wrote:
>>>
>>> Hi folks,
>>>
>>> itk::ResampleImageFilter requires size being set before Update() so far
>>> that I've understood it.
>>>
>>> That being said, I'd wish to implement resize image filter (derivative
>>> for before mentioned) which samples the image based on scaling parameter
>>> relative to its input size e.g.
>>>
>>> newWidth = scaling * oldWidth
>>>
>>> which I figure out at GenerateData() and yet, I'd wish to be able to put
>>> this filter in the pipeline not knowing the size of the input image, e.g.
>>>
>>> Reader -> Filter#1 -> ResampleImageFilterEx -> Filter#2 -> Writer
>>>
>>> How PropagateRequestedRegion() works and how its implemented in
>>> itk::ResampleImageFilter I'm not sure if I can do this at all.
>>>
>>> Please, any advice?
>>>
>>> Best,
>>> -Vaaksiainen
>>>
>>>
>>>
>>>
>>>
>>> _____________________________________
>>> 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://www.itk.org/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://www.itk.org/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://www.itk.org/mailman/listinfo/insight-users
>
> _______________________________________________
> Community mailing list
> Community at itk.org
> http://public.kitware.com/cgi-bin/mailman/listinfo/community
>
_____________________________________
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://www.itk.org/mailman/listinfo/insight-users
More information about the Community
mailing list