1 // -------------------------------------------------------------------------
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // -------------------------------------------------------------------------
5 #ifndef __cpExtensions__Algorithms__MultiScaleGaussianImageFilter__h__
6 #define __cpExtensions__Algorithms__MultiScaleGaussianImageFilter__h__
8 #include <cpExtensions/Config.h>
10 #include <itkImageToImageFilter.h>
12 namespace cpExtensions
18 template< class I, class O >
19 class MultiScaleGaussianImageFilter
20 : public itk::ImageToImageFilter< I, O >
23 typedef MultiScaleGaussianImageFilter Self;
24 typedef itk::ImageToImageFilter< I, O > Superclass;
25 typedef itk::SmartPointer< Self > Pointer;
26 typedef itk::SmartPointer< const Self > ConstPointer;
28 typedef I TInputImage;
29 typedef O TOutputImage;
31 typedef std::set< double > TScalesContainer;
39 typedef typename O::PixelType _T;
44 bool operator!=( const _Greater& b ) const;
45 bool operator==( const _Greater& b ) const;
46 inline _T operator()( const _T& a ) const;
47 inline _T operator()( const _T& a, const _T& b ) const;
52 itkTypeMacro( MultiScaleGaussianImageFilter, itkImageToImageFilter );
55 void AddScale( const double& s );
56 unsigned long GetNumberOfScales( ) const;
59 MultiScaleGaussianImageFilter( );
60 virtual ~MultiScaleGaussianImageFilter( );
62 virtual void GenerateData( ) cpExtensions_OVERRIDE;
65 void _GenerateData( );
68 // Purposely not implemented.
69 MultiScaleGaussianImageFilter( const Self& );
70 void operator=( const Self& );
73 TScalesContainer m_Scales;
80 #ifndef ITK_MANUAL_INSTANTIATION
81 # include <cpExtensions/Algorithms/MultiScaleGaussianImageFilter.hxx>
82 #endif // ITK_MANUAL_INSTANTIATION
84 #endif // __cpExtensions__Algorithms__MultiScaleGaussianImageFilter__h__