1 #include <IO/SkeletonToImageFilter.h>
3 #include <cpPluginsExtensions/Skeleton.h>
4 #include <cpExtensions/DataStructures/Skeleton.h>
5 #include <cpExtensions/Utility.h>
6 #include <cpPlugins/DataObjects/Image.h>
7 #include <cpPlugins/DataObjects/Image_Demanglers.h>
8 #include <cpExtensions/Algorithms/SkeletonToImageFilter.h>
9 #include <cpExtensions/Algorithms/SkeletonToImageFilter.hxx>
11 // -------------------------------------------------------------------------
12 cpPluginsIO::SkeletonToImageFilter::
13 SkeletonToImageFilter( )
16 typedef cpPlugins::DataObjects::Image _TImage;
17 typedef cpPluginsExtensions::Skeleton _TSkeleton;
18 this->_ConfigureInput< _TImage >( "TemplateImage", true, false );
19 this->_ConfigureInput< _TSkeleton >( "Skeleton", true, false );
20 this->_ConfigureOutput< _TImage >( "Output" );
23 // -------------------------------------------------------------------------
24 cpPluginsIO::SkeletonToImageFilter::
25 ~SkeletonToImageFilter( )
29 // -------------------------------------------------------------------------
30 void cpPluginsIO::SkeletonToImageFilter::
33 auto o = this->GetInputData( "Skeleton" );
34 cpPlugins_Demangle_Skeleton_All_1( o, _GD0 )
35 this->_Error( "Invalid input skeleton type." );
38 // -------------------------------------------------------------------------
39 template< class _TSkeleton >
40 void cpPluginsIO::SkeletonToImageFilter::
41 _GD0( _TSkeleton* skeleton )
43 typedef itk::Image< unsigned char, _TSkeleton::Dimension > _TImage;
44 typedef typename _TImage::Superclass _TImageBase;
45 typedef cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage > _TFilter;
47 auto image = this->GetInputData< _TImageBase >( "TemplateImage" );
49 this->_Error( "Invalid input image." );
51 auto filter = this->_CreateITK< _TFilter >( );
52 filter->SetSkeleton( skeleton );
53 filter->SetTemplateImage( image );
54 filter->SetInsideValue( 100 );
55 filter->SetOutsideValue( 0 );
57 this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );