X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FPlugins%2FBasicFilters%2FMacheteImageFilter.cxx;h=e40ecb192c76217e4b05f44677cac80f1e655ee9;hb=94411ee4209d15d6d1cf25bb817675f76f7ea5c0;hp=ff4e03a57ec2848791a0a758ee65ff53dd37d06b;hpb=053d8cf79b27bbef92a92a076d67e1b94fa509d1;p=cpPlugins.git diff --git a/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.cxx b/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.cxx index ff4e03a..e40ecb1 100644 --- a/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.cxx +++ b/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.cxx @@ -9,85 +9,96 @@ // ------------------------------------------------------------------------- cpPlugins::BasicFilters::MacheteImageFilter:: -MacheteImageFilter( ) - : Superclass( ) +MacheteImageFilter() +: Superclass() { - this->_AddInput( "Input" ); - this->_MakeOutput< cpPlugins::Interface::Image >( "Output" ); + this->_AddInput("Input"); + this->_MakeOutput< cpPlugins::Interface::Image >("Output"); - this->m_Parameters->ConfigureAsUint( "Radius", 2 ); - + this->m_Parameters->ConfigureAsReal("Radius"); + //this->m_Parameters->ConfigureAsPoint("Point", 3, 3); + this->m_Parameters->ConfigureAsReal("X"); + this->m_Parameters->ConfigureAsReal("Y"); + this->m_Parameters->ConfigureAsReal("Z"); + + this->m_Parameters->SetReal("Radius", 20); + //this->m_Parameters->SetPoint("Point", 3, 3); + this->m_Parameters->SetReal("X", 30); + this->m_Parameters->SetReal("Y", 30); + this->m_Parameters->SetReal("Z", 30); } // ------------------------------------------------------------------------- cpPlugins::BasicFilters::MacheteImageFilter:: -~MacheteImageFilter( ) +~MacheteImageFilter() { } // ------------------------------------------------------------------------- std::string cpPlugins::BasicFilters::MacheteImageFilter:: -_GenerateData( ) +_GenerateData() { cpPlugins::Interface::Image* image = - this->GetInput< cpPlugins::Interface::Image >( "Input" ); - if( image == NULL ) - return( "MacheteImageFilter: No input image." ); + this->GetInput< cpPlugins::Interface::Image >("Input"); + if (image == NULL) + return("MacheteImageFilter: No input image."); itk::DataObject* itk_image = NULL; std::string r = ""; - cpPlugins_Image_Demangle_AllScalarTypes( 2, image, itk_image, r, _GD0 ); - else cpPlugins_Image_Demangle_AllScalarTypes( 3, image, itk_image, r, _GD0 ); - else cpPlugins_Image_Demangle_AllScalarTypes( 4, image, itk_image, r, _GD0 ); + cpPlugins_Image_Demangle_AllScalarTypes(2, image, itk_image, r, _GD0); + else cpPlugins_Image_Demangle_AllScalarTypes(3, image, itk_image, r, _GD0); + else cpPlugins_Image_Demangle_AllScalarTypes(4, image, itk_image, r, _GD0); else r = "MacheteImageFilter: Input image type not supported."; - return( r ); + return(r); } // ------------------------------------------------------------------------- template< class I > std::string cpPlugins::BasicFilters::MacheteImageFilter:: -_GD0( itk::DataObject* image ) +_GD0(itk::DataObject* image) { return( this->_RealGD< I, itk::Image< unsigned char, I::ImageDimension > >( - image - ) + image + ) ); } // ------------------------------------------------------------------------- template< class I, class O > inline std::string cpPlugins::BasicFilters::MacheteImageFilter:: -_RealGD( itk::DataObject* image ) +_RealGD(itk::DataObject* image) { typedef cpExtensions::Algorithms::MacheteImageFilter< I, O > _F; - //typedef typename _F::radius _RT; + typedef typename I::PixelType _RT; // Get parameters - //_RT rad_val; - //rad_val.Fill( this->m_Parameters->GetUint( "Radius" ) ); + + _RT rad_val = _RT(this->m_Parameters->GetReal("Radius")); + + double pointx = this->m_Parameters->GetReal("X"); + double pointy = this->m_Parameters->GetReal("Y"); + double pointz = this->m_Parameters->GetReal("Z"); // Configure filter + _F* filter = this->_CreateITK< _F >(); + filter->SetInput(dynamic_cast(image)); + filter->SetRadius(rad_val); + + filter->SetPoint(pointx, pointy, pointz); - _F* filter = this->_CreateITK< _F >(); - filter->SetInput(dynamic_cast< I* >(image)); - filter->SetRadius(this->m_Parameters->GetUint("Radius")); filter->Update(); - //_F* filter = this->_CreateITK< _F >( ); - //filter->SetInput( dynamic_cast< I* >( image ) ); - //filter->Update( ); - // Connect output cpPlugins::Interface::Image* out = - this->GetOutput< cpPlugins::Interface::Image >( "Output" ); - if( out != NULL ) + this->GetOutput< cpPlugins::Interface::Image >("Output"); + if (out != NULL) { - //out->SetITK< O >( filter->GetOutput( ) ); - return( "" ); + out->SetITK< O >( filter->GetOutput( ) ); + return(""); } else - return( "MacheteImageFilter: output not correctly created." ); + return("MacheteImageFilter: output not correctly created."); } // eof - $RCSfile$