// ========================================================================= // @author Leonardo Florez Valencia // @email florez-l@javeriana.edu.co // ========================================================================= #ifndef __fpa__Image__Filter__h__ #define __fpa__Image__Filter__h__ #include #include namespace fpa { namespace Image { /** */ template< class _TInputImage, class _TOutputImage > class Filter : public itk::ImageToImageFilter< _TInputImage, _TOutputImage > { public: typedef Filter 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 TVertex; typedef typename TInputImage::PixelType TInputValue; typedef typename TOutputImage::PixelType TOutputValue; typedef std::vector< TVertex > TVertices; protected: Filter( ); virtual ~Filter( ); virtual void GenerateInputRequestedRegion( ) override; virtual void EnlargeOutputRequestedRegion( itk::DataObject* output ) override; virtual TInputValue _GetInputValue( const TVertex& vertex ) const; virtual void _SetOutputValue( const TVertex& vertex, const TOutputValue& value ); virtual void _ConfigureOutputs( const TOutputValue& init_value ); virtual TVertices _GetNeighbors( const TVertex& vertex ) const; }; } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __fpa__Image__Filter__h__ // eof - $RCSfile$