: Superclass( )
{
typedef cpPlugins::Pipeline::DataObject _TData;
+ typedef cpInstances::DataObjects::Image _TImage;
+
+ this->_ConfigureInput< _TImage >( "Input", true, false );
+ this->_ConfigureInput< _TData >( "Seed", true, false );
+ this->_ConfigureOutput< _TImage >( "Output" );
+ this->_ConfigureOutput< _TImage >( "AuxiliaryOutput" );
this->m_Parameters.ConfigureAsInt( "InsideValue", 1 );
this->m_Parameters.ConfigureAsInt( "OutsideValue", 0 );
this->m_Parameters.ConfigureAsReal( "Step", 1 );
this->m_Parameters.ConfigureAsReal( "Lower", 0 );
this->m_Parameters.ConfigureAsReal( "Upper", 1 );
- this->m_Parameters.ConfigureAsReal( "Sensitivity", 1 );
this->m_Parameters.ConfigureAsIntTypesChoices( "ResultType" );
}
typedef fpa::Image::MoriRegionGrow< _TInputImage, _TOutputImage > _TFilter;
auto filter = this->_CreateITK< _TFilter >( );
- this->_ConfigureFilter( filter, image );
+ filter->SetInput( image );
filter->SetInsideValue( this->m_Parameters.GetInt( "InsideValue" ) );
filter->SetOutsideValue( this->m_Parameters.GetInt( "OutsideValue" ) );
filter->SetStep( this->m_Parameters.GetReal( "Step" ) );
filter->SetLower( this->m_Parameters.GetReal( "Lower" ) );
filter->SetUpper( this->m_Parameters.GetReal( "Upper" ) );
- filter->SetSensitivity( this->m_Parameters.GetReal( "Sensitivity" ) );
+
+ // Assign seed
+ auto seeds = this->GetInputData< vtkPolyData >( "Seed" );
+ if( seeds != NULL )
+ {
+ typename _TInputImage::PointType pnt;
+ typename _TInputImage::IndexType idx;
+ unsigned int dim =
+ ( _TInputImage::ImageDimension < 3 )? _TInputImage::ImageDimension: 3;
+ if( seeds->GetNumberOfPoints( ) > 0 )
+ {
+ double buf[ 3 ];
+ seeds->GetPoint( 0, buf );
+ pnt.Fill( 0 );
+ for( unsigned int d = 0; d < dim; ++d )
+ pnt[ d ] = buf[ d ];
+
+ if( image->TransformPhysicalPointToIndex( pnt, idx ) )
+ filter->SetSeed( idx );
+ }
+ else
+ this->_Error( "No given seeds." );
+ }
+ else
+ this->_Error( "No given seeds." );
+
filter->Update( );
this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
+ this->GetOutput( "AuxiliaryOutput" )->SetITK( filter->GetAuxiliaryImage( ) );
}
// eof - $RCSfile$