X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FAlgorithms%2FGradientImageFunctionBase.h;h=73504954b9870664b98f460d9a048c3d56a5b6c1;hb=510ac31d52c1ac725baf278243c958e6c564b5b3;hp=d416e04e177928e45718cc0696f1693d5cc75c48;hpb=1df9496bf2f5d456616947d377f991a1022ebf6f;p=cpPlugins.git diff --git a/lib/cpExtensions/Algorithms/GradientImageFunctionBase.h b/lib/cpExtensions/Algorithms/GradientImageFunctionBase.h index d416e04..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,11 +42,14 @@ namespace cpExtensions public: itkTypeMacro( GradientImageFunctionBase, itkImageFunction ); + itkGetConstObjectMacro( Mask, TMask ); + itkSetConstObjectMacro( Mask, TMask ); + public: virtual void Prepare( ) const; - virtual TOutput Evaluate( const TPoint& p ) const ITK_OVERRIDE; - virtual TOutput EvaluateAtIndex( const TIndex& i ) const ITK_OVERRIDE; - virtual TOutput EvaluateAtContinuousIndex( const TContIndex& i ) const ITK_OVERRIDE; + virtual TOutput Evaluate( const TPoint& p ) const cpExtensions_OVERRIDE; + virtual TOutput EvaluateAtIndex( const TIndex& i ) const cpExtensions_OVERRIDE; + virtual TOutput EvaluateAtContinuousIndex( const TContIndex& i ) const cpExtensions_OVERRIDE; protected: GradientImageFunctionBase( ); @@ -53,6 +61,9 @@ namespace cpExtensions // Purposely not implemented. GradientImageFunctionBase( const Self& ); void operator=( const Self& ); + + protected: + typename _TMask::ConstPointer m_Mask; }; } // ecapseman