#ifndef __fpa__Image__MoriFilterHelper__h__ #define __fpa__Image__MoriFilterHelper__h__ /* TODO #include #include */ #include #include #include namespace fpa { namespace Image { /** */ template< class _TInputImage, class _TOutputImage > class MoriFilterHelper : public itk::ImageToImageFilter< _TInputImage, _TOutputImage > { public: typedef MoriFilterHelper Self; typedef itk::ImageToImageFilter< _TInputImage, _TOutputImage > Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef _TInputImage TInputImage; typedef _TOutputImage TOutputImage; typedef typename TInputImage::IndexType TIndex; typedef typename TInputImage::PixelType TInputPixel; typedef typename TOutputImage::PixelType TOutputPixel; typedef std::pair< TInputPixel, unsigned long > TCurveData; typedef std::vector< TCurveData > TCurve; /* TODO typedef typename Superclass::TOutput TOutput; typedef typename Superclass::TVertex TVertex; typedef typename Superclass::TGrowFunction TGrowFunction; typedef typename _TInputImage::PixelType TPixel; typedef fpa::Image::Functors::RegionGrow::BinaryThreshold< _TInputImage, TOutput > TBinThresholdFunction; protected: typedef typename Superclass::_TQueueNode _TQueueNode; typedef typename Superclass::_TQueue _TQueue; */ public: itkNewMacro( Self ); itkTypeMacro( fpa::Image::MoriFilterHelper, itk::ImageToImageFilter ); itkGetConstMacro( Seed, TIndex ); itkGetConstMacro( Lower, TInputPixel ); itkGetConstMacro( Upper, TInputPixel ); itkGetConstMacro( Step, TInputPixel ); itkGetConstMacro( OptimumThreshold, typename _TOutputImage::PixelType ); itkGetConstMacro( Curve, TCurve ); itkSetMacro( Seed, TIndex ); itkSetMacro( Lower, TInputPixel ); itkSetMacro( Upper, TInputPixel ); itkSetMacro( Step, TInputPixel ); protected: MoriFilterHelper( ) : Superclass( ) { } virtual ~MoriFilterHelper( ) { } /* TODO virtual bool _ContinueGenerateData( ) override; virtual void _BeforeGenerateData( ) override; virtual void _AfterGenerateData( ) override; virtual void _BeforeLoop( ) override; virtual void _AfterLoop( ) override; virtual bool _UpdateValue( _TQueueNode& v, const _TQueueNode& p ) override; virtual bool _UpdateResult( _TQueueNode& n ) override; */ private: // Purposely not defined MoriFilterHelper( const Self& other ); Self& operator=( const Self& other ); protected: TIndex m_Seed; TInputPixel m_Lower; TInputPixel m_Upper; TInputPixel m_Step; typename _TOutputImage::PixelType m_OptimumThreshold; unsigned long m_ActualCount; TCurve m_Curve; }; } // ecapseman } // ecapseman /* TODO #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION */ #endif // __fpa__Image__MoriFilterHelper__h__ // eof - $RCSfile$