1 #include "MacheteImageFilter.h"
2 #include <cpPlugins/Interface/Image.h>
4 //#include <MacheteImageFilter.h>
6 #include <itkBinaryBallStructuringElement.h>
8 #include <cpExtensions/Algorithms/MacheteImageFilter.h>
10 // -------------------------------------------------------------------------
11 cpPlugins::BasicFilters::MacheteImageFilter::
15 this->_AddInput( "Input" );
16 this->_AddOutput< cpPlugins::Interface::Image >("Output");
18 this->m_Parameters->ConfigureAsReal("Radius");
19 //this->m_Parameters->ConfigureAsPoint("Point", 3, 3);
20 this->m_Parameters->ConfigureAsReal("X");
21 this->m_Parameters->ConfigureAsReal("Y");
22 this->m_Parameters->ConfigureAsReal("Z");
24 this->m_Parameters->SetReal("Radius", 20);
25 //this->m_Parameters->SetPoint("Point", 3, 3);
26 this->m_Parameters->SetReal("X", 30);
27 this->m_Parameters->SetReal("Y", 30);
28 this->m_Parameters->SetReal("Z", 30);
31 // -------------------------------------------------------------------------
32 cpPlugins::BasicFilters::MacheteImageFilter::
37 // -------------------------------------------------------------------------
38 std::string cpPlugins::BasicFilters::MacheteImageFilter::
41 cpPlugins::Interface::Image* image =
42 this->GetInput< cpPlugins::Interface::Image >("Input");
44 return("MacheteImageFilter: No input image.");
46 itk::DataObject* itk_image = NULL;
48 cpPlugins_Image_Demangle_AllScalarTypes(2, image, itk_image, r, _GD0);
49 else cpPlugins_Image_Demangle_AllScalarTypes(3, image, itk_image, r, _GD0);
50 else cpPlugins_Image_Demangle_AllScalarTypes(4, image, itk_image, r, _GD0);
51 else r = "MacheteImageFilter: Input image type not supported.";
55 // -------------------------------------------------------------------------
57 std::string cpPlugins::BasicFilters::MacheteImageFilter::
58 _GD0(itk::DataObject* image)
61 this->_RealGD< I, itk::Image< unsigned char, I::ImageDimension > >(
67 // -------------------------------------------------------------------------
68 template< class I, class O >
69 inline std::string cpPlugins::BasicFilters::MacheteImageFilter::
70 _RealGD(itk::DataObject* image)
72 typedef cpExtensions::Algorithms::MacheteImageFilter< I, O > _F;
73 typedef typename I::PixelType _RT;
77 _RT rad_val = _RT(this->m_Parameters->GetReal("Radius"));
79 double pointx = this->m_Parameters->GetReal("X");
80 double pointy = this->m_Parameters->GetReal("Y");
81 double pointz = this->m_Parameters->GetReal("Z");
84 _F* filter = this->_CreateITK< _F >();
85 filter->SetInput(dynamic_cast<I*>(image));
86 filter->SetRadius(rad_val);
88 filter->SetPoint(pointx, pointy, pointz);
93 cpPlugins::Interface::Image* out =
94 this->GetOutput< cpPlugins::Interface::Image >("Output");
97 out->SetITK< O >( filter->GetOutput( ) );
101 return("MacheteImageFilter: output not correctly created.");