X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FImage%2FDijkstra.hxx;h=bf6b5f09d67f99382f012d75b129d0921adf12bc;hb=490e6f877a3537463de4281b0366337ab73ced99;hp=b81a533ba25d5dd139062e67114692c48bb34747;hpb=56b8bb48cc05a297a3faa264f8f2a88de21ef203;p=FrontAlgorithms.git diff --git a/lib/fpa/Image/Dijkstra.hxx b/lib/fpa/Image/Dijkstra.hxx index b81a533..bf6b5f0 100644 --- a/lib/fpa/Image/Dijkstra.hxx +++ b/lib/fpa/Image/Dijkstra.hxx @@ -1,15 +1,22 @@ -#ifndef __FPA__IMAGE__DIJKSTRA__HXX__ -#define __FPA__IMAGE__DIJKSTRA__HXX__ +#ifndef __fpa__Image__Dijkstra__hxx__ +#define __fpa__Image__Dijkstra__hxx__ + +#include // ------------------------------------------------------------------------- template< class _TInputImage, class _TOutputImage > fpa::Image::Dijkstra< _TInputImage, _TOutputImage >:: Dijkstra( ) - : Superclass( ), - m_UseImageSpacing( false ) + : Superclass( ) { + typedef + fpa::Image::Functors::SimpleDijkstraCost< _TInputImage, TOutput > + _TCost; + + typename _TCost::Pointer cost = _TCost::New( ); + this->SetCostFunction( cost ); } - + // ------------------------------------------------------------------------- template< class _TInputImage, class _TOutputImage > fpa::Image::Dijkstra< _TInputImage, _TOutputImage >:: @@ -19,24 +26,18 @@ fpa::Image::Dijkstra< _TInputImage, _TOutputImage >:: // ------------------------------------------------------------------------- template< class _TInputImage, class _TOutputImage > -typename fpa::Image::Dijkstra< _TInputImage, _TOutputImage >:: -TScalar fpa::Image::Dijkstra< _TInputImage, _TOutputImage >:: -_Cost( const TVertex& a, const TVertex& b ) const +void fpa::Image::Dijkstra< _TInputImage, _TOutputImage >:: +_BeforeGenerateData( ) { - auto input = this->GetInput( ); - TScalar coeff = TScalar( 1 ); - if( this->m_UseImageSpacing ) - { - typename _TInputImage::PointType pa, pb; - input->TransformIndexToPhysicalPoint( a, pa ); - input->TransformIndexToPhysicalPoint( b, pb ); - coeff = TScalar( pa.EuclideanDistanceTo( pb ) ); - - } // fi - TScalar va = TScalar( input->GetPixel( a ) ); - return( va * coeff ); + this->Superclass::_BeforeGenerateData( ); + + TCostFunction* cost = + dynamic_cast< TCostFunction* >( this->GetCostFunction( ) ); + if( cost == NULL ) + itkExceptionMacro( << "CostFunction not well defined." ); + cost->SetImage( this->GetInput( ) ); } -#endif // __FPA__IMAGE__DIJKSTRA__HXX__ +#endif // __fpa__Image__Dijkstra__hxx__ // eof - $RCSfile$