Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
mitkGibbsEnergyComputer.h
Go to the documentation of this file.
1 #ifndef GIBBSENERGYCOMPUTER_H
2 #define GIBBSENERGYCOMPUTER_H
3 
4 #include <MitkFiberTrackingExports.h>
6 #include <mitkParticleGrid.h>
8 #include <itkMersenneTwisterRandomVariateGenerator.h>
9 
10 #include "mitkEnergyComputer.h"
11 
12 
13 using namespace mitk;
14 
18 class MITKFIBERTRACKING_EXPORT GibbsEnergyComputer : public EnergyComputer
19 {
20  public:
21 
22  typedef itk::Vector<float, QBALL_ODFSIZE> OdfVectorType;
23  typedef itk::Image<OdfVectorType, 3> ItkQBallImgType;
24  typedef itk::Image<float, 3> ItkFloatImageType;
25  typedef itk::Statistics::MersenneTwisterRandomVariateGenerator ItkRandGenType;
26 
27  GibbsEnergyComputer(ItkQBallImgType* qballImage, ItkFloatImageType* mask, ParticleGrid* particleGrid, SphereInterpolator* interpolator, ItkRandGenType* randGen);
28 
29  virtual ~GibbsEnergyComputer();
30 
31  // external energy calculation
32  float ComputeExternalEnergy(vnl_vector_fixed<float, 3>& R, vnl_vector_fixed<float, 3>& N, Particle* dp) override;
33 
34  // internal energy calculation
35  float ComputeInternalEnergyConnection(Particle *p1,int ep1) override;
36  float ComputeInternalEnergyConnection(Particle *p1,int ep1, Particle *p2, int ep2) override;
37  float ComputeInternalEnergy(Particle *dp) override;
38 
39  float EvaluateOdf(vnl_vector_fixed<float, 3>& pos, vnl_vector_fixed<float, 3> dir);
40  protected:
41 
42  ItkQBallImgType* m_Image;
43 
44 };
45 
46 #endif
A particle is the basic element of the Gibbs fiber tractography method.
Definition: mitkParticle.h:30
Contains and manages particles.
Calculates internal and external energy of the new particle configuration proposal.
DataCollection - Class to facilitate loading/accessing structured data.
Lookuptable based trilinear interpolation of spherically arranged scalar values.
itk::Vector< float, QBALL_ODFSIZE > OdfVectorType
itk::Statistics::MersenneTwisterRandomVariateGenerator ItkRandGenType
itk::Image< float, 3 > ItkFloatImageType
itk::Image< OdfVectorType, 3 > ItkQBallImgType
ODF lookuptable based energy computer.