X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FImage%2FRandomWalker.h;h=213eb976b38c28f22da5d3e9d7e272d842215d33;hb=75a965968c4234c08e1ad1700ee5bc8da6362eba;hp=98b949203b863a5984f4182373b57e1bbd508ce8;hpb=c9542e420b94b0bfc1f285599f7816eab1191519;p=FrontAlgorithms.git diff --git a/lib/fpa/Image/RandomWalker.h b/lib/fpa/Image/RandomWalker.h index 98b9492..213eb97 100644 --- a/lib/fpa/Image/RandomWalker.h +++ b/lib/fpa/Image/RandomWalker.h @@ -20,72 +20,26 @@ namespace fpa { /** */ - template< class _TInputImage, class _TLabelImage, class _TScalar > - class RandomWalkerTraits - : public fpa::Image::DefaultTraits< _TInputImage, itk::Image< _TScalar, _TInputImage::ImageDimension >, typename _TLabelImage::PixelType > - { - public: - typedef RandomWalkerTraits Self; - typedef _TInputImage TInputImage; - typedef _TLabelImage TLabelImage; - typedef _TScalar TScalar; - typedef typename _TLabelImage::PixelType TFrontId; - typedef itk::Image< TScalar, _TInputImage::ImageDimension > TOutputImage; - typedef fpa::Image::DefaultTraits< TInputImage, TOutputImage, TFrontId > Superclass; - - typedef typename Superclass::TVertex TVertex; - typedef typename Superclass::TInputValue TInputValue; - typedef typename Superclass::TPoint TPoint; - typedef typename Superclass::TOutputValue TOutputValue; - typedef typename Superclass::TCompare TCompare; - typedef typename Superclass::TNeighborhood TNeighborhood; - typedef typename Superclass::TFilter TFilter; - - typedef fpa::Image::LabelledSeedsInterface< TVertex, TPoint, TInputValue, TOutputValue, TFrontId, TCompare > TSeedsInterface; - typedef fpa::Base::MarksInterface< TVertex > TMarksInterface; - - typedef typename TSeedsInterface::TNode TNode; - typedef typename TSeedsInterface::TNodes TNodes; - typedef typename TSeedsInterface::TSeed TSeed; - typedef typename TSeedsInterface::TSeeds TSeeds; - - public: - itkConceptMacro( - Check_SameDimension, - ( itk::Concept::SameDimension< TInputImage::ImageDimension, TLabelImage::ImageDimension > ) - ); - - private: - // Purposely not implemented. - RandomWalkerTraits( ); - RandomWalkerTraits( const Self& other ); - virtual ~RandomWalkerTraits( ); - Self& operator=( const Self& other ); - }; - - /** - */ - template< class _TInputImage, class _TLabelImage, class _TScalar > + template< class _TInputImage, class _TLabelImage, class _TScalar, class _TTraits = fpa::Image::DefaultTraits< _TInputImage, itk::Image< _TScalar, _TInputImage::ImageDimension >, typename _TLabelImage::PixelType > > class RandomWalker - : public fpa::Base::DijkstraBase< fpa::Image::Algorithm< fpa::Image::RandomWalkerTraits< _TInputImage, _TLabelImage, _TScalar > > > + : public fpa::Base::DijkstraBase< fpa::Image::Algorithm< _TTraits, fpa::Base::MarksInterface< _TTraits >, fpa::Image::LabelledSeedsInterface< _TTraits > > > { public: typedef _TInputImage TInputImage; typedef _TLabelImage TLabelImage; typedef _TScalar TScalar; + typedef _TTraits TTraits; + fpa_Base_TraitTypes( typename TTraits ); - typedef fpa::Image::RandomWalkerTraits< TInputImage, TLabelImage, TScalar > TTraits; - typedef fpa::Image::Algorithm< TTraits > TAlgorithm; - typedef fpa::Base::DijkstraBase< TAlgorithm > Superclass; - typedef RandomWalker Self; - typedef itk::SmartPointer< Self > Pointer; - typedef itk::SmartPointer< const Self > ConstPointer; - - typedef typename TTraits::TNode TNode; - typedef typename TTraits::TNodes TNodes; - typedef typename TTraits::TSeed TSeed; - typedef typename TTraits::TVertex TVertex; + typedef fpa::Base::MarksInterface< TTraits > TMarksInterface; + typedef fpa::Image::LabelledSeedsInterface< TTraits > TSeedsInterface; + typedef fpa::Image::Algorithm< TTraits, TMarksInterface, TSeedsInterface > TAlgorithm; + typedef fpa::Base::DijkstraBase< TAlgorithm > Superclass; + typedef RandomWalker Self; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + typedef fpa::Image::Functors::Dijkstra::Function< TInputImage, TScalar > TWeightFunction; public: