#ifndef __RandomWalkerLabelling__hxx__
#define __RandomWalkerLabelling__hxx__
+#include <limits>
+
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-void RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+void RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
SetInputImage( const TRawImage* i )
{
this->SetInput( i );
}
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-typename RandomWalkLabelling< _TRawImage, _TLabelsImage >::
-TLabelsImage* RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+typename RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
+TLabelsImage* RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
GetOutputLabels( )
{
return( this->GetOutput( ) );
}
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-const typename RandomWalkLabelling< _TRawImage, _TLabelsImage >::
-TLabelsImage* RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+const typename RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
+TLabelsImage* RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
GetOutputLabels( ) const
{
return( this->GetOutput( ) );
}
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-typename RandomWalkLabelling< _TRawImage, _TLabelsImage >::
-TLabel RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+typename RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
+TLabel RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
GetOutsideLabel( ) const
{
return( this->GetInitValue( ) );
}
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-void RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+void RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
SetOutsideLabel( const TLabel& v )
{
this->SetInitValue( v );
}
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
RandomWalkLabelling( )
: Superclass( ),
m_InsideLabel( TLabel( 1 ) ),
m_UpperLabel( TLabel( 4 ) ),
m_Radius( double( 1 ) ),
m_LowerThreshold( double( 0 ) ),
- m_UpperThreshold( double( 0 ) )
+ m_UpperThreshold( double( 0 ) ),
+ m_MaxCost( std::numeric_limits< TScalar >::max( ) )
{
- fpaFilterInputConfigureMacro( InputMarks, TLabelsImage );
+ fpaFilterInputConfigureMacro( InputCosts, TCostsImage );
fpaFilterInputConfigureMacro( InputPath, TPath );
this->SetOutsideLabel( TLabel( 2 ) );
}
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
~RandomWalkLabelling( )
{
}
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-void RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+void RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
_PrepareSeeds( const itk::DataObject* reference )
{
const TPath* path = this->GetInputPath( );
}
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-void RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+void RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
_PostComputeOutputValue( TNode& n )
{
const TRawImage* raw = this->GetInput( );
- const TLabelsImage* labels = this->GetInputMarks( );
+ const TCostsImage* costs = this->GetInputCosts( );
const TPath* path = this->GetInputPath( );
TPoint c, p;
if( d <= this->m_Radius )
{
n.FrontId = 1;
- if( labels->GetPixel( n.Vertex ) == 0 )
+ if( costs->GetPixel( n.Vertex ) == this->m_MaxCost )
{
double v = double( raw->GetPixel( n.Vertex ) );
if( v <= this->m_LowerThreshold )
}
// -------------------------------------------------------------------------
-template< class _TRawImage, class _TLabelsImage >
-void RandomWalkLabelling< _TRawImage, _TLabelsImage >::
+template< class _TRawImage, class _TCostsImage, class _TLabelsImage >
+void RandomWalkLabelling< _TRawImage, _TCostsImage, _TLabelsImage >::
_Reinitialize( )
{
const TPath* path = this->GetInputPath( );