X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2FITKBinaryFunctorFilters%2FBinaryArithmeticImageFilter.cxx;fp=plugins%2FITKBinaryFunctorFilters%2FBinaryArithmeticImageFilter.cxx;h=0000000000000000000000000000000000000000;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=b29748958a111d5aad1f47600f07a4fc3541fffa;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/plugins/ITKBinaryFunctorFilters/BinaryArithmeticImageFilter.cxx b/plugins/ITKBinaryFunctorFilters/BinaryArithmeticImageFilter.cxx deleted file mode 100644 index b297489..0000000 --- a/plugins/ITKBinaryFunctorFilters/BinaryArithmeticImageFilter.cxx +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include - -#include -#include -#include -#include -#include -#include - -// ------------------------------------------------------------------------- -cpPluginsITKBinaryFunctorFilters::BinaryArithmeticImageFilter:: -BinaryArithmeticImageFilter( ) - : Superclass( ) -{ - typedef cpInstances::DataObjects::Image _TImage; - - this->_ConfigureInput< _TImage >( "Input1", true, false ); - this->_ConfigureInput< _TImage >( "Input2", true, false ); - this->_ConfigureOutput< _TImage >( "Output" ); - - std::vector< std::string > choices; - choices.push_back( "Add" ); - choices.push_back( "Subtract" ); - choices.push_back( "Multiply" ); - choices.push_back( "Divide" ); - choices.push_back( "DivideOrZero" ); - choices.push_back( "Pow" ); - this->m_Parameters.ConfigureAsChoices( "Operator", choices ); -} - -// ------------------------------------------------------------------------- -cpPluginsITKBinaryFunctorFilters::BinaryArithmeticImageFilter:: -~BinaryArithmeticImageFilter( ) -{ -} - -// ------------------------------------------------------------------------- -void cpPluginsITKBinaryFunctorFilters::BinaryArithmeticImageFilter:: -_GenerateData( ) -{ - auto o = this->GetInputData( "Input1" ); - cpPlugins_Demangle_Image_IntPixels_AllDims_1( o, _GD0 ) - this->_Error( "Invalid input image." ); -} - -// ------------------------------------------------------------------------- -template< class _TImage > -void cpPluginsITKBinaryFunctorFilters::BinaryArithmeticImageFilter:: -_GD0( _TImage* image1 ) -{ - typedef itk::AddImageFilter< _TImage, _TImage > _TAdd; - typedef itk::SubtractImageFilter< _TImage, _TImage > _TSubtract; - typedef itk::MultiplyImageFilter< _TImage, _TImage > _TMultiply; - typedef itk::DivideImageFilter< _TImage, _TImage, _TImage > _TDivide; - typedef itk::DivideOrZeroOutImageFilter< _TImage, _TImage > _TDivideOrZero; - typedef itk::PowImageFilter< _TImage, _TImage > _TPow; - - auto image2 = this->GetInputData< _TImage >( "Input2" ); - if( image2 == NULL ) - this->_Error( "Incompatible second input image." ); - std::string op = this->m_Parameters.GetSelectedChoice( "Operator" ); - if( op == "Add" ) - this->_GD1< _TAdd, _TImage >( image1, image2 ); - else if( op == "Subtract" ) - this->_GD1< _TSubtract, _TImage >( image1, image2 ); - else if( op == "Multiply" ) - this->_GD1< _TMultiply, _TImage >( image1, image2 ); - else if( op == "Divide" ) - this->_GD1< _TDivide, _TImage >( image1, image2 ); - else if( op == "DivideOrZero" ) - this->_GD1< _TDivideOrZero, _TImage >( image1, image2 ); - else if( op == "Pow" ) - this->_GD1< _TPow, _TImage >( image1, image2 ); -} - -// ------------------------------------------------------------------------- -template< class _TFilter, class _TImage > -void cpPluginsITKBinaryFunctorFilters::BinaryArithmeticImageFilter:: -_GD1( _TImage* image1, _TImage* image2 ) -{ - // Configure filter - auto filter = this->_CreateITK< _TFilter >( ); - filter->SetInput1( image1 ); - filter->SetInput2( image2 ); - filter->Update( ); - - // Connect output - this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) ); -} - -// eof - $RCSfile$