X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FFilters%2FImage%2FDijkstra.hxx;fp=lib%2Ffpa%2FFilters%2FImage%2FDijkstra.hxx;h=b7a2f8638d5da79596121330d58660c1d68df456;hb=2047276c8f1a02432fbcc7014722d460d6c1e60f;hp=0000000000000000000000000000000000000000;hpb=3c639e5da479c7216a0a302ffa156ac6762caeed;p=FrontAlgorithms.git diff --git a/lib/fpa/Filters/Image/Dijkstra.hxx b/lib/fpa/Filters/Image/Dijkstra.hxx new file mode 100644 index 0000000..b7a2f86 --- /dev/null +++ b/lib/fpa/Filters/Image/Dijkstra.hxx @@ -0,0 +1,51 @@ +// ========================================================================= +// @author Leonardo Florez Valencia +// @email florez-l@javeriana.edu.co +// ========================================================================= +#ifndef __fpa__Filters__Image__Dijkstra__hxx__ +#define __fpa__Filters__Image__Dijkstra__hxx__ + +#include + +// ------------------------------------------------------------------------- +template< class _TInputImage, class _TOutputImage, class _TMark, class _TTraits, class _TMST > +fpa::Filters::Image::Dijkstra< _TInputImage, _TOutputImage, _TMark, _TTraits, _TMST >:: +Dijkstra( ) + : Superclass( ) +{ + typedef fpa::Functors::Dijkstra::Image::Identity< TInputImage, TOutputValue > _TFunc; + + this->SetWeightFunction( _TFunc::New( ) ); +} + +// ------------------------------------------------------------------------- +template< class _TInputImage, class _TOutputImage, class _TMark, class _TTraits, class _TMST > +fpa::Filters::Image::Dijkstra< _TInputImage, _TOutputImage, _TMark, _TTraits, _TMST >:: +~Dijkstra( ) +{ +} + +// ------------------------------------------------------------------------- +template< class _TInputImage, class _TOutputImage, class _TMark, class _TTraits, class _TMST > +void fpa::Filters::Image::Dijkstra< _TInputImage, _TOutputImage, _TMark, _TTraits, _TMST >:: +_ConfigureOutputs( ) +{ + this->Superclass::_ConfigureOutputs( ); + + const TInputImage* in = this->GetInput( ); + TMST* mst = this->GetMinimumSpanningTree( ); + mst->SetLargestPossibleRegion( in->GetLargestPossibleRegion( ) ); + mst->SetRequestedRegion( in->GetRequestedRegion( ) ); + mst->SetBufferedRegion( in->GetBufferedRegion( ) ); + mst->SetSpacing( in->GetSpacing( ) ); + mst->SetOrigin( in->GetOrigin( ) ); + mst->SetDirection( in->GetDirection( ) ); + mst->Allocate( ); + + typename TVertex::OffsetType o; + o.Fill( 0 ); + mst->FillBuffer( o ); +} + +#endif // __fpa__Filters__Image__Dijkstra__hxx__ +// eof - $RCSfile$