1 #include <plugins/ImageFilters/BinaryErodeParaImageFilter.h>
2 #include <cpPlugins/Image.h>
3 #include <cpPlugins_Instances_MorphologicalImageFilters.h>
5 // -------------------------------------------------------------------------
6 cpPluginsImageFilters::BinaryErodeParaImageFilter::
7 BinaryErodeParaImageFilter( )
10 this->_AddInput( "Input" );
11 this->_AddOutput< cpPlugins::Image >( "Output" );
12 this->m_Parameters.ConfigureAsReal( "Radius" );
13 this->m_Parameters.ConfigureAsBool( "Circular" );
14 this->m_Parameters.ConfigureAsBool( "UseImageSpacing" );
16 this->m_Parameters.SetReal( "Radius", 3 );
17 this->m_Parameters.SetBool( "Circular", true );
18 this->m_Parameters.SetBool( "UseImageSpacing", false );
21 // -------------------------------------------------------------------------
22 cpPluginsImageFilters::BinaryErodeParaImageFilter::
23 ~BinaryErodeParaImageFilter( )
27 // -------------------------------------------------------------------------
28 void cpPluginsImageFilters::BinaryErodeParaImageFilter::
31 auto image = this->GetInputData< itk::DataObject >( "Input" );
32 cpPlugins_Image_Demangle_Pixel_AllScalars ( _GD0, image, 2 );
33 else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
34 else this->_Error( "No valid input image." );
37 // -------------------------------------------------------------------------
38 template< class _TInputImage >
39 void cpPluginsImageFilters::BinaryErodeParaImageFilter::
40 _GD0( _TInputImage* input_image )
42 typedef itk::BinaryErodeParaImageFilter< _TInputImage > _TFilter;
44 auto filter = this->_CreateITK< _TFilter >( );
45 filter->SetInput( input_image );
46 filter->SetRadius( this->m_Parameters.GetReal( "Radius" ) );
47 filter->SetCircular( this->m_Parameters.GetBool( "Circular" ) );
48 filter->SetUseImageSpacing( this->m_Parameters.GetBool( "UseImageSpacing" ) );
50 this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );