X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FAlgorithms%2FGradientImageFunctionBase.h;h=73504954b9870664b98f460d9a048c3d56a5b6c1;hb=aee3cafa7e93f996580777976636ed625dbc43f5;hp=bc6bd3643845e5e3a4d1bf4085922d6b476cd69b;hpb=3393941bf8f26babc7b592db434b40c1b747a687;p=cpPlugins.git diff --git a/lib/cpExtensions/Algorithms/GradientImageFunctionBase.h b/lib/cpExtensions/Algorithms/GradientImageFunctionBase.h index bc6bd36..7350495 100644 --- a/lib/cpExtensions/Algorithms/GradientImageFunctionBase.h +++ b/lib/cpExtensions/Algorithms/GradientImageFunctionBase.h @@ -1,6 +1,8 @@ #ifndef __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__H__ #define __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__H__ +#include +#include #include namespace cpExtensions @@ -10,16 +12,19 @@ namespace cpExtensions /** * Base class to compute values based on image gradients (vector). */ - template< class _TGradient > + template< class _TGradient, class _TMask = itk::Image< unsigned char, _TGradient::ImageDimension > > class GradientImageFunctionBase : public itk::ImageFunction< _TGradient, typename _TGradient::PixelType::ValueType, typename _TGradient::PixelType::ValueType > { public: // Types from input arguments typedef _TGradient TGradient; + typedef _TMask TMask; typedef typename _TGradient::PixelType TVector; typedef typename TVector::ValueType TScalar; - itkStaticConstMacro( Dimension, unsigned int, _TGradient::ImageDimension ); + itkStaticConstMacro( + Dimension, unsigned int, _TGradient::ImageDimension + ); // Standard itk types typedef GradientImageFunctionBase Self; @@ -37,6 +42,9 @@ namespace cpExtensions public: itkTypeMacro( GradientImageFunctionBase, itkImageFunction ); + itkGetConstObjectMacro( Mask, TMask ); + itkSetConstObjectMacro( Mask, TMask ); + public: virtual void Prepare( ) const; virtual TOutput Evaluate( const TPoint& p ) const cpExtensions_OVERRIDE; @@ -53,6 +61,9 @@ namespace cpExtensions // Purposely not implemented. GradientImageFunctionBase( const Self& ); void operator=( const Self& ); + + protected: + typename _TMask::ConstPointer m_Mask; }; } // ecapseman