1 #include <cpExtensions/SkeletonToImageFilter.h>
2 #include <cpInstances/DataObjects/Image.h>
3 #include <cpInstances/DataObjects/Skeleton.h>
5 #include <cpExtensions/DataStructures/Skeleton.h>
6 #include <cpExtensions/Algorithms/SkeletonToImageFilter.h>
8 // -------------------------------------------------------------------------
9 cpPluginscpExtensions::SkeletonToImageFilter::
10 SkeletonToImageFilter( )
13 this->_ConfigureInput< cpInstances::DataObjects::Skeleton >( "Skeleton", true, false );
14 this->_ConfigureInput< cpInstances::DataObjects::Image >( "TemplateImage", true, false );
15 this->_ConfigureOutput< cpInstances::DataObjects::Image >( "Output" );
16 this->m_Parameters.ConfigureAsUint( "InsideValue", 1 );
17 this->m_Parameters.ConfigureAsUint( "OutsideValue", 0 );
20 // -------------------------------------------------------------------------
21 cpPluginscpExtensions::SkeletonToImageFilter::
22 ~SkeletonToImageFilter( )
26 // -------------------------------------------------------------------------
27 void cpPluginscpExtensions::SkeletonToImageFilter::
30 auto o = this->GetInputData( "Skeleton" );
31 cpPlugins_Demangle_Skeleton_All_1( o, _GD0 )
32 this->_Error( "Invalid input skeleton." );
35 // -------------------------------------------------------------------------
36 template< class _TSkeleton >
37 void cpPluginscpExtensions::SkeletonToImageFilter::
38 _GD0( _TSkeleton* skeleton )
40 typedef itk::ImageBase< _TSkeleton::Dimension > _TImageBase;
41 typedef itk::Image< unsigned char, _TSkeleton::Dimension > _TImage;
42 typedef cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage > _TFilter;
44 auto image = this->GetInputData< _TImageBase >( "TemplateImage" );
45 auto filter = this->_CreateITK< _TFilter >( );
46 filter->SetTemplateImage( image );
47 filter->SetSkeleton( skeleton );
48 filter->SetInsideValue( this->m_Parameters.GetUint( "InsideValue" ) );
49 filter->SetOutsideValue( this->m_Parameters.GetUint( "OutsideValue" ) );
51 this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );