#define __FPA__IMAGE__REGIONGROWWITHMULTIPLETHRESHOLDS__H__
#include <map>
+#include <set>
#include <fpa/Image/RegionGrowWithMultipleCriteria.h>
+#include <fpa/Image/Functors/RegionGrowThresholdFunction.h>
namespace fpa
{
typedef typename Superclass::TMembershipFunction TMembershipFunction;
typedef typename Superclass::TFunctions TFunctions;
+ typedef std::set< TPixel > TThresholds;
+ typedef fpa::Image::Functors::RegionGrowThresholdFunction< I > TFunction;
+
protected:
typedef typename TBaseAlgorithm::_TNode _TNode;
itkNewMacro( Self );
itkTypeMacro( RegionGrowWithMultipleThresholds, RegionGrow );
- itkGetConstMacro( DerivativeThreshold, double );
- itkSetMacro( DerivativeThreshold, double );
+ itkGetConstMacro( InsideValue, TPixel );
+ itkGetConstMacro( OutsideValue, TPixel );
+ itkGetConstMacro( DifferenceThreshold, double );
+
+ itkSetMacro( InsideValue, TPixel );
+ itkSetMacro( OutsideValue, TPixel );
+ itkSetMacro( DifferenceThreshold, double );
public:
void AddThreshold( const TPixel& v );
RegionGrowWithMultipleThresholds( );
virtual ~RegionGrowWithMultipleThresholds( );
- virtual bool _UpdateResult( _TNode& n );
- virtual void _BeforeLoop( );
+ virtual void _BeforeMainLoop( );
+ virtual void _AfterMainLoop( );
virtual void _AfterLoop( );
+ virtual bool _UpdateResult( _TNode& n );
+ virtual void _Mark( const _TNode& n );
+ virtual bool _CheckStopCondition( );
private:
RegionGrowWithMultipleThresholds( const Self& ); // Not impl.
void operator=( const Self& ); // Not impl.
protected:
- double m_DerivativeThreshold;
+ TThresholds m_Thresholds;
+ TPixel m_InsideValue;
+ TPixel m_OutsideValue;
+ double m_DifferenceThreshold;
THistogram m_Histogram;
+ unsigned long m_TotalCount;
+ double m_LastDiff;
+ bool m_StopForced;
+ TPixel m_StopThreshold;
};
} // ecapseman