#include <itkImage.h>
#include <itkImageToImageFilter.h>
#include <itkSimpleFastMutexLock.h>
+#include <fpa/Functors/VertexFunction.h>
namespace fpa
{
typedef typename TImage::RegionType TRegion;
typedef typename TLabels::PixelType TLabel;
+ typedef fpa::Functors::VertexFunction< TIndex, TScalar > TEdgeFunction;
+
protected:
struct _TBoundaryThreadStruct
{
fpa::Common::OriginalRandomWalker, itk::ImageToImageFilter
);
- itkGetConstMacro( Beta, TScalar );
- itkSetMacro( Beta, TScalar );
-
- itkGetConstMacro( Epsilon, TScalar );
- itkSetMacro( Epsilon, TScalar );
-
- itkBooleanMacro( NormalizeWeights );
- itkGetConstMacro( NormalizeWeights, bool );
- itkSetMacro( NormalizeWeights, bool );
+ itkGetConstObjectMacro( EdgeFunction, TEdgeFunction );
+ itkGetObjectMacro( EdgeFunction, TEdgeFunction );
+ itkSetObjectMacro( EdgeFunction, TEdgeFunction );
fpaFilterInputMacro( InputLabels, TLabels );
fpaFilterOutputMacro( OutputProbabilities, TScalarImage );
- public:
- void AddSeed( const TIndex& seed, const TLabel& label );
+ /* TODO
+ public:
+ void AddSeed( const TIndex& seed, const TLabel& label );
+ */
protected:
OriginalRandomWalker( );
virtual void GenerateData( ) override;
- virtual TScalar _W( const TIndex& i, const TIndex& j );
virtual TScalar _L( const TIndex& i, const TIndex& j );
// Boundary construction
Self& operator=( const Self& other );
protected:
- std::vector< TIndex > m_Seeds;
- std::vector< TLabel > m_Labels;
+ /* TODO
+ std::vector< TIndex > m_Seeds;
+ std::vector< TLabel > m_Labels;
+ */
- TScalar m_Beta;
- TScalar m_Epsilon;
- bool m_NormalizeWeights;
+ typename TEdgeFunction::Pointer m_EdgeFunction;
itk::SimpleFastMutexLock m_Mutex;
};