[Insight-users] exception in itk::BSplineScatteredDataPointSetToImageFilter ?

Nicholas Tustison ntustison at gmail.com
Mon Jun 4 11:24:13 EDT 2012


THat looks right.  What is the print out you get
when the exception is thrown?


On Jun 4, 2012, at 11:02 AM, Arnaud Gelas wrote:

> Nick,
> 
> Here is the code (see below), I have been using (adapted from the test)
> 
> Any idea?
> 
> Thanks,
> Arnaud
> 
>      const unsigned int ParametricDimension = 1;
>      typedef itk::PointSet< Vector3DType, ParametricDimension >  PointSetType;
> 
>      int length = m_Lateral - m_AX;
> 
>      CoordinateType dt =
>          static_cast< CoordinateType >( 1. ) / static_cast< CoordinateType >( length );
> 
>      CoordinateType t = 0.;
> 
>      typename PointSetType::Pointer pointSet = PointSetType::New();
> 
>      IndexType idx;
>      idx.Fill( 0 );
> 
>      int i = 0, k = 0;
>      for( int y = m_AX; y <= m_Lateral; y++ )
>        {
>        if( ( y == ax ) || ( y >= m_Bottom ) )
>          {
>          typename PointSetType::PointType pt;
>          pt[0] = t;
> 
>          pointSet->SetPoint( i, pt );
> 
>          Vector3DType v;
>          v[0] = static_cast< typename PointSetType::PointType::CoordRepType >( contour[y] );
>          v[1] = static_cast< typename PointSetType::PointType::CoordRepType >( y );
>          v[2] = 0.;
> 
>          pointSet->SetPointData( i, v );
> 
>          i++;
>          }
> 
>        t += dt;
>        }
> 
>      typedef itk::Image< Vector3DType, ParametricDimension > ParametricImageType;
> 
>      typename ParametricImageType::SpacingType spacing;
>      spacing.Fill( dt );
> 
>      typename ParametricImageType::SizeType size;
>      size.Fill( length + 1 );
> 
>      typename ParametricImageType::PointType origin;
>      origin.Fill( 0. );
> 
>      typedef itk::BSplineScatteredDataPointSetToImageFilter< PointSetType, ParametricImageType > FilterType;
>      typename FilterType::Pointer filter = FilterType::New();
>      filter->SetInput( pointSet );
>      filter->SetSize( size );
>      filter->SetOrigin( origin );
>      filter->SetSpacing( spacing );
>      filter->SetSplineOrder( 3 );
>      filter->SetNumberOfLevels( 1 );
> 
>      typename FilterType::ArrayType ncps;
>      ncps.Fill( 4 );
>      filter->SetNumberOfControlPoints( ncps );
> 
>      filter->SetNumberOfThreads( 1 );
>      filter->SetGenerateOutputImage( true );
>      filter->Update();
> 
> On 06/04/2012 04:55 PM, Nicholas Tustison wrote:
>> Hi Arnaud,
>> 
>> Yes, so that means that one of your data points is outside the
>> user-defined parametric domain.  Even if it is right on the edge,
>> the parametric domain is open-ended on the right side which
>> will cause this exception to be thrown.  How are you setting up
>> your parametric domain?  In other words, what does your call
>> look like when you're setting up the filter?
>> 
>> Nick
>> 
>> 
>> On Jun 4, 2012, at 10:45 AM, Arnaud Gelas wrote:
>> 
>>> Hi Nick,
>>> 
>>> When using itk::BSplineScatteredDataPointSetToImageFilter, I get the following exception
>>> 
>>> itkExceptionMacro( "The reparameterized point component "<<  p[i]
>>> <<  " is outside the corresponding parametric domain of [0,"
>>> <<  totalNumberOfSpans<<  "]." );
>>> 
>>> 
>>> I could not figure out if I made a mistake when setting my parameters? or anything else?
>>> 
>>> Any idea? or suggestion?
>>> 
>>> Thanks,
>>> Arnaud
> 



More information about the Insight-users mailing list