20 #ifndef __itkSphericalPolarFourierEstimationImageFilter_h 21 #define __itkSphericalPolarFourierEstimationImageFilter_h 39 template <
class TInputImage,
class TOutputImage >
87 itkSetMacro(EstimationType, EstimationType);
88 itkGetMacro(EstimationType, EstimationType);
90 itkSetMacro(L1SolverType, L1SolverType);
91 itkGetMacro(L1SolverType, L1SolverType);
96 itkSetMacro(BasisCombinationMatrix, MatrixPointer);
97 itkGetMacro(BasisCombinationMatrix, MatrixPointer);
98 itkSetMacro(BasisEnergyDL, VectorPointer);
99 itkGetMacro(BasisEnergyDL, VectorPointer);
100 itkSetMacro(BasisEnergyPowerDL,
double);
101 itkGetMacro(BasisEnergyPowerDL,
double);
104 itkGetMacro(RegularizationWeight, VectorPointer);
106 itkSetMacro(IsOriginalBasis,
bool);
107 itkGetMacro(IsOriginalBasis,
bool);
108 itkBooleanMacro(IsOriginalBasis);
110 itkSetMacro(LambdaSpherical,
double);
111 itkGetMacro(LambdaSpherical,
double);
112 itkSetMacro(LambdaRadial,
double);
113 itkGetMacro(LambdaRadial,
double);
114 itkSetMacro(LambdaL1,
double);
115 itkGetMacro(LambdaL1,
double);
118 virtual void SetBasisScale(
const double scale);
119 itkGetMacro(BasisScale,
double);
122 itkSetObjectMacro(MDImage, ScalarImageType);
123 itkGetObjectMacro(MDImage, ScalarImageType);
124 itkGetConstObjectMacro(MDImage, ScalarImageType);
127 itkSetObjectMacro(ScaleImage, ScalarImageType);
128 itkGetObjectMacro(ScaleImage, ScalarImageType);
129 itkGetConstObjectMacro(ScaleImage, ScalarImageType);
133 itkSetMacro(B0Weight,
double);
134 itkGetMacro(B0Weight,
double);
140 virtual std::vector<int>
DimToRank(
const int dimm)
const 141 {
return std::vector<int>();}
143 virtual int RankToDim(
const bool is_radial=
false,
const int radialRank=-1,
const int shRank=-1)
const 147 {
return std::vector<int>();};
148 virtual int GetIndexJ(
const int n,
const int l,
const int m)
const 152 virtual double ComputeScale(
const bool setScale=
true);
176 void PrintSelf(std::ostream& os, Indent indent)
const ITK_OVERRIDE;
177 typename LightObject::Pointer InternalClone()
const ITK_OVERRIDE;
222 void operator=(
const Self&);
228 #if ITK_TEMPLATE_EXPLICIT 229 # include "Templates/itkSphericalPolarFourierEstimationImageFilter+-.h" 232 #if !defined(ITK_MANUAL_INSTANTIATION) && !defined(__itkSphericalPolarFourierEstimationImageFilter_hxx) Superclass::STDVectorPointer STDVectorPointer
SmartPointer< Self > Pointer
Superclass::STDVectorType STDVectorType
Superclass::MatrixType MatrixType
solve least square problem with L1 regularization using FISTA
MatrixPointer m_BasisCombinationMatrix
bool IsImageEmpty(const SmartPointer< ImageType > &image)
L2SolverType::Pointer m_L2Solver
EstimationType m_EstimationType
Superclass::MatrixPointer MatrixPointer
L2RegularizedLeastSquaresSolver< double > L2SolverType
#define itkTypedefMaskedImageToImageMacro(Superclass)
Superclass::STDVectorPointer STDVectorPointer
SmartPointer< Self > Pointer
virtual std::vector< int > GetIndexNLM(const int index) const
MatrixPointer m_BasisMatrixForB0
L1FISTASolverType::Pointer m_L1FISTASolver
VectorPointer m_BasisEnergyDL
bool IsAdaptiveScale() const
Superclass::VectorPointer VectorPointer
virtual int RankToDim(const bool is_radial=false, const int radialRank=-1, const int shRank=-1) const
virtual std::vector< int > DimToRank(const int dimm) const
virtual ~SphericalPolarFourierEstimationImageFilter()
DiffusionModelEstimationInSphericalCoordinateImageFilter< TInputImage, TOutputImage > Superclass
ScalarImageType::Pointer m_ScaleImage
virtual int GetIndexJ(const int n, const int l, const int m) const
SmartPointer< Self > Pointer
SphericalPolarFourierEstimationImageFilter Self
L1SolverType m_L1SolverType
Superclass::VectorType VectorType
SpamsWeightedLassoSolver< double > L1SpamsSolverType
static void InitializeThreadedLibraries(const int numThreads)
estimate the coeffcients of generalized Spherical Polar Fourier basis which can be separated into dif...
SmartPointer< Self > Pointer
solve least square problem with L2 regularization
double m_BasisEnergyPowerDL
solve weighted LASSO using spams
SmartPointer< const Self > ConstPointer
Superclass::MatrixPointer MatrixPointer
base filter for estimation of diffusion models in spherical coordinates
L1RegularizedLeastSquaresFISTASolver< double > L1FISTASolverType
Superclass::VectorPointer VectorPointer
#define itkSetGetBooleanMacro(name)
ScalarImageType::Pointer m_MDImage
L1SpamsSolverType::Pointer m_L1SpamsSolver