X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2FcpExtensions%2FDiscontinuityMapImageFilter.cxx;fp=plugins%2FcpExtensions%2FDiscontinuityMapImageFilter.cxx;h=6d643656051c2c52720ea402ad63291f4b7d9b85;hb=c467ae02a4568c1c245d06ecd5b9ebfd2d0a3b99;hp=0000000000000000000000000000000000000000;hpb=9947c770b79585f718013305a956cf9473a4e0b2;p=cpPlugins.git diff --git a/plugins/cpExtensions/DiscontinuityMapImageFilter.cxx b/plugins/cpExtensions/DiscontinuityMapImageFilter.cxx new file mode 100644 index 0000000..6d64365 --- /dev/null +++ b/plugins/cpExtensions/DiscontinuityMapImageFilter.cxx @@ -0,0 +1,49 @@ +#include "DiscontinuityMapImageFilter.h" +#include + +#include + +// ------------------------------------------------------------------------- +cpPluginscpExtensions::DiscontinuityMapImageFilter:: +DiscontinuityMapImageFilter( ) + : Superclass( ) +{ + typedef cpInstances::DataObjects::Image _TImage; + + this->_ConfigureInput< _TImage >( "Input", true, false ); + this->_ConfigureOutput< _TImage >( "Output" ); + this->m_Parameters.ConfigureAsInt( "Radius", 1 ); + this->m_Parameters.ConfigureAsBool( "UseSquareRoot", false ); +} + +// ------------------------------------------------------------------------- +cpPluginscpExtensions::DiscontinuityMapImageFilter:: +~DiscontinuityMapImageFilter( ) +{ +} + +// ------------------------------------------------------------------------- +void cpPluginscpExtensions::DiscontinuityMapImageFilter:: +_GenerateData( ) +{ + auto o = this->GetInputData( "Input" ); + cpPlugins_Demangle_Image_ScalarPixels_AllDims_1( o, _GD0 ) + this->_Error( "Invalid input image pixel type." ); +} + +// ------------------------------------------------------------------------- +template< class _TInputImage > +void cpPluginscpExtensions::DiscontinuityMapImageFilter:: +_GD0( _TInputImage* input ) +{ + typedef cpExtensions::Algorithms::DiscontinuityMapImageFilter< _TInputImage > _TFilter; + + auto filter = this->_CreateITK< _TFilter >( ); + filter->SetInput( input ); + filter->SetRadius( this->m_Parameters.GetInt( "Radius" ) ); + filter->SetUseSquareRoot( this->m_Parameters.GetBool( "UseSquareRoot" ) ); + filter->Update( ); + this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) ); +} + +// eof - $RCSfile$