1 #ifndef __FPA__IMAGE__REGIONGROWWITHMULTIPLETHRESHOLDS__H__
2 #define __FPA__IMAGE__REGIONGROWWITHMULTIPLETHRESHOLDS__H__
6 #include <fpa/Image/RegionGrowWithMultipleCriteria.h>
7 #include <fpa/Image/Functors/RegionGrowThresholdFunction.h>
14 * @param I Input image type
17 class RegionGrowWithMultipleThresholds
18 : public RegionGrowWithMultipleCriteria< I >
21 typedef RegionGrowWithMultipleThresholds Self;
22 typedef RegionGrowWithMultipleCriteria< I > Superclass;
23 typedef itk::SmartPointer< Self > Pointer;
24 typedef itk::SmartPointer< const Self > ConstPointer;
26 typedef typename I::PixelType TPixel;
28 typedef std::map< TPixel, unsigned long > THistogram;
29 typedef typename Superclass::TBaseAlgorithm TBaseAlgorithm;
30 typedef typename Superclass::TMembershipFunction TMembershipFunction;
31 typedef typename Superclass::TFunctions TFunctions;
33 typedef std::set< TPixel > TThresholds;
34 typedef fpa::Image::Functors::RegionGrowThresholdFunction< I > TFunction;
37 typedef typename TBaseAlgorithm::_TNode _TNode;
41 itkTypeMacro( RegionGrowWithMultipleThresholds, RegionGrow );
43 itkGetConstMacro( InsideValue, TPixel );
44 itkGetConstMacro( OutsideValue, TPixel );
45 itkGetConstMacro( DifferenceThreshold, double );
47 itkSetMacro( InsideValue, TPixel );
48 itkSetMacro( OutsideValue, TPixel );
49 itkSetMacro( DifferenceThreshold, double );
52 void AddThreshold( const TPixel& v );
60 RegionGrowWithMultipleThresholds( );
61 virtual ~RegionGrowWithMultipleThresholds( );
63 virtual void _BeforeMainLoop( );
64 virtual void _AfterMainLoop( );
65 virtual void _AfterLoop( );
66 virtual bool _UpdateResult( _TNode& n );
67 virtual void _Mark( const _TNode& n );
68 virtual bool _CheckStopCondition( );
71 RegionGrowWithMultipleThresholds( const Self& ); // Not impl.
72 void operator=( const Self& ); // Not impl.
75 TThresholds m_Thresholds;
77 TPixel m_OutsideValue;
78 double m_DifferenceThreshold;
79 THistogram m_Histogram;
80 unsigned long m_TotalCount;
83 TPixel m_StopThreshold;
90 #include <fpa/Image/RegionGrowWithMultipleThresholds.hxx>
92 #endif // __FPA__IMAGE__REGIONGROWWITHMULTIPLETHRESHOLDS__H__