[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