X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2FImageArithmeticFilters%2FAddImageFilter.cxx;h=35f64ecb45925f52a3df568425694467ebf8ec79;hb=683fd9cb190ab6835d4c8b58eb2823dd8fbe0b8e;hp=a0398d6234faa7235290e2651010e00e576e7d3c;hpb=6bd5a267c827df95f0c1c8f8c0af0f918bf2b31c;p=cpPlugins.git diff --git a/plugins/ImageArithmeticFilters/AddImageFilter.cxx b/plugins/ImageArithmeticFilters/AddImageFilter.cxx index a0398d6..35f64ec 100644 --- a/plugins/ImageArithmeticFilters/AddImageFilter.cxx +++ b/plugins/ImageArithmeticFilters/AddImageFilter.cxx @@ -1,17 +1,18 @@ -#include +#include #include +#include #include -#include // ------------------------------------------------------------------------- cpPluginsImageArithmeticFilters::AddImageFilter:: AddImageFilter( ) : Superclass( ) { - this->_ConfigureInput< cpPlugins::DataObjects::Image >( "Input0", true, false ); - this->_ConfigureInput< cpPlugins::DataObjects::Image >( "Input1", true, false ); - this->_ConfigureOutput< cpPlugins::DataObjects::Image >( "Output" ); + typedef cpPlugins::DataObjects::Image _TImage; + this->_ConfigureInput< _TImage >( "Input1", true, false ); + this->_ConfigureInput< _TImage >( "Input2", true, false ); + this->_ConfigureOutput< _TImage >( "Output" ); } // ------------------------------------------------------------------------- @@ -24,26 +25,33 @@ cpPluginsImageArithmeticFilters::AddImageFilter:: void cpPluginsImageArithmeticFilters::AddImageFilter:: _GenerateData( ) { - auto o = this->GetInputData( "Input0" ); - cpPlugins_Demangle_ImageIntegers_Dims( o, _GD0 ); - else this->_Error( "Invalid input image." ); + auto o = this->GetInputData( "Input1" ); + cpPlugins_Demangle_Image_ScalarPixels_AllDims_1( o, _GD0 ) + this->_Error( "Invalid input image (0)." ); } // ------------------------------------------------------------------------- -template< class _TImage > +template< class _TInput1 > void cpPluginsImageArithmeticFilters::AddImageFilter:: -_GD0( _TImage* image0 ) +_GD0( _TInput1* input1 ) { - typedef itk::AddImageFilter< _TImage, _TImage > _TFilter; - - auto image1 = this->GetInputData< _TImage >( "Input1" ); - if( image1 == NULL ) + auto input2 = this->GetInputData< _TInput1 >( "Input2" ); + if( input2 == NULL ) this->_Error( "Incompatible second input image." ); + this->_GD1( input2, input1 ); +} + +// ------------------------------------------------------------------------- +template< class _TInput2, class _TInput1 > +void cpPluginsImageArithmeticFilters::AddImageFilter:: +_GD1( _TInput2* input2, _TInput1* input1 ) +{ + typedef itk::AddImageFilter< _TInput1, _TInput2, _TInput1 > _TFilter; // Configure filter auto filter = this->_CreateITK< _TFilter >( ); - filter->SetInput( 0, image0 ); - filter->SetInput( 1, image1 ); + filter->SetInput1( input1 ); + filter->SetInput2( input2 ); filter->Update( ); // Connect output