Constellation: Connectivity-based Structural Parcellation


connMatrixTools.h
Go to the documentation of this file.
1#ifndef CONSTELLATION_CONNMATRIXTOOLS_H
2#define CONSTELLATION_CONNMATRIXTOOLS_H
3
4#include <aims/sparsematrix/sparseMatrix.h>
7#include <aims/mesh/surface.h>
8#include <aims/mesh/texture.h>
9
10namespace constel {
11
13 Connectivities *conn, QuickMap &fiberExtremity1NeighMeshVertex,
14 QuickMap &fiberExtremity2NeighMeshVertex, double connectivityThreshold,
15 double distanceThreshold, unsigned connectionLength = 1);
16
18 Connectivities *conn_ptr, QuickMap &fiberExtremity1NeighMeshVertex,
19 QuickMap &fiberExtremity2NeighMeshVertex);
20
22 aims::SparseMatrix *conn_ptr, QuickMap &fiberExtremity1NeighMeshVertex,
23 QuickMap &fiberExtremity2NeighMeshVertex, double connectivityThreshold,
24 double distanceThreshold, unsigned connectionLength = 1);
25
27 aims::SparseMatrix *conn_ptr, aims::SparseMatrix *conn_ptr2,
28 QuickMap &fiberExtremity1NeighMeshVertex,
29 QuickMap &fiberExtremity2NeighMeshVertex, double connectivityThreshold,
30 double distanceThreshold, std::size_t rowIndex_min,
31 std::size_t rowIndex_max = 0, unsigned connectionLength = 1);
32
34 Connectivities *conn_ptr, QuickMap &fiberExtremity1NeighMeshVertex_rows,
35 QuickMap &fiberExtremity2NeighMeshVertex_cols,
36 double connectivityThreshold, double distanceThreshold);
37
39 Connectivities *conn_ptr, const BundleConnections &connections,
40 std::vector< double > cortexConnectionsWeights,
41 double connectivityThreshold, double distanceThreshold);
42
44 aims::SparseMatrix *conn_ptr, const BundleConnections &connections,
45 double connectivityThreshold, double distanceThreshold,
46 std::size_t rowIndex_min = 0, std::size_t rowIndex_max = 0,
47 aims::SparseMatrix *conn_ptr2 = 0);
48
50 Connectivities *conn_ptr, const BundleConnections &connections,
51 double connectivityThreshold, double distanceThreshold,
52 unsigned length_min, unsigned length_max,
53 ConnectionsLength &connectionsLength);
54
56 Connectivities *conn_ptr, const BundleConnections &connections,
57 double connectivityThreshold, double distanceThreshold,
58 unsigned length_min, unsigned length_max,
59 ConnectionsLength &connectionsLength);
60
62 Connectivities *conn_ptr, const BundleConnections &connections,
63 double connectivityThreshold, double distanceThreshold,
64 float length_min, float length_max,
65 ConnectionsFloatLength &connectionsLength);
66
68 Connectivities *conn_ptr, const BundleConnections &connections,
69 double connectivityThreshold, double distanceThreshold);
70
71 template<int D, class T> bool
73 const AimsTimeSurface<D, T> &aimsMesh,
74 const std::vector<std::set<unsigned> > &polygonsByVertex_Index,
75 Point3df fiberPoint1, Point3df fiberPoint2, unsigned meshClosestPoint,
76 QuickMap **polygonVerticesDistMap = 0);
77
78 template<int D, class T> bool
80 const AimsTimeSurface<D, T> &aimsMesh,
81 const std::vector<std::set<unsigned> > &polygonsByVertex_Index,
82 Point3df fiberPoint1, Point3df fiberPoint2, unsigned meshClosestPoint,
83 QuickMap **polygonVerticesDistMap = 0);
84
85 template<int D, class T> bool
87 const AimsTimeSurface<D, T> &aimsMesh,
88 const std::vector<std::set<unsigned> > &polygonsByVertex_Index,
89 Point3df fiberPoint1, Point3df fiberPoint2, unsigned meshClosestPoint,
90 std::vector<QuickMap> &distanceThresholdNeighborhoodByVertex,
91 QuickMap **polygonVerticesDistMap_2ptr);
92
94 const Fibers &fibers, const AimsSurfaceTriangle &inAimsMesh,
95 Motion motion, const TimeTexture<short> &targetRegionsTex,
96 std::string filename);
97
99 const Fibers &fibers, const AimsSurfaceTriangle &inAimsMesh,
100 Motion motion, const TimeTexture<short> &seedRegionsTex,
101 std::size_t seedRegionLabel, std::string connmatrix_filename,
102 std::string connTexture_filename);
103
105 const Fibers &fibers, const AimsSurfaceTriangle &inAimsMesh,
106 Motion motion, const TimeTexture<short> &seedRegionsTex,
107 std::size_t seedRegionLabel, float distthresh, float wthresh,
108 std::string connmatrix_filename, std::string connTexture_filename = "",
109 bool logOption = false);
110
111} // namespace constel
112
113#endif // ifndef CONSTELLATION_CONNMATRIXTOOLS_H
std::vector< std::pair< std::size_t, double > > QuickMap
void fillconnMatrix(Connectivities *conn, QuickMap &fiberExtremity1NeighMeshVertex, QuickMap &fiberExtremity2NeighMeshVertex, double connectivityThreshold, double distanceThreshold, unsigned connectionLength=1)
void fillconnMatrixWithConnectionsPlusFloatLengthWeight(Connectivities *conn_ptr, const BundleConnections &connections, double connectivityThreshold, double distanceThreshold, float length_min, float length_max, ConnectionsFloatLength &connectionsLength)
std::vector< Connection > BundleConnections
void connMatrixSeedRegionSmoothed(const Fibers &fibers, const AimsSurfaceTriangle &inAimsMesh, Motion motion, const TimeTexture< short > &seedRegionsTex, std::size_t seedRegionLabel, float distthresh, float wthresh, std::string connmatrix_filename, std::string connTexture_filename="", bool logOption=false)
void fillconnMatrixWithConnections(Connectivities *conn_ptr, const BundleConnections &connections, std::vector< double > cortexConnectionsWeights, double connectivityThreshold, double distanceThreshold)
std::vector< Fiber > Fibers
Definition bundleSet.h:9
bool computeIntersectionPointFiberSegmentAndMesh(const AimsTimeSurface< D, T > &aimsMesh, const std::vector< std::set< unsigned > > &polygonsByVertex_Index, Point3df fiberPoint1, Point3df fiberPoint2, unsigned meshClosestPoint, QuickMap **polygonVerticesDistMap=0)
bool computeIntersectionPointNeighborhoodFiberSegmentAndMesh(const AimsTimeSurface< D, T > &aimsMesh, const std::vector< std::set< unsigned > > &polygonsByVertex_Index, Point3df fiberPoint1, Point3df fiberPoint2, unsigned meshClosestPoint, std::vector< QuickMap > &distanceThresholdNeighborhoodByVertex, QuickMap **polygonVerticesDistMap_2ptr)
std::vector< float > ConnectionsFloatLength
void fillconnMatrixWithConnectionsPlusLength(Connectivities *conn_ptr, const BundleConnections &connections, double connectivityThreshold, double distanceThreshold, unsigned length_min, unsigned length_max, ConnectionsLength &connectionsLength)
void fillNonSymetricConnMatrix(Connectivities *conn_ptr, QuickMap &fiberExtremity1NeighMeshVertex_rows, QuickMap &fiberExtremity2NeighMeshVertex_cols, double connectivityThreshold, double distanceThreshold)
void fillNonSymetricConnMatrixWithConnections(Connectivities *conn_ptr, const BundleConnections &connections, double connectivityThreshold, double distanceThreshold)
void connMatrixTargetsToTargets(const Fibers &fibers, const AimsSurfaceTriangle &inAimsMesh, Motion motion, const TimeTexture< short > &targetRegionsTex, std::string filename)
void fillconnMatrixWithConnectionsPlusLengthWeight(Connectivities *conn_ptr, const BundleConnections &connections, double connectivityThreshold, double distanceThreshold, unsigned length_min, unsigned length_max, ConnectionsLength &connectionsLength)
void connMatrixSeedRegion(const Fibers &fibers, const AimsSurfaceTriangle &inAimsMesh, Motion motion, const TimeTexture< short > &seedRegionsTex, std::size_t seedRegionLabel, std::string connmatrix_filename, std::string connTexture_filename)
std::vector< unsigned > ConnectionsLength
std::vector< Connectivity > Connectivities
bool computeIntersectionPointFiberSegmentAndMesh2(const AimsTimeSurface< D, T > &aimsMesh, const std::vector< std::set< unsigned > > &polygonsByVertex_Index, Point3df fiberPoint1, Point3df fiberPoint2, unsigned meshClosestPoint, QuickMap **polygonVerticesDistMap=0)
void fillconnMatrixNoSmoothing(Connectivities *conn_ptr, QuickMap &fiberExtremity1NeighMeshVertex, QuickMap &fiberExtremity2NeighMeshVertex)
aims::AffineTransformation3d Motion
AIMSDATA_API AimsTimeSurface< 3, Void > AimsSurfaceTriangle