NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkMultiResolutionBlockMatchingMethod.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkMultiResolutionBlockMatchingMethod_h
16 #define itkMultiResolutionBlockMatchingMethod_h
17 
19 #include <niftkConversionUtils.h>
20 #include "itkBlockMatchingMethod.h"
21 
22 namespace itk
23 {
24 
32 template <typename TInputImageType, class TScalarType>
34  : public MultiResolutionImageRegistrationWrapper<TInputImageType>
35 {
36 public:
40  typedef SmartPointer<Self> Pointer;
41  typedef SmartPointer<const Self> ConstPointer;
42 
44  itkNewMacro(Self);
45 
48 
51  typedef BlockMatchingType* BlockMatchingPointer;
53 
55  itkSetMacro(VarianceRejectionInitialPercentage, int);
56  itkGetMacro(VarianceRejectionInitialPercentage, int);
57 
59  itkSetMacro(VarianceRejectionPercentageMultiplier, double);
60  itkGetMacro(VarianceRejectionPercentageMultiplier, double);
61 
63  itkSetMacro(VarianceRejectionLowerPercentageLimit, int);
64  itkGetMacro(VarianceRejectionLowerPercentageLimit, int);
65 
67  itkSetMacro(DistanceRejectionInitialPercentage, int);
68  itkGetMacro(DistanceRejectionInitialPercentage, int);
69 
71  itkSetMacro(DistanceRejectionPercentageMultiplier, double);
72  itkGetMacro(DistanceRejectionPercentageMultiplier, double);
73 
75  itkSetMacro(DistanceRejectionLowerPercentageLimit, int);
76  itkGetMacro(DistanceRejectionLowerPercentageLimit, int);
77 
78 protected:
81 
83  virtual void PreparePyramids() throw (ExceptionObject);
84 
86  virtual void AfterSingleResolutionRegistration();
87 
88 private:
89  MultiResolutionBlockMatchingMethod(const Self&); //purposely not implemented
90  void operator=(const Self&); //purposely not implemented
91 
93  int m_VarianceRejectionInitialPercentage;
94 
96  double m_VarianceRejectionPercentageMultiplier;
97 
99  int m_VarianceRejectionLowerPercentageLimit;
100 
102  int m_DistanceRejectionInitialPercentage;
103 
105  double m_DistanceRejectionPercentageMultiplier;
106 
108  int m_DistanceRejectionLowerPercentageLimit;
109 
111  int m_CurrentDistancePercentage;
112 
114  int m_CurrentVariancePercentage;
115 
117  void SetVariancePercentage(int percentage);
118 
120  void SetDistancePercentage(int percentage);
121 };
122 
123 } // end namespace itk
124 
125 #ifndef ITK_MANUAL_INSTANTIATION
126 #include "itkMultiResolutionBlockMatchingMethod.txx"
127 #endif
128 
129 #endif
130 
131 
132 
PointSet< TScalarType, TImageType::ImageDimension, DefaultStaticMeshTraits< TScalarType, TImageType::ImageDimension, TImageType::ImageDimension, TScalarType, TScalarType > > PointSetType
Definition: itkBlockMatchingMethod.h:130
Extends MultiResolutionImageRegistrationWrapper to provide setting up block matching method at each r...
Definition: itkMultiResolutionBlockMatchingMethod.h:33
virtual ~MultiResolutionBlockMatchingMethod()
Definition: itkMultiResolutionBlockMatchingMethod.h:80
BlockMatchingMethod< TInputImageType, TScalarType >::PointSetType PointSetType
Definition: itkMultiResolutionBlockMatchingMethod.h:52
Definition: niftkITKAffineResampleImage.cxx:74
SmartPointer< const Self > ConstPointer
Definition: itkMultiResolutionBlockMatchingMethod.h:41
MultiResolutionImageRegistrationWrapper< TInputImageType > Superclass
Definition: itkMultiResolutionBlockMatchingMethod.h:39
Initial implementation of Seb Ourselin's block matching algorithm.
Definition: itkBlockMatchingMethod.h:67
MultiResolutionBlockMatchingMethod Self
Definition: itkMultiResolutionBlockMatchingMethod.h:38
BlockMatchingType * BlockMatchingPointer
Definition: itkMultiResolutionBlockMatchingMethod.h:51
SmartPointer< Self > Pointer
Definition: itkMultiResolutionBlockMatchingMethod.h:40
BlockMatchingMethod< TInputImageType, TScalarType > BlockMatchingType
Definition: itkMultiResolutionBlockMatchingMethod.h:47
UCL Base class for multi-resolution image registration methods.
Definition: itkMultiResolutionImageRegistrationWrapper.h:41