ANIMA  4.0
animaLTSWTransformAgregator.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include <itkAffineTransform.h>
5 
6 namespace anima
7 {
8 
10  bool operator() (const std::pair<unsigned int, double> & f, const std::pair<unsigned int, double> & s)
11  { return f.second < s.second; }
12 };
13 
14 template <unsigned int NDimensions = 3>
16 public BaseTransformAgregator <NDimensions>
17 {
18 public:
20  typedef typename Superclass::PointType PointType;
23  typedef typename itk::AffineTransform <ScalarType,NDimensions> BaseOutputTransformType;
25 
28 
29  PointType GetEstimationBarycenter() ITK_OVERRIDE;
30  virtual bool Update() ITK_OVERRIDE;
31 
32  void SetLTSCut(double ltsCut) {m_LTSCut = ltsCut;this->SetUpToDate(false);}
33  void SeStoppingThreshold(double stopThr) {m_StoppingThreshold = stopThr;this->SetUpToDate(false);}
34 
35 private:
36  bool ltswEstimateTranslationsToAny();
37  bool ltswEstimateAnyToAffine();
38 
39  bool endLTSCondition(BaseOutputTransformType *oldTrsf, BaseOutputTransformType *newTrsf);
40 
41  double m_LTSCut;
42  double m_StoppingThreshold;
43 
44  PointType m_EstimationBarycenter;
45 };
46 
47 } // end of namespace anima
48 
itk::Point< InternalScalarType, NDimensions > PointType
Superclass::InternalScalarType InternalScalarType
itk::AffineTransform< ScalarType, NDimensions > BaseOutputTransformType
Superclass::BaseInputTransformType BaseInputTransformType
BaseTransformAgregator< NDimensions > Superclass
itk::Transform< InternalScalarType, NDimensions, NDimensions > BaseInputTransformType
bool operator()(const std::pair< unsigned int, double > &f, const std::pair< unsigned int, double > &s)