Thanks  a lot, that was the problem. Its working now.

________________________________________
Van: Matt McCormick [matt.mccorm...@kitware.com]
Verzonden: maandag 11 september 2017 20:23
Aan: Pfaehler, EAG (ngmb)
CC: Samuel Gerber; insight-developers@itk.org
Onderwerp: Re: [ITK-dev] [ITK] problems itk resample filter

Hi,

One possible issue - make sure that the image viewer applied is
displaying the correct dynamic range so it does just not appear that
there are only zeros after interpolation. 3D Slicer, ITK-SNAP, etc.
support this.

HTH,
Matt



On Sat, Sep 9, 2017 at 1:49 AM, Pfaehler, EAG (ngmb)
<e.a.g.pfaeh...@umcg.nl> wrote:
> Hey,
>
> thanks. I did this, but it did not change anything. However, I used another 
> image (with some higher intensity values) and then I got an image with only 
> 1s.
>
> Can it be the problem that my images have only values from 0-5?
> I also tried an image with only 0 and 1, but als here I get only zeros after 
> interpolation.
>
> ________________________________________
> Van: Matt McCormick [matt.mccorm...@kitware.com]
> Verzonden: vrijdag 8 september 2017 21:27
> Aan: Pfaehler, EAG (ngmb)
> CC: Samuel Gerber; insight-developers@itk.org
> Onderwerp: Re: [ITK-dev] [ITK] problems itk resample filter
>
> Hi,
>
> The Origin should be the same in the resampled image.
>
> HTH,
> Matt
>
> On Fri, Sep 8, 2017 at 3:12 PM, Pfaehler, EAG (ngmb)
> <e.a.g.pfaeh...@umcg.nl> wrote:
>> Thanks Samuel and Matt for the help. However, it is unfortunatly still not 
>> working.
>>
>> I deleted the line resizeFilter->SetTransform, but unfortunately it did not 
>> change anything.
>>
>> Then I tried to set the direction and the origin. But maybe here is the 
>> problem. I set as direction the same direction as in the original image 
>> because I do not want to have any rotation.
>>
>> But I am a bit insecure how to set the origin. First I set the origin in the 
>> resampled image to the same as in the original image, what did not work.
>> Then I tried different things, e.g
>>
>>         origin[0] = origin[0] + inputSpacing[0] * (newWidth - oldWidth);
>>         origin[1] = origin[1] + inputSpacing[1] * (newHeight - oldHeight);
>>         origin[2] = origin[2] + inputSpacing[2] * (newDepth - oldDepth);
>>
>> where newWidth etc is the width of the new image and oldWidth of the 
>> original image. And origin[0] is the x value of the original origin etc.
>>
>> But this was also not working. ( In all of these cases I get an image full 
>> of zeros.
>>
>> If I make originalImage->Print(std::cout) I get the following:
>>
>> Image (000000000282A800)
>>   RTTI typeinfo:   class itk::Image<float,3>
>>   Reference Count: 3
>>   Modified Time: 705
>>   Debug: Off
>>   Object Name:
>>   Observers:
>>     none
>>   Source: (none)
>>   Source output name: (none)
>>   Release Data: Off
>>   Data Released: False
>>   Global Release Data: Off
>>   PipelineMTime: 692
>>   UpdateMTime: 704
>>   RealTimeStamp: 0 seconds
>>   LargestPossibleRegion:
>>     Dimension: 3
>>     Index: [0, 0, 0]
>>     Size: [11, 11, 19]
>>   BufferedRegion:
>>     Dimension: 3
>>     Index: [0, 0, 0]
>>     Size: [11, 11, 19]
>>   RequestedRegion:
>>     Dimension: 3
>>     Index: [0, 0, 0]
>>     Size: [11, 11, 19]
>>   Spacing: [3.1819, 3.1819, 2]
>>   Origin: [48.5757, -171.979, 20.5]
>>   Direction:
>> 1 0 0
>> 0 1 0
>> 0 0 1
>>
>>   IndexToPointMatrix:
>> 3.1819 0 0
>> 0 3.1819 0
>> 0 0 2
>>
>>   PointToIndexMatrix:
>> 0.314278 0 0
>> 0 0.314278 0
>> 0 0 0.5
>>
>>   Inverse Direction:
>> 1 0 0
>> 0 1 0
>> 0 0 1
>>
>>   PixelContainer:
>>     ImportImageContainer (00000000027B59F0)
>>       RTTI typeinfo:   class itk::ImportImageContainer<unsigned 
>> __int64,float>
>>       Reference Count: 1
>>       Modified Time: 701
>>       Debug: Off
>>       Object Name:
>>       Observers:
>>         none
>>       Pointer: 00000000028542E0
>>       Container manages memory: true
>>       Size: 2299
>>       Capacity: 2299
>>
>> If I do the same for the resampled image I get:
>>
>> Image (000000000282B100)
>>   RTTI typeinfo:   class itk::Image<float,3>
>>   Reference Count: 2
>>   Modified Time: 11626
>>   Debug: Off
>>   Object Name:
>>   Observers:
>>     none
>>   Source: (000000000282BB80)
>>   Source output name: Primary
>>   Release Data: Off
>>   Data Released: False
>>   Global Release Data: Off
>>   PipelineMTime: 11614
>>   UpdateMTime: 11627
>>   RealTimeStamp: 0 seconds
>>   LargestPossibleRegion:
>>     Dimension: 3
>>     Index: [0, 0, 0]
>>     Size: [17, 17, 19]
>>   BufferedRegion:
>>     Dimension: 3
>>     Index: [0, 0, 0]
>>     Size: [17, 17, 19]
>>   RequestedRegion:
>>     Dimension: 3
>>     Index: [0, 0, 0]
>>     Size: [17, 17, 19]
>>   Spacing: [2, 2, 2]
>>   Origin: [67.6671, -152.888, 20.5]
>>   Direction:
>> 1 0 0
>> 0 1 0
>> 0 0 1
>>
>>   IndexToPointMatrix:
>> 2 0 0
>> 0 2 0
>> 0 0 2
>>
>>   PointToIndexMatrix:
>> 0.5 0 0
>> 0 0.5 0
>> 0 0 0.5
>>
>>   Inverse Direction:
>> 1 0 0
>> 0 1 0
>> 0 0 1
>>
>>   PixelContainer:
>>     ImportImageContainer (00000000027B5EC0)
>>       RTTI typeinfo:   class itk::ImportImageContainer<unsigned 
>> __int64,float>
>>       Reference Count: 1
>>       Modified Time: 11625
>>       Debug: Off
>>       Object Name:
>>       Observers:
>>         none
>>       Pointer: 0000000002A8D520
>>       Container manages memory: true
>>       Size: 5491
>>       Capacity: 5491
>>
>> Does that maybe help to find out whats going wrong?
>>
>> Thanks in advance
>>
>>
>>
>> ________________________________________
>> Van: Matt McCormick [matt.mccorm...@kitware.com]
>> Verzonden: vrijdag 8 september 2017 15:32
>> Aan: Pfaehler, EAG (ngmb)
>> CC: Samuel Gerber; insight-developers@itk.org
>> Onderwerp: Re: [ITK-dev] [ITK] problems itk resample filter
>>
>> Hi Elli,
>>
>> The OutputOrigin and OutputDirection may need to be set so the
>> sampling grids overlap.
>>
>> HTH,
>> Matt
>>
>> On Fri, Sep 8, 2017 at 9:13 AM, Pfaehler, EAG (ngmb)
>> <e.a.g.pfaeh...@umcg.nl> wrote:
>>> Thanks, I did this. Now I get an image, with the desired size, but there all
>>> image values are 0. I get the same when I use linear interpolation…
>>>
>>> Does someone know, what could be the reason?
>>>
>>>
>>>
>>> Thanks in advance,
>>>
>>>
>>>
>>> Regards
>>>
>>>
>>>
>>> Elli
>>>
>>>
>>>
>>> Van: Samuel Gerber [mailto:samuel.ger...@kitware.com]
>>> Verzonden: vrijdag 8 september 2017 14:51
>>> Aan: Pfaehler, EAG (ngmb)
>>> CC: insight-developers@itk.org
>>> Onderwerp: Re: [ITK] [ITK-dev] problems itk resample filter
>>>
>>>
>>>
>>> I believe you might need to call resizeFilter2->Update()
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Sep 8, 2017 at 8:32 AM, Pfaehler, EAG (ngmb)
>>> <e.a.g.pfaeh...@umcg.nl> wrote:
>>>
>>> Dear all,
>>>
>>>
>>>
>>> I would need some help to resample so that it has isotropic voxels in the
>>> end.
>>>
>>> For this, I wanted to use the Nearest Neighbor Interpolator and the
>>> ResampleFilterType.
>>>
>>> My code is running, but the output of the filter has always the dimensions
>>> [0 0 0], so is not existent.
>>>
>>> What am I doing wrong? (see code below)
>>>
>>>
>>>
>>> Thanks in advance!
>>>
>>> Elli
>>>
>>>
>>>
>>> typedef itk::NearestNeighborInterpolateImageFunction<ImageType, T>
>>> NearestNeighborInterpolatorType;
>>>
>>> typedef itk::ResampleImageFilter<ImageType, ImageType>
>>> ResampleFilterType;
>>>
>>> typedef itk::AffineTransform <double, 3> TransformType;
>>>
>>> //use nearest neighbor interpolation
>>>
>>> typename NearestNeighborInterpolatorType::Pointer
>>> nearestNeighborInterpolator = NearestNeighborInterpolatorType::New();
>>>
>>> typename ImageType::DirectionType direction;
>>>
>>> typename TransformType::Pointer transform = TransformType::New();
>>>
>>>     //transform->SetIdentity();
>>>
>>> typedef itk::NearestNeighborInterpolateImageFunction<ImageType, double>
>>> InterpolatorType;
>>>
>>> //typedef itk::LinearInterpolateImageFunction<ImageType, double >
>>> InterpolatorType;
>>>
>>> typename InterpolatorType::Pointer interpolator = InterpolatorType::New();
>>>
>>>
>>>
>>> typename ResampleFilterType::Pointer resizeFilter2 =
>>> ResampleFilterType::New();
>>>
>>> resizeFilter2->SetTransform(transform);
>>>
>>>
>>>
>>> resizeFilter2->SetInterpolator( interpolator );
>>>
>>> resizeFilter2->SetDefaultPixelValue(0);
>>>
>>>     //resizeFilter2->SetInterpolator();
>>>
>>>
>>>
>>> const typename ImageType::SpacingType& inputSpacing = image->GetSpacing();
>>>
>>> //sampling
>>>
>>> double outputSpacing[3];
>>>
>>>     // Fetch original image size
>>>
>>>    const typename ImageType::RegionType& inputRegion =
>>> image->GetLargestPossibleRegion();
>>>
>>>    const typename ImageType::SizeType& inputSize = inputRegion.GetSize();
>>>
>>>     unsigned int oldWidth = inputSize[0];
>>>
>>>     unsigned int oldHeight = inputSize[1];
>>>
>>>     unsigned int oldDepth = inputSize[2];
>>>
>>>     unsigned int newWidth;
>>>
>>>     unsigned int newHeight;
>>>
>>>     unsigned int newDepth;
>>>
>>>        //get the new height etc of image
>>>
>>>        double minimum = inputSpacing[0];
>>>
>>>        if (inputSpacing[1]<minimum){
>>>
>>>            minimum = inputSpacing[1];
>>>
>>>        }
>>>
>>>        if (inputSpacing[2] < minimum){
>>>
>>>            minimum = inputSpacing[2];
>>>
>>>        }
>>>
>>>        outputSpacing[0] = minimum;
>>>
>>>        outputSpacing[1] = minimum;
>>>
>>>        outputSpacing[2] = minimum;
>>>
>>>        newWidth = (double) oldWidth * inputSpacing[0]/minimum;
>>>
>>>        ewHeight = (double) oldHeight * inputSpacing[1]/minimum;
>>>
>>>        newDepth = (double) oldDepth * inputSpacing[2]/minimum;
>>>
>>>        // Set the output spacing as specified on the command line
>>>
>>>       resizeFilter2->SetOutputSpacing(outputSpacing);
>>>
>>>     // Set the computed size
>>>
>>>     itk::Size<3> outputSize = { {newWidth, newHeight, newDepth} };
>>>
>>>     resizeFilter2->SetSize(outputSize);
>>>
>>>     // Specify the input for the resamplers
>>>
>>>     resizeFilter2->SetInput(image);
>>>
>>>     ImageType::Pointer imageNew = resizeFilter2->GetOutput();
>>>
>>>    const typename ImageType::RegionType& outputRegion =
>>> imageNew->GetLargestPossibleRegion();
>>>
>>>        const typename ImageType::SizeType& outputSize2 =
>>> outputRegion.GetSize();
>>>
>>>
>>>
>>> ________________________________
>>>
>>> De inhoud van dit bericht is vertrouwelijk en alleen bestemd voor de
>>> geadresseerde(n). Anderen dan de geadresseerde(n) mogen geen gebruik maken
>>> van dit bericht, het niet openbaar maken of op enige wijze verspreiden of
>>> vermenigvuldigen. Het UMCG kan niet aansprakelijk gesteld worden voor een
>>> incomplete aankomst of vertraging van dit verzonden bericht.
>>>
>>> The contents of this message are confidential and only intended for the eyes
>>> of the addressee(s). Others than the addressee(s) are not allowed to use
>>> this message, to make it public or to distribute or multiply this message in
>>> any way. The UMCG cannot be held responsible for incomplete reception or
>>> delay of this transferred message.
>>>
>>>
>>> _______________________________________________
>>> 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://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-developers
>>>
>>> _______________________________________________
>>> Community mailing list
>>> commun...@itk.org
>>> http://public.kitware.com/mailman/listinfo/community
>>>
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Samuel Gerber
>>> R&D Engineer
>>> Kitware, Inc.
>>>
>>> ________________________________
>>> De inhoud van dit bericht is vertrouwelijk en alleen bestemd voor de
>>> geadresseerde(n). Anderen dan de geadresseerde(n) mogen geen gebruik maken
>>> van dit bericht, het niet openbaar maken of op enige wijze verspreiden of
>>> vermenigvuldigen. Het UMCG kan niet aansprakelijk gesteld worden voor een
>>> incomplete aankomst of vertraging van dit verzonden bericht.
>>>
>>> The contents of this message are confidential and only intended for the eyes
>>> of the addressee(s). Others than the addressee(s) are not allowed to use
>>> this message, to make it public or to distribute or multiply this message in
>>> any way. The UMCG cannot be held responsible for incomplete reception or
>>> delay of this transferred message.
>>>
>>> _______________________________________________
>>> 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://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-developers
>>>
>> ________________________________
>>  De inhoud van dit bericht is vertrouwelijk en alleen bestemd voor de 
>> geadresseerde(n). Anderen dan de geadresseerde(n) mogen geen gebruik maken 
>> van dit bericht, het niet openbaar maken of op enige wijze verspreiden of 
>> vermenigvuldigen. Het UMCG kan niet aansprakelijk gesteld worden voor een 
>> incomplete aankomst of vertraging van dit verzonden bericht.
>>
>> The contents of this message are confidential and only intended for the eyes 
>> of the addressee(s). Others than the addressee(s) are not allowed to use 
>> this message, to make it public or to distribute or multiply this message in 
>> any way. The UMCG cannot be held responsible for incomplete reception or 
>> delay of this transferred message.
> ________________________________
>  De inhoud van dit bericht is vertrouwelijk en alleen bestemd voor de 
> geadresseerde(n). Anderen dan de geadresseerde(n) mogen geen gebruik maken 
> van dit bericht, het niet openbaar maken of op enige wijze verspreiden of 
> vermenigvuldigen. Het UMCG kan niet aansprakelijk gesteld worden voor een 
> incomplete aankomst of vertraging van dit verzonden bericht.
>
> The contents of this message are confidential and only intended for the eyes 
> of the addressee(s). Others than the addressee(s) are not allowed to use this 
> message, to make it public or to distribute or multiply this message in any 
> way. The UMCG cannot be held responsible for incomplete reception or delay of 
> this transferred message.
________________________________
 De inhoud van dit bericht is vertrouwelijk en alleen bestemd voor de 
geadresseerde(n). Anderen dan de geadresseerde(n) mogen geen gebruik maken van 
dit bericht, het niet openbaar maken of op enige wijze verspreiden of 
vermenigvuldigen. Het UMCG kan niet aansprakelijk gesteld worden voor een 
incomplete aankomst of vertraging van dit verzonden bericht.

The contents of this message are confidential and only intended for the eyes of 
the addressee(s). Others than the addressee(s) are not allowed to use this 
message, to make it public or to distribute or multiply this message in any 
way. The UMCG cannot be held responsible for incomplete reception or delay of 
this transferred message.
_______________________________________________
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://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-developers

Reply via email to