]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Image/RandomWalker.hxx
...
[FrontAlgorithms.git] / lib / fpa / Image / RandomWalker.hxx
index 5fb77681d925dd0a3c7b6b92072094de2fbaf6ac..2e8b46fa607aaa67e2521cb91061100ed0e2e057 100644 (file)
@@ -14,9 +14,9 @@
 #include <fpa/Image/Functors/Dijkstra/Gaussian.h>
 
 // -------------------------------------------------------------------------
-template< class _TInputImage, class _TLabelImage, class _TScalar >
+template< class _TInputImage, class _TLabelImage, class _TScalar, class _TTraits >
 itk::ModifiedTimeType
-fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar >::
+fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar, _TTraits >::
 GetMTime( ) const
 {
   const TLabelImage* labels = this->GetLabels( );
@@ -31,8 +31,8 @@ GetMTime( ) const
 }
 
 // -------------------------------------------------------------------------
-template< class _TInputImage, class _TLabelImage, class _TScalar >
-fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar >::
+template< class _TInputImage, class _TLabelImage, class _TScalar, class _TTraits >
+fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar, _TTraits >::
 RandomWalker( )
   : Superclass( )
 {
@@ -41,15 +41,15 @@ RandomWalker( )
 }
 
 // -------------------------------------------------------------------------
-template< class _TInputImage, class _TLabelImage, class _TScalar >
-fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar >::
+template< class _TInputImage, class _TLabelImage, class _TScalar, class _TTraits >
+fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar, _TTraits >::
 ~RandomWalker( )
 {
 }
 
 // -------------------------------------------------------------------------
-template< class _TInputImage, class _TLabelImage, class _TScalar >
-void fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar >::
+template< class _TInputImage, class _TLabelImage, class _TScalar, class _TTraits >
+void fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar, _TTraits >::
 _BeforeGenerateData( )
 {
   this->Superclass::_BeforeGenerateData( );
@@ -60,9 +60,9 @@ _BeforeGenerateData( )
 }
 
 // -------------------------------------------------------------------------
-template< class _TInputImage, class _TLabelImage, class _TScalar >
-typename fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar >::
-TNodes fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar >::
+template< class _TInputImage, class _TLabelImage, class _TScalar, class _TTraits >
+typename fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar, _TTraits >::
+TNodes fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar, _TTraits >::
 _UnifySeeds( )
 {
   this->m_Seeds.clear( );
@@ -93,7 +93,8 @@ _UnifySeeds( )
         {
           TVertex neigh = lIt.GetIndex( );
           neigh[ d ] += s;
-          is_seed |= ( lbl->GetPixel( neigh ) == 0 );
+          if( reg.IsInside( neigh ) )
+            is_seed |= ( lbl->GetPixel( neigh ) == 0 );
 
         } // rof
 
@@ -101,7 +102,7 @@ _UnifySeeds( )
 
       if( !is_seed )
       {
-        typename TSeedsInterface::TNode node;
+        TNode node;
         node.Vertex = lIt.GetIndex( );
         node.Parent = lIt.GetIndex( );
         node.FrontId = lIt.Get( );
@@ -111,7 +112,7 @@ _UnifySeeds( )
       }
       else
       {
-        typename TSeedsInterface::TSeed seed;
+        TSeed seed;
         seed.Vertex = lIt.GetIndex( );
         seed.IsPoint = false;
         seed.FrontId = lIt.Get( );