]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/Algorithms/MultiScaleGaussianImageFilter.h
Cast image filter added. ROI filter modified.
[cpPlugins.git] / lib / cpExtensions / Algorithms / MultiScaleGaussianImageFilter.h
index 2ad1b5072c26264d1aa6be9f3fd1e8b88816786e..63fb8a8771dd37e9f5ecf0f71b23fce62d891b95 100644 (file)
@@ -2,99 +2,85 @@
 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
 // -------------------------------------------------------------------------
 
-#ifndef __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
+#ifndef __cpExtensions__Algorithms__MultiScaleGaussianImageFilter__h__
+#define __cpExtensions__Algorithms__MultiScaleGaussianImageFilter__h__
 
+#include <cpExtensions/Config.h>
 #include <set>
 #include <itkImageToImageFilter.h>
 
 namespace cpExtensions
+{
+  namespace Algorithms
   {
-    namespace Algorithms
+    /**
+     */
+    template< class I, class O >
+    class MultiScaleGaussianImageFilter
+      : public itk::ImageToImageFilter< I, O >
     {
+    public:
+      typedef MultiScaleGaussianImageFilter   Self;
+      typedef itk::ImageToImageFilter< I, O > Superclass;
+      typedef itk::SmartPointer< Self >       Pointer;
+      typedef itk::SmartPointer< const Self > ConstPointer;
+
+      typedef I TInputImage;
+      typedef O TOutputImage;
+
+      typedef std::set< double > TScalesContainer;
+
+    protected:
       /**
        */
-      template< class I, class O >
-      class MultiScaleGaussianImageFilter
-        : public itk::ImageToImageFilter< I, O >
+      class _Greater
       {
       public:
-        typedef MultiScaleGaussianImageFilter   Self;
-        typedef itk::ImageToImageFilter< I, O > Superclass;
-        typedef itk::SmartPointer< Self >       Pointer;
-        typedef itk::SmartPointer< const Self > ConstPointer;
-
-        typedef I TInputImage;
-        typedef O TOutputImage;
-
-        typedef std::set< double > TScalesContainer;
-
-        enum FilterId
-        {
-          Gradient = 0,
-          GradientMagnitude,
-          Hessian,
-          None
-        };
-
-      protected:
-        /**
-         */
-        class _Greater
-        {
-        public:
-          typedef typename O::PixelType _T;
-
-        public:
-          _Greater( );
-          virtual ~_Greater( );
-          bool operator!=( const _Greater& b ) const;
-          bool operator==( const _Greater& b ) const;
-          inline _T operator()( const _T& a ) const;
-          inline _T operator()( const _T& a, const _T& b ) const;
-        };
+        typedef typename O::PixelType _T;
 
       public:
-        itkNewMacro( Self );
-        itkTypeMacro( MultiScaleGaussianImageFilter, itkImageToImageFilter );
-
-      public:
-        void SetFilterToGradient( );
-        void SetFilterToGradientMagnitude( );
-        void SetFilterToHessian( );
+        _Greater( );
+        virtual ~_Greater( );
+        bool operator!=( const _Greater& b ) const;
+        bool operator==( const _Greater& b ) const;
+        inline _T operator()( const _T& a ) const;
+        inline _T operator()( const _T& a, const _T& b ) const;
+      };
 
-        bool IsGradientFilter( ) const;
-        bool IsGradientMagnitudeFilter( ) const;
-        bool IsHessianFilter( ) const;
+    public:
+      itkNewMacro( Self );
+      itkTypeMacro( MultiScaleGaussianImageFilter, itkImageToImageFilter );
 
-        void AddScale( const double& s );
-        unsigned long GetNumberOfScales( ) const;
+    public:
+      void AddScale( const double& s );
+      unsigned long GetNumberOfScales( ) const;
 
-      protected:
-        MultiScaleGaussianImageFilter( );
-        virtual ~MultiScaleGaussianImageFilter( );
+    protected:
+      MultiScaleGaussianImageFilter( );
+      virtual ~MultiScaleGaussianImageFilter( );
 
-        virtual void GenerateData( );
+      virtual void GenerateData( ) cpExtensions_OVERRIDE;
 
-        template< class F >
-        void _GenerateData( );
+      template< class F >
+      void _GenerateData( );
 
-      private:
-        // Purposely not implemented.
-        MultiScaleGaussianImageFilter( const Self& );
-        void operator=( const Self& );
+    private:
+      // Purposely not implemented.
+      MultiScaleGaussianImageFilter( const Self& );
+      void operator=( const Self& );
 
-      protected:
-        TScalesContainer m_Scales;
-        FilterId m_FilterId;
-      };
+    protected:
+      TScalesContainer m_Scales;
+    };
 
   } // ecapseman
 
 } // ecapseman
 
-#include <cpExtensions/Algorithms/MultiScaleGaussianImageFilter.hxx>
+#ifndef ITK_MANUAL_INSTANTIATION
+#  include <cpExtensions/Algorithms/MultiScaleGaussianImageFilter.hxx>
+#endif // ITK_MANUAL_INSTANTIATION
 
-#endif // __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
+#endif // __cpExtensions__Algorithms__MultiScaleGaussianImageFilter__h__
 
 // eof - $RCSfile$