20 #include <MitkFiberTrackingExports.h>
24 #include <itkMersenneTwisterRandomVariateGenerator.h>
39 typedef itk::Statistics::MersenneTwisterRandomVariateGenerator
ItkRandGenType;
42 void SetParameters(
float particleWeight,
float particleWidth,
float connectionPotential,
float curvThres,
float inexBalance,
float particlePotential);
45 void DrawRandomPosition(vnl_vector_fixed<float, 3>& R);
48 virtual float ComputeExternalEnergy(vnl_vector_fixed<float, 3>& R, vnl_vector_fixed<float, 3>& N,
Particle* dp) =0;
51 virtual float ComputeInternalEnergyConnection(
Particle *p1,
int ep1) = 0;
52 virtual float ComputeInternalEnergyConnection(
Particle *p1,
int ep1,
Particle *p2,
int ep2) = 0;
53 virtual float ComputeInternalEnergy(
Particle *dp) = 0;
55 int GetNumActiveVoxels();
82 float SpatProb(vnl_vector_fixed<float, 3> pos);
83 float EvaluateOdf(vnl_vector_fixed<float, 3> &pos, vnl_vector_fixed<float, 3> dir);
84 float mbesseli0(
float x);
std::vector< int > m_ActiveIndices
A particle is the basic element of the Gibbs fiber tractography method.
vnl_vector_fixed< float, 3 > m_Spacing
std::vector< float > m_CumulatedSpatialProbability
Contains and manages particles.
Calculates internal and external energy of the new particle configuration proposal.
vnl_matrix_fixed< float, 3, 3 > m_RotationMatrix
DataCollection - Class to facilitate loading/accessing structured data.
SphereInterpolator * m_SphereInterpolator
Lookuptable based trilinear interpolation of spherically arranged scalar values.
itk::Image< float, 3 > ItkFloatImageType
vnl_vector_fixed< int, 3 > m_Size
ItkRandGenType * m_RandGen
float m_CurvatureThreshold
ParticleGrid * m_ParticleGrid
float m_ConnectionPotential
bool m_UseTrilinearInterpolation
float m_SquaredParticleLength
itk::Statistics::MersenneTwisterRandomVariateGenerator ItkRandGenType
float m_ParticleChemicalPotential
ItkFloatImageType * m_Mask