aimsalgo 6.0.0
Neuroimaging image processing
aims::meshdistance Namespace Reference

Classes

class  DistMapMatrixTraits
 
class  DistMapMatrixTraits< std::map< T, U > >
 
class  DistMapMatrixTraits< std::vector< T > >
 

Functions

Texture< float > GeodesicDepth (const AimsSurface< 3, Void > &mesh, const carto::rc_ptr< carto::Volume< short > > &vol, float radius_close, float radius_erode)
 Compute the geodesic depth of a triangulation The vol define the object and the background The radius-* are morphological parameter.
 
template<typename T>
Texture< float > MeshDistance (const AimsSurface< 3, Void > &mesh, const Texture< T > &inittex, bool allowUnreached, float max_dist=FLT_MAX)
 Computes a distance texture over a mesh.
 
template<typename T, typename MapType = std::vector< std::map<size_t, float> >>
void pairwiseDistanceMaps (const AimsSurface< 3, Void > &mesh, MapType &distmaps, const Texture< T > &inittex, float max_dist=FLT_MAX)
 Computes a distance matrix over a mesh.
 
template<typename MapType = std::vector< std::map<size_t, float> >>
void pairwiseDistanceMaps (const AimsSurface< 3, Void > &mesh, MapType &distmaps, float max_dist=FLT_MAX)
 Computes a distance matrix over a mesh.
 
template Texture< float > MeshDistance (const AimsSurface< 3, Void > &, const Texture< short > &, bool, float=FLT_MAX)
 
template Texture< float > MeshDistance (const AimsSurface< 3, Void > &, const Texture< float > &, bool, float=FLT_MAX)
 
template void pairwiseDistanceMaps (const AimsSurface< 3, Void > &mesh, std::vector< std::map< size_t, float > > &distmaps, const Texture< int16_t > &inittex=Texture< int16_t >(), float max_dist=FLT_MAX)
 
template<class T>
Texture< T > MeshDilation (const AimsSurface< 3, Void > &mesh, const Texture< T > &inittex, const T &Back, const T &For, const float dist, bool connexity)
 
template<class T>
Texture< T > MeshErosion (const AimsSurface< 3, Void > &mesh, const Texture< T > &inittex, const T &Back, const T &For, const float dist, bool connexity)
 
TimeTexture< short > MeshDilationStepbyStep (const AimsSurface< 3, Void > &mesh, const Texture< short > &inittex, const float dist, bool connectivity)
 
TimeTexture< short > MeshErosionStepbyStep (const AimsSurface< 3, Void > &mesh, const Texture< short > &inittex, const float dist, bool connectivity)
 
Texture< float > MeshGreyDilation (const AimsSurface< 3, Void > &mesh, const Texture< float > &inittex, const unsigned dist)
 
Texture< float > MeshGreyErosion (const AimsSurface< 3, Void > &mesh, const Texture< float > &inittex, const unsigned dist)
 
template<class T>
Texture< T > SplitSulci (const AimsSurface< 3, Void > &mesh, const Texture< T > &inittex, const T &Back, const T &For, const T label, const unsigned min, const unsigned max)
 
template<class T>
Texture< T > LineariseSulci (const AimsSurface< 3, Void > &mesh, const Texture< T > &inittex, const T &label, const T &Back, const T &For, unsigned &min, unsigned &max, unsigned nbDil)
 
template<class T>
Texture< T > CloseSulci (const AimsSurface< 3, Void > &mesh, const Texture< T > &sulctex, float nbDilMax, bool connexity, const T &Back, const T &For, const std::vector< std::list< unsigned > > &neigho, const std::set< T > &label_forbidden)
 Close the sulcus map (dilation and skeletization).
 
template<class T>
Texture< T > CloseSulci (const AimsSurface< 3, Void > &mesh, const Texture< T > &sulctex, float nbDilMax, bool connexity, const T &Back, const T &For, const std::vector< std::list< unsigned > > &neigho)
 
template<class T>
unsigned NbOfPoint (const Texture< T > tex, const T label)
 
template<class T>
bool HasHole (const Texture< T > &tex, const AimsSurface< 3, Void > &mesh, const T label)
 
template<class T>
Texture< T > MeshSkeletization (const AimsSurface< 3, Void > &mesh, const Texture< T > &inittex, T label, T Back, const std::vector< std::list< unsigned > > &neigho)
 Skeletization of the components of the innitex with label label.
 
TimeTexture< short > MeshVoronoiStepbyStep (const AimsSurface< 3, Void > &mesh, const Texture< short > &inittex, float dist, bool connexity, bool object)
 
Texture< short > MeshVoronoi (const AimsSurface< 3, Void > &mesh, const Texture< short > &inittex, float dist, bool connexity, bool object)
 
template<class T>
Texture< T > MeshVoronoiT (const AimsSurface< 3, Void > &mesh, const Texture< T > &inittex, const T &Back, const T &For, float dist, bool connexity, bool object)
 Compute a geodesic voronoi diagram (dist = MAX_FLOAT,object=true ) of objects defined in inittex.
 
template<class T>
Texture< std::set< T > > MeshBorderVoronoi (const AimsSurface< 3, Void > &mesh, const Texture< T > &inittex, const std::set< T > &setBack, const std::set< T > &setFor)
 Extract the boundarie of a voronoi diagram i.e.
 
template<class T>
Texture< std::set< T > > gyrusSeedDefinition (const AimsSurface< 3, Void > &mesh, const Texture< T > &inittex, const std::set< T > &setBack, const std::set< T > &setFor, const std::set< std::set< T > > &labelAllowed)
 Define the gyrus seed from the SKIZ.
 
template<class T>
Texture< T > gyrusSeedDilationInSKIZ (const AimsSurface< 3, Void > &mesh, const Texture< T > &seed, const Texture< T > &skiz, const T &Back, const T &For)
 
template<class T>
Texture< short > border2Texture (const Texture< std::set< T > > &tex, const AimsSurface< 3, Void > &mesh, const std::set< T > &setBack, const std::set< T > &setFor)
 Convert a multidimensional boundary map to a texture of short.
 
Texture< std::set< short > > MeshVoronoi2Set (const AimsSurface< 3, Void > &mesh, const Texture< std::set< short > > &inittex, const Texture< short > &sulcitex, bool connexity)
 
template<class T, class U>
Texture< short > Voronoi2toTexture (const Texture< std::set< T > > &vor, const AimsSurface< 3, Void > &mesh, const std::set< T > &setBack, const std::set< T > &setFor)
 
AimsSurfaceTriangle MakePlaneMesh (unsigned n, Point3df Xi, Point3df Xf)
 
template<class T>
std::map< T, float > SurfaceParcel (const Texture< T > &tex, const AimsSurface< 3, Void > &mesh)
 Give the surface of labelled parcels defined from textures.
 
template<class T>
std::map< T, float > VolumeParcel (const carto::rc_ptr< carto::Volume< T > > &vol)
 Give the surface of labelled parcels defined from volume.
 
std::set< std::pair< short, short > > ModelGraph2Boundaries (const Graph &g, const std::map< std::string, short > &traduction)
 
std::set< std::set< short > > gyrusHierarchy2setBoundaries (const std::map< std::string, short > &trans, const Graph &g)
 
std::set< std::set< short > > GyrusModel2SetOfSetOfSulci (const std::map< std::string, std::set< std::string > > &gyriAndSulci, const std::map< std::string, short > &trans)
 
std::set< std::string > GyrusModel2SetOfSulci (const char *model, const std::set< std::string > &existingName)
 
std::set< std::string > GyrusModel2SetOfSulci (const std::map< std::string, std::set< std::string > > &gyriAndSulci, const std::set< std::string > &existingName)
 
std::map< std::string, std::set< std::string > > GyrusModel2GyriAndSulci (const std::string &model)
 
TimeTexture< short > SulcusVolume2Texture (const AimsSurface< 3, Void > &mesh, const Texture< float > &curvtex, const carto::rc_ptr< carto::Volume< short > > &bottom_vol, const carto::rc_ptr< carto::Volume< short > > &surface_vol, float alpha, float dmin, int MINCC, const std::map< short, std::string > &trans, const std::set< std::string > &labels, float maxdil, float maxdil_mesh, float alpha_reg, bool connexity, const std::vector< std::list< unsigned > > &neigho)
 Projection of the voxels relative to the bottom of the sulci to the edges of a triangulation.
 
TimeTexture< short > SulcusVolume2Texture (const AimsSurface< 3, Void > &mesh, const carto::rc_ptr< carto::Volume< short > > &bottom_vol, const carto::rc_ptr< carto::Volume< short > > &surface_vol, const Point3df &CA, float demin, float dpmin, int MINCC, const std::map< short, std::string > &trans, const std::set< std::string > &labels, float maxdil, float maxdil_mesh, float alpha_reg, bool connexity, const std::vector< std::list< unsigned > > &neigho)
 Use interpolation plane to project the sulcal line.
 
Texture< short > FirstSulciProjectionWithCurvatureMap (const carto::rc_ptr< carto::Volume< short > > &ccvol, const carto::rc_ptr< carto::Volume< short > > &sulcvol, const AimsSurface< 3, Void > &mesh, std::set< short > &cc_sulci_labels, std::map< short, short > &tri_sulci, std::map< unsigned, Point3dfSet > &cc_sulci_coord, std::map< Point3df, Point3df, Point3dfCompare > &initend, const Texture< float > &curvtex, float alpha, float dmin)
 
Texture< short > FirstSulciProjectionWithInterpolationPlane (const carto::rc_ptr< carto::Volume< short > > &ccvol, const carto::rc_ptr< carto::Volume< short > > &sulcvol, const AimsSurface< 3, Void > &mesh, std::set< short > &cc_sulci_labels, std::map< short, short > &tri_sulci, const std::map< Point3df, Point3dfSet, Point3dfCompare > &neigh, std::map< unsigned, Point3dfSet > &cc_sulci_coord, std::map< Point3df, Point3df, Point3dfCompare > &initend, float demin, float dpmin, short label_insula_left, short label_insula_right, const Point3df &CA)
 
void AffinePointProjection (Texture< short > &tex, const AimsSurface< 3, Void > &mesh, const std::map< Point3df, Point3df, Point3dfCompare > &initend, const Point3dfSet &setpointi, short label, float dmin, float alpha_reg)
 
carto::VolumeRef< short > MeshParcellation2Volume (const carto::rc_ptr< carto::Volume< short > > &initVol, const Texture< short > &tex, const AimsSurface< 3, Void > &mesh, short val_domain, short back)
 
Texture< short > VolumeParcellation2MeshParcellation (const carto::rc_ptr< carto::Volume< short > > &initVol, const AimsSurface< 3, Void > &mesh, short back)
 
void NeighbourInCC (std::map< Point3df, Point3dfSet, Point3dfCompare > &neigh, const carto::rc_ptr< carto::Volume< short > > &bvol, const carto::rc_ptr< carto::Volume< short > > &svol, Connectivity::Type connectivity, short label, const unsigned size_neigh, unsigned max_points=50)
 Give the neighbours of a point The neighbours have the same label as the point.
 
std::pair< Point3df, Point3dfNormalFromPoints (const Point3dfSet &init_point)
 
Point3df NormalFromPoints (const Point3df &pt, const Point3dfSet &init_point)
 
Point3df cross (const Point3df &A, const Point3df &B)
 
Point3df IntersectionPointOfPlanAndLine (const Point3df &s1, const Point3df &s2, const Point3df &s3, const Point3df &direction_line, const Point3df &pt)
 
float DistancePointToPlane (const Point3df &A, const std::pair< Point3df, Point3df > &plane)
 
float DistancePointToLine (const Point3df &A, const std::pair< Point3df, Point3df > &line)
 
Point3df meanNormalofCC (const std::vector< Point3df > &cc, const Point3dfNeigh &neigh, unsigned MIN_NEIGH)
 
void SulcusOperture (const AimsSurface< 3, Void > &mesh, std::map< Point3df, std::pair< float, float >, Point3dfCompare > &sulci2mesh, const carto::rc_ptr< carto::Volume< short > > &surface_vol, const float demin, const float dpmin, const unsigned MINCC, const std::map< short, std::string > &trans, const std::set< std::string > &labels)
 
void ClosestMeshTrianglesFromSulcusVoxel (const Point3df &pt, const std::pair< Point3df, Point3df > &bipoint, Point3df &n_sulci, float &dmn, float &dmp, float demin, float dpmin, const AimsSurface< 3, Void > &mesh)
 
void ClosestMeshNodesFromSulcusVoxel (const Point3df &pt, const std::pair< Point3df, Point3df > &bipoint, Point3df &n0, float demin, float dpmin, float &dmn, float &dmp, const AimsSurface< 3, Void > &mesh)
 
carto::VolumeRef< float > OpertureParameters (const AimsSurface< 3, Void > &mesh, const std::map< Point3df, std::pair< float, float >, Point3dfCompare > &sulci2mesh, const carto::rc_ptr< carto::Volume< short > > &vol)
 
void CCOperture (const std::vector< Point3df > &cc, const AimsSurface< 3, Void > &mesh, const Point3dfNeigh &neigh, std::map< Point3df, std::pair< float, float >, Point3dfCompare > &sulci2mesh, const float demin, const float dpmin)
 
std::set< unsigned > SubMesh (const AimsSurface< 3, Void > &mesh, const Point3df &bbmin, const Point3df &bbmax)
 
float max (float x, float y)
 
float min (float x, float y)
 
Point3df Point3dfMax (const Point3df &X, const Point3df &Y)
 
Point3df Point3dfMin (const Point3df &X, const Point3df &Y)
 

Variables

const short MESHDISTANCE_FORBIDDEN
 global variable...
 
const short MESHDISTANCE_UNREACHED
 

Function Documentation

◆ AffinePointProjection()

void aims::meshdistance::AffinePointProjection ( Texture< short > & tex,
const AimsSurface< 3, Void > & mesh,
const std::map< Point3df, Point3df, Point3dfCompare > & initend,
const Point3dfSet & setpointi,
short label,
float dmin,
float alpha_reg )

◆ border2Texture()

template<class T>
Texture< short > aims::meshdistance::border2Texture ( const Texture< std::set< T > > & tex,
const AimsSurface< 3, Void > & mesh,
const std::set< T > & setBack,
const std::set< T > & setFor )

Convert a multidimensional boundary map to a texture of short.

Definition at line 294 of file meshparcellation_d.h.

References Texture< class T >::item(), and AimsSurface< int D, class T >::vertex().

◆ CCOperture()

void aims::meshdistance::CCOperture ( const std::vector< Point3df > & cc,
const AimsSurface< 3, Void > & mesh,
const Point3dfNeigh & neigh,
std::map< Point3df, std::pair< float, float >, Point3dfCompare > & sulci2mesh,
const float demin,
const float dpmin )

◆ ClosestMeshNodesFromSulcusVoxel()

void aims::meshdistance::ClosestMeshNodesFromSulcusVoxel ( const Point3df & pt,
const std::pair< Point3df, Point3df > & bipoint,
Point3df & n0,
float demin,
float dpmin,
float & dmn,
float & dmp,
const AimsSurface< 3, Void > & mesh )

◆ ClosestMeshTrianglesFromSulcusVoxel()

void aims::meshdistance::ClosestMeshTrianglesFromSulcusVoxel ( const Point3df & pt,
const std::pair< Point3df, Point3df > & bipoint,
Point3df & n_sulci,
float & dmn,
float & dmp,
float demin,
float dpmin,
const AimsSurface< 3, Void > & mesh )

◆ CloseSulci() [1/2]

template<class T>
Texture< T > aims::meshdistance::CloseSulci ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & sulctex,
float nbDilMax,
bool connexity,
const T & Back,
const T & For,
const std::vector< std::list< unsigned > > & neigho )

◆ CloseSulci() [2/2]

template<class T>
Texture< T > aims::meshdistance::CloseSulci ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & sulctex,
float nbDilMax,
bool connexity,
const T & Back,
const T & For,
const std::vector< std::list< unsigned > > & neigho,
const std::set< T > & label_forbidden )

Close the sulcus map (dilation and skeletization).

All the labels/components are processed

Definition at line 429 of file meshmorphomat_d.h.

References AimsMeshLabelNbConnectedComponent(), HasHole(), Texture< class T >::item(), MeshDilation(), MeshSkeletization(), NbOfPoint(), and AimsSurface< int D, class T >::vertex().

◆ cross()

Point3df aims::meshdistance::cross ( const Point3df & A,
const Point3df & B )
inline

Definition at line 241 of file projection.h.

Referenced by DistancePointToLine(), and IntersectionPointOfPlanAndLine().

◆ DistancePointToLine()

float aims::meshdistance::DistancePointToLine ( const Point3df & A,
const std::pair< Point3df, Point3df > & line )
inline

Definition at line 342 of file projection.h.

References cross(), and AimsVector< class T, int D >::norm().

◆ DistancePointToPlane()

float aims::meshdistance::DistancePointToPlane ( const Point3df & A,
const std::pair< Point3df, Point3df > & plane )
inline

Definition at line 328 of file projection.h.

References AimsVector< class T, int D >::dot().

◆ FirstSulciProjectionWithCurvatureMap()

Texture< short > aims::meshdistance::FirstSulciProjectionWithCurvatureMap ( const carto::rc_ptr< carto::Volume< short > > & ccvol,
const carto::rc_ptr< carto::Volume< short > > & sulcvol,
const AimsSurface< 3, Void > & mesh,
std::set< short > & cc_sulci_labels,
std::map< short, short > & tri_sulci,
std::map< unsigned, Point3dfSet > & cc_sulci_coord,
std::map< Point3df, Point3df, Point3dfCompare > & initend,
const Texture< float > & curvtex,
float alpha,
float dmin )

◆ FirstSulciProjectionWithInterpolationPlane()

Texture< short > aims::meshdistance::FirstSulciProjectionWithInterpolationPlane ( const carto::rc_ptr< carto::Volume< short > > & ccvol,
const carto::rc_ptr< carto::Volume< short > > & sulcvol,
const AimsSurface< 3, Void > & mesh,
std::set< short > & cc_sulci_labels,
std::map< short, short > & tri_sulci,
const std::map< Point3df, Point3dfSet, Point3dfCompare > & neigh,
std::map< unsigned, Point3dfSet > & cc_sulci_coord,
std::map< Point3df, Point3df, Point3dfCompare > & initend,
float demin,
float dpmin,
short label_insula_left,
short label_insula_right,
const Point3df & CA )

◆ GeodesicDepth()

Texture< float > aims::meshdistance::GeodesicDepth ( const AimsSurface< 3, Void > & mesh,
const carto::rc_ptr< carto::Volume< short > > & vol,
float radius_close,
float radius_erode )

Compute the geodesic depth of a triangulation The vol define the object and the background The radius-* are morphological parameter.

◆ gyrusHierarchy2setBoundaries()

std::set< std::set< short > > aims::meshdistance::gyrusHierarchy2setBoundaries ( const std::map< std::string, short > & trans,
const Graph & g )

◆ GyrusModel2GyriAndSulci()

std::map< std::string, std::set< std::string > > aims::meshdistance::GyrusModel2GyriAndSulci ( const std::string & model)

◆ GyrusModel2SetOfSetOfSulci()

std::set< std::set< short > > aims::meshdistance::GyrusModel2SetOfSetOfSulci ( const std::map< std::string, std::set< std::string > > & gyriAndSulci,
const std::map< std::string, short > & trans )

◆ GyrusModel2SetOfSulci() [1/2]

std::set< std::string > aims::meshdistance::GyrusModel2SetOfSulci ( const char * model,
const std::set< std::string > & existingName )

◆ GyrusModel2SetOfSulci() [2/2]

std::set< std::string > aims::meshdistance::GyrusModel2SetOfSulci ( const std::map< std::string, std::set< std::string > > & gyriAndSulci,
const std::set< std::string > & existingName )

◆ gyrusSeedDefinition()

template<class T>
Texture< std::set< T > > aims::meshdistance::gyrusSeedDefinition ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & inittex,
const std::set< T > & setBack,
const std::set< T > & setFor,
const std::set< std::set< T > > & labelAllowed )

◆ gyrusSeedDilationInSKIZ()

template<class T>
Texture< T > aims::meshdistance::gyrusSeedDilationInSKIZ ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & seed,
const Texture< T > & skiz,
const T & Back,
const T & For )

◆ HasHole()

template<class T>
bool aims::meshdistance::HasHole ( const Texture< T > & tex,
const AimsSurface< 3, Void > & mesh,
const T label )
inline

◆ IntersectionPointOfPlanAndLine()

Point3df aims::meshdistance::IntersectionPointOfPlanAndLine ( const Point3df & s1,
const Point3df & s2,
const Point3df & s3,
const Point3df & direction_line,
const Point3df & pt )
inline

Definition at line 258 of file projection.h.

References cross(), and AimsVector< class T, int D >::normalize().

◆ LineariseSulci()

template<class T>
Texture< T > aims::meshdistance::LineariseSulci ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & inittex,
const T & label,
const T & Back,
const T & For,
unsigned & min,
unsigned & max,
unsigned nbDil )

◆ MakePlaneMesh()

AimsSurfaceTriangle aims::meshdistance::MakePlaneMesh ( unsigned n,
Point3df Xi,
Point3df Xf )

◆ max()

float aims::meshdistance::max ( float x,
float y )
inline

Definition at line 98 of file thickness.h.

Referenced by LineariseSulci(), MeshGreyErosion(), Point3dfMax(), and SplitSulci().

◆ meanNormalofCC()

Point3df aims::meshdistance::meanNormalofCC ( const std::vector< Point3df > & cc,
const Point3dfNeigh & neigh,
unsigned MIN_NEIGH )
inline

◆ MeshBorderVoronoi()

template<class T>
Texture< std::set< T > > aims::meshdistance::MeshBorderVoronoi ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & inittex,
const std::set< T > & setBack,
const std::set< T > & setFor )

Extract the boundarie of a voronoi diagram i.e.

compute the skiz

Definition at line 239 of file meshparcellation_d.h.

References Texture< class T >::item(), Texture< class T >::nItem(), AimsSurface< int D, class T >::polygon(), and AimsSurface< int D, class T >::vertex().

◆ MeshDilation()

template<class T>
Texture< T > aims::meshdistance::MeshDilation ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & inittex,
const T & Back,
const T & For,
const float dist,
bool connexity )

Definition at line 792 of file meshmorphomat_d.h.

References MeshVoronoiT().

Referenced by CloseSulci(), CloseSulci(), gyrusSeedDilationInSKIZ(), and SplitSulci().

◆ MeshDilationStepbyStep()

TimeTexture< short > aims::meshdistance::MeshDilationStepbyStep ( const AimsSurface< 3, Void > & mesh,
const Texture< short > & inittex,
const float dist,
bool connectivity )

◆ MeshDistance() [1/3]

template Texture< float > aims::meshdistance::MeshDistance ( const AimsSurface< 3, Void > & ,
const Texture< float > & ,
bool ,
float = FLT_MAX )
extern

◆ MeshDistance() [2/3]

template Texture< float > aims::meshdistance::MeshDistance ( const AimsSurface< 3, Void > & ,
const Texture< short > & ,
bool ,
float = FLT_MAX )
extern

◆ MeshDistance() [3/3]

template<typename T>
Texture< float > aims::meshdistance::MeshDistance ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & inittex,
bool allowUnreached,
float max_dist = FLT_MAX )

Computes a distance texture over a mesh.

inittex values have the following meaning:

0: propagation domain n>0: seed (distance 0) -1: forbidden

Definition at line 42 of file meshdistance_d.h.

References Texture< class T >::item(), MESHDISTANCE_FORBIDDEN, MESHDISTANCE_UNREACHED, Texture< class T >::nItem(), AimsSurface< int D, class T >::polygon(), Texture< class T >::push_back(), Texture< class T >::reserve(), and AimsSurface< int D, class T >::vertex().

Referenced by LineariseSulci(), and MeshSkeletization().

◆ MeshErosion()

template<class T>
Texture< T > aims::meshdistance::MeshErosion ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & inittex,
const T & Back,
const T & For,
const float dist,
bool connexity )

Definition at line 805 of file meshmorphomat_d.h.

References MeshVoronoiT().

◆ MeshErosionStepbyStep()

TimeTexture< short > aims::meshdistance::MeshErosionStepbyStep ( const AimsSurface< 3, Void > & mesh,
const Texture< short > & inittex,
const float dist,
bool connectivity )

◆ MeshGreyDilation()

Texture< float > aims::meshdistance::MeshGreyDilation ( const AimsSurface< 3, Void > & mesh,
const Texture< float > & inittex,
const unsigned dist )

◆ MeshGreyErosion()

Texture< float > aims::meshdistance::MeshGreyErosion ( const AimsSurface< 3, Void > & mesh,
const Texture< float > & inittex,
const unsigned dist )

◆ MeshParcellation2Volume()

carto::VolumeRef< short > aims::meshdistance::MeshParcellation2Volume ( const carto::rc_ptr< carto::Volume< short > > & initVol,
const Texture< short > & tex,
const AimsSurface< 3, Void > & mesh,
short val_domain,
short back )

◆ MeshSkeletization()

template<class T>
Texture< T > aims::meshdistance::MeshSkeletization ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & inittex,
T label,
T Back,
const std::vector< std::list< unsigned > > & neigho )

Skeletization of the components of the innitex with label label.

neigho is the ordonned neighbourhood for each point. The output texture has only two labels : The background (0) and the object (label)

Definition at line 714 of file meshmorphomat_d.h.

References Texture< class T >::item(), MeshDistance(), and AimsSurface< int D, class T >::vertex().

Referenced by CloseSulci(), and CloseSulci().

◆ MeshVoronoi()

Texture< short > aims::meshdistance::MeshVoronoi ( const AimsSurface< 3, Void > & mesh,
const Texture< short > & inittex,
float dist,
bool connexity,
bool object )

◆ MeshVoronoi2Set()

Texture< std::set< short > > aims::meshdistance::MeshVoronoi2Set ( const AimsSurface< 3, Void > & mesh,
const Texture< std::set< short > > & inittex,
const Texture< short > & sulcitex,
bool connexity )

◆ MeshVoronoiStepbyStep()

TimeTexture< short > aims::meshdistance::MeshVoronoiStepbyStep ( const AimsSurface< 3, Void > & mesh,
const Texture< short > & inittex,
float dist,
bool connexity,
bool object )

◆ MeshVoronoiT()

template<class T>
Texture< T > aims::meshdistance::MeshVoronoiT ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & inittex,
const T & Back,
const T & For,
float dist,
bool connexity,
bool object )

Compute a geodesic voronoi diagram (dist = MAX_FLOAT,object=true ) of objects defined in inittex.

The background has the label Back and the objects have a positive label. The distance can be euclidean geodesic (connexity=false) or just the connexity of the triangulation(connexity=true) This function can as well be used for dilation(object=true) / erosion(object=false) using the parameter dist as the size of the structuring element

Definition at line 59 of file meshvoronoi_d.h.

References Texture< class T >::item(), MESHDISTANCE_FORBIDDEN, Texture< class T >::nItem(), AimsSurface< int D, class T >::polygon(), Texture< class T >::push_back(), Texture< class T >::reserve(), and AimsSurface< int D, class T >::vertex().

Referenced by MeshDilation(), and MeshErosion().

◆ min()

float aims::meshdistance::min ( float x,
float y )
inline

Definition at line 106 of file thickness.h.

Referenced by LineariseSulci(), MeshGreyErosion(), Point3dfMin(), and SplitSulci().

◆ ModelGraph2Boundaries()

std::set< std::pair< short, short > > aims::meshdistance::ModelGraph2Boundaries ( const Graph & g,
const std::map< std::string, short > & traduction )

◆ NbOfPoint()

template<class T>
unsigned aims::meshdistance::NbOfPoint ( const Texture< T > tex,
const T label )
inline

Definition at line 701 of file meshmorphomat_d.h.

References Texture< class T >::item(), and Texture< class T >::nItem().

Referenced by CloseSulci(), and CloseSulci().

◆ NeighbourInCC()

void aims::meshdistance::NeighbourInCC ( std::map< Point3df, Point3dfSet, Point3dfCompare > & neigh,
const carto::rc_ptr< carto::Volume< short > > & bvol,
const carto::rc_ptr< carto::Volume< short > > & svol,
Connectivity::Type connectivity,
short label,
const unsigned size_neigh,
unsigned max_points = 50 )

Give the neighbours of a point The neighbours have the same label as the point.

◆ NormalFromPoints() [1/2]

Point3df aims::meshdistance::NormalFromPoints ( const Point3df & pt,
const Point3dfSet & init_point )
inline

◆ NormalFromPoints() [2/2]

std::pair< Point3df, Point3df > aims::meshdistance::NormalFromPoints ( const Point3dfSet & init_point)
inline

Definition at line 158 of file projection.h.

References AimsEigen< T >::doit(), and AimsEigen< T >::sort().

Referenced by meanNormalofCC().

◆ OpertureParameters()

carto::VolumeRef< float > aims::meshdistance::OpertureParameters ( const AimsSurface< 3, Void > & mesh,
const std::map< Point3df, std::pair< float, float >, Point3dfCompare > & sulci2mesh,
const carto::rc_ptr< carto::Volume< short > > & vol )

◆ pairwiseDistanceMaps() [1/3]

template<typename T, typename MapType = std::vector< std::map<size_t, float> >>
void aims::meshdistance::pairwiseDistanceMaps ( const AimsSurface< 3, Void > & mesh,
MapType & distmaps,
const Texture< T > & inittex,
float max_dist = FLT_MAX )

Computes a distance matrix over a mesh.

The output

Parameters
distmapsmay be a dense matrix or a sparse storage. (if the
max_distdistance is small, sparse is of course the best, otherwise the matrix will be very large).
inittexmay specify forbidden points which will be excluided from the matrix. As for MeshDistance(), forbidden points should take the value MESHDISTANCE_FORBIDDEN (defined in <aims/distancemap/meshvoronoi.h>).

Definition at line 212 of file meshdistance_d.h.

References Texture< class T >::item(), MESHDISTANCE_FORBIDDEN, Texture< class T >::nItem(), AimsSurface< int D, class T >::polygon(), aims::meshdistance::DistMapMatrixTraits< T >::resize(), Texture< class T >::size(), and AimsSurface< int D, class T >::vertex().

Referenced by pairwiseDistanceMaps().

◆ pairwiseDistanceMaps() [2/3]

template<typename MapType = std::vector< std::map<size_t, float> >>
void aims::meshdistance::pairwiseDistanceMaps ( const AimsSurface< 3, Void > & mesh,
MapType & distmaps,
float max_dist = FLT_MAX )

Computes a distance matrix over a mesh.

The output

Parameters
distmapsmay be a dense matrix or a sparse storage. (if the
max_distdistance is small, sparse is of course the best, otherwise the matrix will be very large).

Definition at line 99 of file meshdistance.h.

References pairwiseDistanceMaps().

◆ pairwiseDistanceMaps() [3/3]

template void aims::meshdistance::pairwiseDistanceMaps ( const AimsSurface< 3, Void > & mesh,
std::vector< std::map< size_t, float > > & distmaps,
const Texture< int16_t > & inittex = Texture< int16_t >(),
float max_dist = FLT_MAX )
extern

◆ Point3dfMax()

Point3df aims::meshdistance::Point3dfMax ( const Point3df & X,
const Point3df & Y )
inline

Definition at line 114 of file thickness.h.

References max().

◆ Point3dfMin()

Point3df aims::meshdistance::Point3dfMin ( const Point3df & X,
const Point3df & Y )
inline

Definition at line 123 of file thickness.h.

References min().

◆ SplitSulci()

template<class T>
Texture< T > aims::meshdistance::SplitSulci ( const AimsSurface< 3, Void > & mesh,
const Texture< T > & inittex,
const T & Back,
const T & For,
const T label,
const unsigned min,
const unsigned max )

◆ SubMesh()

std::set< unsigned > aims::meshdistance::SubMesh ( const AimsSurface< 3, Void > & mesh,
const Point3df & bbmin,
const Point3df & bbmax )

◆ SulcusOperture()

void aims::meshdistance::SulcusOperture ( const AimsSurface< 3, Void > & mesh,
std::map< Point3df, std::pair< float, float >, Point3dfCompare > & sulci2mesh,
const carto::rc_ptr< carto::Volume< short > > & surface_vol,
const float demin,
const float dpmin,
const unsigned MINCC,
const std::map< short, std::string > & trans,
const std::set< std::string > & labels )

◆ SulcusVolume2Texture() [1/2]

TimeTexture< short > aims::meshdistance::SulcusVolume2Texture ( const AimsSurface< 3, Void > & mesh,
const carto::rc_ptr< carto::Volume< short > > & bottom_vol,
const carto::rc_ptr< carto::Volume< short > > & surface_vol,
const Point3df & CA,
float demin,
float dpmin,
int MINCC,
const std::map< short, std::string > & trans,
const std::set< std::string > & labels,
float maxdil,
float maxdil_mesh,
float alpha_reg,
bool connexity,
const std::vector< std::list< unsigned > > & neigho )

Use interpolation plane to project the sulcal line.

◆ SulcusVolume2Texture() [2/2]

TimeTexture< short > aims::meshdistance::SulcusVolume2Texture ( const AimsSurface< 3, Void > & mesh,
const Texture< float > & curvtex,
const carto::rc_ptr< carto::Volume< short > > & bottom_vol,
const carto::rc_ptr< carto::Volume< short > > & surface_vol,
float alpha,
float dmin,
int MINCC,
const std::map< short, std::string > & trans,
const std::set< std::string > & labels,
float maxdil,
float maxdil_mesh,
float alpha_reg,
bool connexity,
const std::vector< std::list< unsigned > > & neigho )

Projection of the voxels relative to the bottom of the sulci to the edges of a triangulation.

The curvature of the triangulation is taken into account. The label of the projected sulci is the same as the initial label. Use a curvature or a depth map to project the sulcal line

◆ SurfaceParcel()

template<class T>
std::map< T, float > aims::meshdistance::SurfaceParcel ( const Texture< T > & tex,
const AimsSurface< 3, Void > & mesh )

◆ VolumeParcel()

template<class T>
std::map< T, float > aims::meshdistance::VolumeParcel ( const carto::rc_ptr< carto::Volume< T > > & vol)

◆ VolumeParcellation2MeshParcellation()

Texture< short > aims::meshdistance::VolumeParcellation2MeshParcellation ( const carto::rc_ptr< carto::Volume< short > > & initVol,
const AimsSurface< 3, Void > & mesh,
short back )

◆ Voronoi2toTexture()

template<class T, class U>
Texture< short > aims::meshdistance::Voronoi2toTexture ( const Texture< std::set< T > > & vor,
const AimsSurface< 3, Void > & mesh,
const std::set< T > & setBack,
const std::set< T > & setFor )

Variable Documentation

◆ MESHDISTANCE_FORBIDDEN

const short aims::meshdistance::MESHDISTANCE_FORBIDDEN
extern

◆ MESHDISTANCE_UNREACHED

const short aims::meshdistance::MESHDISTANCE_UNREACHED
extern

Definition at line 85 of file meshvoronoi.h.

Referenced by GyrusModel2GyriAndSulci(), MeshDistance(), and MeshGreyErosion().