1 // -------------------------------------------------------------------------
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // -------------------------------------------------------------------------
5 #ifndef __CPPLUGINS__EXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
6 #define __CPPLUGINS__EXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
9 #include <itkImageToImageFilter.h>
19 template< class I, class O >
20 class MultiScaleGaussianImageFilter
21 : public itk::ImageToImageFilter< I, O >
24 typedef MultiScaleGaussianImageFilter Self;
25 typedef itk::ImageToImageFilter< I, O > Superclass;
26 typedef itk::SmartPointer< Self > Pointer;
27 typedef itk::SmartPointer< const Self > ConstPointer;
29 typedef I TInputImage;
30 typedef O TOutputImage;
32 typedef std::set< double > TScalesContainer;
48 typedef typename O::PixelType _T;
53 bool operator!=( const _Greater& b ) const;
54 bool operator==( const _Greater& b ) const;
55 inline _T operator()( const _T& a ) const;
56 inline _T operator()( const _T& a, const _T& b ) const;
61 itkTypeMacro( MultiScaleGaussianImageFilter, itkImageToImageFilter );
64 void SetFilterToGradient( );
65 void SetFilterToGradientMagnitude( );
66 void SetFilterToHessian( );
68 bool IsGradientFilter( ) const;
69 bool IsGradientMagnitudeFilter( ) const;
70 bool IsHessianFilter( ) const;
72 void AddScale( const double& s );
73 unsigned long GetNumberOfScales( ) const;
76 MultiScaleGaussianImageFilter( );
77 virtual ~MultiScaleGaussianImageFilter( );
79 virtual void GenerateData( );
82 void _GenerateData( );
85 // Purposely not implemented.
86 MultiScaleGaussianImageFilter( const Self& );
87 void operator=( const Self& );
90 TScalesContainer m_Scales;
100 #include <cpPlugins/Extensions/Algorithms/MultiScaleGaussianImageFilter.hxx>
102 #endif // __CPPLUGINS__EXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__