[Insight-users] Revisiting resampling

Richard Beare richard.beare at gmail.com
Mon Mar 8 19:59:25 EST 2010


Hi,
I've sorted it out. The origin changes, with sampling. Updating it
seems to correct my problems.

On Tue, Mar 9, 2010 at 10:40 AM, Richard Beare <richard.beare at gmail.com> wrote:
> Hi,
> I thought I had sorted out the resampling issue I raised in earlier
> messages, with my error being caused by failing to set an output
> index. However there are still some problems setting the size.
> Basically things aren't quite working using the "obvious" approach and
> I assume I'm missing something simple.
>
> I'm upsampling an image by specifying new spacing (a factor of 2 in my
> test cases). I'm not resampling into the space of an existing image,
> so I need to set things manually. The other oddity is that the image
> is a subset that I've extracted from a larger image. My problem is
> that the "last" planes of the 3D volume, that is those planes with the
> highest index, are all blank, indicating that I'm sampling outside of
> my volume. However, I don't think I should be.
>
> Here's how I'm setting the values:
>
>  typename RawIm::IndexType idx = input->GetLargestPossibleRegion().GetIndex();
>  for (int i = 0; i < dim; i++)
>    {
>    float factor = inputSpacing[i]/NewSpacing[i];
>    size[i] = static_cast< SizeValueType >( inputSize[i] * factor);
>    idx[i] *= factor;
>    }
>
>  resampler->SetSize( size );
>  resampler->SetOutputSpacing( NewSpacing );
>  resampler->SetOutputOrigin( input->GetOrigin() );
>
>  // need to be careful setting the index
>  resampler->SetOutputStartIndex ( idx );
>  resampler->SetOutputDirection(input->GetDirection());
>
> I suspect that I'm miss-indexing somewhere, or there is an interaction
> between size and index that I'm missing. I can't see any reason why I
> shouldn't be able to request a new spacing that is half the original
> and not get twice as many voxels in each dimension.
>
> The image I'm trying to upsample is:
>
> Image (0x2f74460)
>  RTTI typeinfo:   itk::Image<short, 3u>
>  Reference Count: 3
>  Modified Time: 212
>  Debug: Off
>  Observers:
>    none
>  Source: (0x2f72400)
>  Source output index: 0
>  Release Data: Off
>  Data Released: False
>  Global Release Data: Off
>  PipelineMTime: 203
>  UpdateMTime: 213
>  LargestPossibleRegion:
>    Dimension: 3
>    Index: [103, 95, 0]
>    Size: [40, 40, 30]
>  BufferedRegion:
>    Dimension: 3
>    Index: [103, 95, 0]
>    Size: [40, 40, 30]
>  RequestedRegion:
>    Dimension: 3
>    Index: [103, 95, 0]
>    Size: [40, 40, 30]
>  Spacing: [1.25, 1.25, 5]
>  Origin: [-160.625, 120.062, -4.8184]
>  Direction:
> 1 0 0
> 0 -1 0
> 0 0 1
>
>  IndexToPointMatrix:
>  1.25 0 0
> 0 -1.25 0
> 0 0 5
>
>  PointToIndexMatrix:
>  0.8 0 0
> 0 -0.8 0
> 0 0 0.2
>
>  PixelContainer:
>    ImportImageContainer (0x2f74260)
>      RTTI typeinfo:   itk::ImportImageContainer<unsigned long, short>
>      Reference Count: 1
>      Modified Time: 211
>      Debug: Off
>      Observers:
>        none
>      Pointer: 0x2e1b000
>      Container manages memory: true
>      Size: 48000
>      Capacity: 48000
>


More information about the Insight-users mailing list