X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2FImageArithmeticFilters%2FSubtractImageFilter.cxx;h=5081d5446051f5e060be2af417375deeb7a1d66d;hb=683fd9cb190ab6835d4c8b58eb2823dd8fbe0b8e;hp=0b0c1cf1359d550c95cfae6bf4219f361af07eef;hpb=6bd5a267c827df95f0c1c8f8c0af0f918bf2b31c;p=cpPlugins.git diff --git a/plugins/ImageArithmeticFilters/SubtractImageFilter.cxx b/plugins/ImageArithmeticFilters/SubtractImageFilter.cxx index 0b0c1cf..5081d54 100644 --- a/plugins/ImageArithmeticFilters/SubtractImageFilter.cxx +++ b/plugins/ImageArithmeticFilters/SubtractImageFilter.cxx @@ -1,17 +1,18 @@ -#include +#include #include +#include #include -#include // ------------------------------------------------------------------------- cpPluginsImageArithmeticFilters::SubtractImageFilter:: SubtractImageFilter( ) : 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::SubtractImageFilter:: void cpPluginsImageArithmeticFilters::SubtractImageFilter:: _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::SubtractImageFilter:: -_GD0( _TImage* image0 ) +_GD0( _TInput1* input1 ) { - typedef itk::SubtractImageFilter< _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::SubtractImageFilter:: +_GD1( _TInput2* input2, _TInput1* input1 ) +{ + typedef itk::SubtractImageFilter< _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