1 /* =======================================================================
2 * @author: Leonardo Florez-Valencia
3 * @email: florez-l@javeriana.edu.co
4 * =======================================================================
7 #ifndef __ivq__ITK__BooleanMapSaliencyFunction__h__
8 #define __ivq__ITK__BooleanMapSaliencyFunction__h__
12 #include <itkConceptChecking.h>
13 #include <itkFunctionBase.h>
21 template< class _TIn, class _TOut >
22 class BooleanMapSaliencyFunction
23 : public itk::FunctionBase< _TIn, _TOut >
26 typedef BooleanMapSaliencyFunction Self;
27 typedef itk::FunctionBase< _TIn, _TOut > Superclass;
28 typedef itk::SmartPointer< Self > Pointer;
29 typedef itk::SmartPointer< const Self > ConstPointer;
31 typedef typename Superclass::InputType TInput;
32 typedef typename Superclass::OutputType TOutput;
36 itkTypeMacro( ivq::ITK::BooleanMapSaliencyFunction, itk::FunctionBase );
38 itkBooleanMacro( UseBoundedThresholds );
39 itkGetConstMacro( UseBoundedThresholds, bool );
40 itkSetMacro( UseBoundedThresholds, bool );
43 itkConceptMacro( Concept0, ( itk::Concept::IsFloatingPoint< _TOut > ) );
46 virtual _TOut Evaluate( const _TIn& in ) const override;
48 unsigned int GetNumberOfThresholds( ) const;
49 void ClearThresholds( );
50 void AddThreshold( const _TIn& v );
58 BooleanMapSaliencyFunction( );
59 virtual ~BooleanMapSaliencyFunction( );
62 // Purposely not implemented
63 BooleanMapSaliencyFunction( const Self& other );
64 Self& operator=( const Self& other );
67 std::set< _TIn > m_Thresholds;
68 bool m_UseBoundedThresholds;
75 #ifndef ITK_MANUAL_INSTANTIATION
76 # include <ivq/ITK/BooleanMapSaliencyFunction.hxx>
77 #endif // ITK_MANUAL_INSTANTIATION
79 #endif // __ivq__ITK__BooleanMapSaliencyFunction__h__