1 // -------------------------------------------------------------------------
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // -------------------------------------------------------------------------
5 #ifndef __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
6 #define __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
9 #include <itkImageToImageFilter.h>
11 namespace cpExtensions
17 template< class I, class O >
18 class MultiScaleGaussianImageFilter
19 : public itk::ImageToImageFilter< I, O >
22 typedef MultiScaleGaussianImageFilter Self;
23 typedef itk::ImageToImageFilter< I, O > Superclass;
24 typedef itk::SmartPointer< Self > Pointer;
25 typedef itk::SmartPointer< const Self > ConstPointer;
27 typedef I TInputImage;
28 typedef O TOutputImage;
30 typedef std::set< double > TScalesContainer;
38 typedef typename O::PixelType _T;
43 bool operator!=( const _Greater& b ) const;
44 bool operator==( const _Greater& b ) const;
45 inline _T operator()( const _T& a ) const;
46 inline _T operator()( const _T& a, const _T& b ) const;
51 itkTypeMacro( MultiScaleGaussianImageFilter, itkImageToImageFilter );
54 void AddScale( const double& s );
55 unsigned long GetNumberOfScales( ) const;
58 MultiScaleGaussianImageFilter( );
59 virtual ~MultiScaleGaussianImageFilter( );
61 virtual void GenerateData( ) ITK_OVERRIDE;
64 void _GenerateData( );
67 // Purposely not implemented.
68 MultiScaleGaussianImageFilter( const Self& );
69 void operator=( const Self& );
72 TScalesContainer m_Scales;
79 #ifndef ITK_MANUAL_INSTANTIATION
80 #include <cpExtensions/Algorithms/MultiScaleGaussianImageFilter.hxx>
81 #endif // ITK_MANUAL_INSTANTIATION
83 #endif // __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__