35 #ifndef AIMS_DISTANCEMAP_FASTMARCHING_H
36 #define AIMS_DISTANCEMAP_FASTMARCHING_H
48 namespace fastmarching
97 bool mid_interface =
false );
110 int16_t worklabel, int16_t inlabel, int16_t outlabel);
119 const std::set<int16_t> & worklabels,
120 const std::set<int16_t> & seedlabels);
130 int16_t label2 )
const;
137 int16_t label2 )
const;
183 namespace fastmarching
186 template <
typename T>
201 template <
typename T>
211 {
return x->begin().second; }
213 {
return x->begin().second; }
220 extern template class FastMarching<carto::Volume<int16_t> >;
std::map< Point3d, T, BucketMapLess > Bucket
Fast marching algorithm implementation, for images or buckets.
RCFloatType doit(const RCType &vol, const std::set< int16_t > &worklabels, const std::set< int16_t > &seedlabels)
Perform fast marching propagation from a label image "vol".
carto::VolumeRef< float > midInterfaceVol(int16_t label1, int16_t label2) const
get the interface between Voronoi regions label1 and label2, as a volume
void setSpeedMap(RCFloatType speed)
sets an initialized speed map.
void clearSpeedMap()
clear (inverse) speed map
FastMarching(Connectivity::Type c=Connectivity::CONNECTIVITY_26_XYZ, bool mid_interface=false)
The connectivity type is only used to build the interfaces between the work region and the seeds: the...
void setInvSpeedMap(RCFloatType invspeed)
sets an initialized inverse speed map (overrides any previous speed map).
std::vector< std::pair< int16_t, int16_t > > midInterfaceLabels() const
Voronoi interfaces labels.
RCType voronoiVol() const
get the resulting Voronoi regions (after propagation)
RCFloatType doit(const RCType &vol, int16_t worklabel, int16_t inlabel, int16_t outlabel)
Perform fast marching propagation from a label image "vol".
const BucketMap< float > & midInterface(int16_t label1, int16_t label2) const
get the interface between Voronoi regions label1 and label2, as a bucket
internal::fastmarching::StorageTrait< FloatType >::RCType RCFloatType
internal::fastmarching::StorageTrait< T >::FloatType FloatType
internal::fastmarching::StorageTrait< T >::RCType RCType
RCFloatType invSpeedMap() const
get the current inverse speed map.
static const LowLevelType & lowlevel(const RCType &x)
carto::rc_ptr< BucketMap< T > > RCType
static LowLevelType & lowlevel(RCType &x)
BucketMap< T >::Bucket LowLevelType
BucketMap< float > FloatType
static LowLevelType & lowlevel(RCType &x)
carto::VolumeRef< T > RCType
static const LowLevelType & lowlevel(const RCType &x)
carto::Volume< T > LowLevelType
carto::Volume< float > FloatType
carto::rc_ptr< T > RCType