X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2FImageArithmeticFilters%2FDivideImageFilter.cxx;h=4c36ae2b95a87b97e9eec535f88bcc747cf9baab;hb=683fd9cb190ab6835d4c8b58eb2823dd8fbe0b8e;hp=a802667e20ea4280038527295044be3e24f72958;hpb=6bd5a267c827df95f0c1c8f8c0af0f918bf2b31c;p=cpPlugins.git diff --git a/plugins/ImageArithmeticFilters/DivideImageFilter.cxx b/plugins/ImageArithmeticFilters/DivideImageFilter.cxx index a802667..4c36ae2 100644 --- a/plugins/ImageArithmeticFilters/DivideImageFilter.cxx +++ b/plugins/ImageArithmeticFilters/DivideImageFilter.cxx @@ -1,17 +1,18 @@ -#include +#include #include +#include #include -#include // ------------------------------------------------------------------------- cpPluginsImageArithmeticFilters::DivideImageFilter:: DivideImageFilter( ) : 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::DivideImageFilter:: void cpPluginsImageArithmeticFilters::DivideImageFilter:: _GenerateData( ) { - auto o = this->GetInputData( "Input0" ); - cpPlugins_Demangle_ImageScalars_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::DivideImageFilter:: -_GD0( _TImage* image0 ) +_GD0( _TInput1* input1 ) { - typedef itk::DivideImageFilter< _TImage, _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::DivideImageFilter:: +_GD1( _TInput2* input2, _TInput1* input1 ) +{ + typedef itk::DivideImageFilter< _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