![]() |
aimsalgo
5.1.2
Neuroimaging image processing
|
Geodesic paths or distance maps, using the Dijkstra algorithm. More...
#include <aims/geodesicpath/geodesicPath.h>
Public Types | |
typedef std::vector< unsigned > | vect_ui |
Public Member Functions | |
GeodesicPath (const AimsSurfaceTriangle &surface, const TimeTexture< float > &texCurv, int method, int strain) | |
Initializes the geodesic path structures for a given mesh geometry, using a constraint map (curvature, typically). More... | |
GeodesicPath (const AimsSurfaceTriangle &surface, int method, int strain) | |
Same as the above constructor, except that the constraints map is computed internally as the curvature of the mesh. More... | |
~GeodesicPath () | |
void | computeGraphDijkstra (const AimsSurfaceTriangle &surface, const TimeTexture< float > &texCurv, int method, int strain) |
initialize internal stuctures, should be private. More... | |
void | updateWeight (const TimeTexture< float > &texCurv, int method, int strain, double sigmo) |
update internal structures, should be private. More... | |
std::vector< unsigned > | shortestPath_1_1_ind (unsigned source, unsigned target) |
std::vector< unsigned > | shortestPath_1_1_ind (unsigned source, unsigned target, TimeTexture< short > subset) |
std::vector< unsigned > | shortestPath_1_1_1_ind (unsigned source, unsigned middle, unsigned target) |
void | shortestPath_1_N_ind (unsigned source, std::vector< unsigned > targets, unsigned *target, double *length) |
std::vector< Point3df > | shortestPath_1_1_xyz (unsigned source, unsigned target) |
void | shortestPath_1_1_ind_xyz (unsigned source, unsigned target, std::vector< unsigned > &indice, std::vector< Point3df > &coord3D) |
void | shortestPath_1_1_tex (unsigned source, unsigned target, float texturevalue, TimeTexture< float > &tex) |
double | shortestPath_1_1_len (unsigned source, unsigned target) |
void | shortestPath_1_N_All_ind (unsigned sources, std::vector< unsigned > targets, std::vector< std::vector< unsigned > > &indices) |
void | longestPath_1_N_ind (unsigned source, std::vector< unsigned > targets, unsigned *target, double *length, int type_distance) |
std::vector< vect_ui > | longestPath_1_N_len (unsigned source, std::vector< unsigned > targets, std::vector< double > &length, int type_distance) |
std::vector< unsigned > | longestPath_N_N_ind (std::vector< unsigned > points, int *s, int *d, double *length, int type_distance) |
void | distanceMap_1_N_ind (unsigned source, std::vector< float > &distanceMap, double *length, int type_distance) |
Compute a distance map from a given point. More... | |
Public Attributes | |
int | _strain |
int | _method |
AimsSurfaceTriangle | _surface |
TimeTexture< float > | _texCurv |
geodesic::Mesh | _meshSP |
Geodesic paths or distance maps, using the Dijkstra algorithm.
ex:
Definition at line 41 of file geodesicPath.h.
typedef std::vector<unsigned> aims::GeodesicPath::vect_ui |
Definition at line 44 of file geodesicPath.h.
aims::GeodesicPath::GeodesicPath | ( | const AimsSurfaceTriangle & | surface, |
const TimeTexture< float > & | texCurv, | ||
int | method, | ||
int | strain | ||
) |
Initializes the geodesic path structures for a given mesh geometry, using a constraint map (curvature, typically).
Several methods are available.
surface | mesh to compute geodesic paths or distances on |
texCurv | constraint map texture |
method | 0: unconstrained, 1: minimize the constraint map, suitable for sulci using the curvature as constraint, 2: maximize constraint map, suitable for gyri using the curvature as constraint, 3: unconstrained |
strain | weight factor on the constraints map. In practice we use 3 for sulci and gyri. |
aims::GeodesicPath::GeodesicPath | ( | const AimsSurfaceTriangle & | surface, |
int | method, | ||
int | strain | ||
) |
Same as the above constructor, except that the constraints map is computed internally as the curvature of the mesh.
aims::GeodesicPath::~GeodesicPath | ( | ) |
void aims::GeodesicPath::computeGraphDijkstra | ( | const AimsSurfaceTriangle & | surface, |
const TimeTexture< float > & | texCurv, | ||
int | method, | ||
int | strain | ||
) |
initialize internal stuctures, should be private.
void aims::GeodesicPath::distanceMap_1_N_ind | ( | unsigned | source, |
std::vector< float > & | distanceMap, | ||
double * | length, | ||
int | type_distance | ||
) |
Compute a distance map from a given point.
source | index of the starting point (vertex number) |
distanceMap | output distance map, the vector can be empty, it will be filled with as many values as the mesh vertices number. |
length | output max distance |
type_distance | 0: weighted distance, 1: euclidean distance |
void aims::GeodesicPath::longestPath_1_N_ind | ( | unsigned | source, |
std::vector< unsigned > | targets, | ||
unsigned * | target, | ||
double * | length, | ||
int | type_distance | ||
) |
std::vector<vect_ui> aims::GeodesicPath::longestPath_1_N_len | ( | unsigned | source, |
std::vector< unsigned > | targets, | ||
std::vector< double > & | length, | ||
int | type_distance | ||
) |
std::vector<unsigned> aims::GeodesicPath::longestPath_N_N_ind | ( | std::vector< unsigned > | points, |
int * | s, | ||
int * | d, | ||
double * | length, | ||
int | type_distance | ||
) |
std::vector<unsigned> aims::GeodesicPath::shortestPath_1_1_1_ind | ( | unsigned | source, |
unsigned | middle, | ||
unsigned | target | ||
) |
std::vector<unsigned> aims::GeodesicPath::shortestPath_1_1_ind | ( | unsigned | source, |
unsigned | target | ||
) |
std::vector<unsigned> aims::GeodesicPath::shortestPath_1_1_ind | ( | unsigned | source, |
unsigned | target, | ||
TimeTexture< short > | subset | ||
) |
void aims::GeodesicPath::shortestPath_1_1_ind_xyz | ( | unsigned | source, |
unsigned | target, | ||
std::vector< unsigned > & | indice, | ||
std::vector< Point3df > & | coord3D | ||
) |
double aims::GeodesicPath::shortestPath_1_1_len | ( | unsigned | source, |
unsigned | target | ||
) |
void aims::GeodesicPath::shortestPath_1_1_tex | ( | unsigned | source, |
unsigned | target, | ||
float | texturevalue, | ||
TimeTexture< float > & | tex | ||
) |
std::vector<Point3df> aims::GeodesicPath::shortestPath_1_1_xyz | ( | unsigned | source, |
unsigned | target | ||
) |
void aims::GeodesicPath::shortestPath_1_N_All_ind | ( | unsigned | sources, |
std::vector< unsigned > | targets, | ||
std::vector< std::vector< unsigned > > & | indices | ||
) |
void aims::GeodesicPath::shortestPath_1_N_ind | ( | unsigned | source, |
std::vector< unsigned > | targets, | ||
unsigned * | target, | ||
double * | length | ||
) |
void aims::GeodesicPath::updateWeight | ( | const TimeTexture< float > & | texCurv, |
int | method, | ||
int | strain, | ||
double | sigmo | ||
) |
update internal structures, should be private.
geodesic::Mesh aims::GeodesicPath::_meshSP |
Definition at line 49 of file geodesicPath.h.
int aims::GeodesicPath::_method |
Definition at line 46 of file geodesicPath.h.
int aims::GeodesicPath::_strain |
Definition at line 45 of file geodesicPath.h.
AimsSurfaceTriangle aims::GeodesicPath::_surface |
Definition at line 47 of file geodesicPath.h.
TimeTexture<float> aims::GeodesicPath::_texCurv |
Definition at line 48 of file geodesicPath.h.