6 #include <itkLightObject.h> 7 #include <itkVariableLengthVector.h> 8 #include <itkSymmetricEigenAnalysis.h> 10 #include <vnl/vnl_math.h> 11 #include <vnl/vnl_diag_matrix.h> 12 #include <vnl/vnl_matrix.h> 14 #include <AnimaMCMBaseExport.h> 40 using
EigenAnalysisType = itk::SymmetricEigenAnalysis < vnl_matrix <
double>, vnl_diag_matrix<
double>, vnl_matrix <
double> >;
45 void SetInputModels(
std::vector <
MCMPointer> &models) {m_InputModels = models; m_UpToDate =
false;}
46 void SetInputWeights(std::vector <double> &weights) {m_InputWeights = weights; m_UpToDate =
false;}
48 void SetNumberOfOutputDirectionalCompartments(
unsigned int val);
49 void ResetNumberOfOutputDirectionalCompartments();
51 void SetOutputModel(
MCMType *model);
55 unsigned int GetOutputModelSize();
65 void ComputeTensorDistanceMatrix();
66 virtual void ComputeNonTensorDistanceMatrix();
68 void ComputeOutputTensorCompatibleModel();
69 virtual void ComputeOutputNonTensorModel();
72 std::vector <MCMPointer> m_InputModels;
73 std::vector <double> m_InputWeights;
75 unsigned int m_NumberOfOutputDirectionalCompartments;
itk::VariableLengthVector< double > m_InternalOutputVector
itk::LightObject Superclass
Computes a weighted average of input multi-compartment models. The output model is at the same time g...
std::vector< double > m_WorkCompartmentWeights
itk::SmartPointer< Self > Pointer
std::vector< std::vector< double > > m_InternalSpectralMemberships
LECalculatorPointer m_leCalculator
itk::SymmetricEigenAnalysis< vnl_matrix< double >, vnl_diag_matrix< double >, vnl_matrix< double > > EigenAnalysisType
vnl_diag_matrix< double > m_InternalWorkEigenValuesInputSticks
MCMType::BaseCompartmentPointer MCMCompartmentPointer
MultiCompartmentModel: holds several diffusion compartments, ordered by type It also handles weights ...
typename LECalculatorType::Pointer LECalculatorPointer
vnl_matrix< double > m_InternalDistanceMatrix
std::vector< itk::VariableLengthVector< double > > m_InternalLogTensors
vnl_matrix< double > m_InternalWorkMatrix
std::vector< MCMCompartmentPointer > m_WorkCompartmentsVector
EigenAnalysisType m_InternalEigenAnalyzer
std::vector< double > m_InternalOutputWeights
void SetUpToDate(bool val)
MCMType::Pointer MCMPointer
void SetInputWeights(std::vector< double > &weights)
SpectralClusterType m_InternalSpectralCluster
itk::SmartPointer< const Self > ConstPointer