- seed = minmax->GetIndexOfMaximum( );
- }
- else
- seed = *( this->BeginSeeds( ) );
- this->m_Seeds.clear( );
- this->m_Seeds.insert( seed );
-
- // Prepare skeleton candidates queue
- this->m_SkeletonQueue.clear( );
-
- // Go!
- this->Superclass::GenerateData( );
-
- // Backtracking
- _TAdjacencies A;
- std::vector< TVertex > end_points;
- this->_EndPoints( end_points, A );
- this->_Skeleton( end_points, A );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage, class _TScalar >
-void fpa::Image::SkeletonFilter< _TImage, _TScalar >::
-_SetOutputValue( const TVertex& vertex, const TOutputValue& value )
-{
- typedef typename _TSkeletonQueue::value_type _TSkeletonQueueValue;
-
- this->Superclass::_SetOutputValue( vertex, value );
- double d = double( this->m_DistanceMap->GetOutput( )->GetPixel( vertex ) );
- if( d >= double( 0 ) )
- {
- // Update skeleton candidates
- d += double( 1e-5 );
- double v = double( value ) / ( d * d );
- this->m_SkeletonQueue.insert( _TSkeletonQueueValue( v, vertex ) );