ITK  4.13.0
Insight Segmentation and Registration Toolkit
itkRegistrationParameterScalesFromIndexShift.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkRegistrationParameterScalesFromIndexShift_h
19 #define itkRegistrationParameterScalesFromIndexShift_h
20 
22 
23 namespace itk
24 {
25 
33 template < typename TMetric >
34 class ITK_TEMPLATE_EXPORT RegistrationParameterScalesFromIndexShift :
36 {
37 public:
43 
45  itkNewMacro( Self );
46 
49 
51  typedef typename Superclass::ScalesType ScalesType;
52 
54  typedef typename Superclass::ParametersType ParametersType;
55 
57  typedef typename Superclass::FloatType FloatType;
58 
59  typedef typename Superclass::VirtualPointType VirtualPointType;
60  typedef typename Superclass::VirtualIndexType VirtualIndexType;
61  typedef typename Superclass::MovingTransformType MovingTransformType;
62  typedef typename Superclass::FixedTransformType FixedTransformType;
63  typedef typename Superclass::JacobianType JacobianType;
64  typedef typename Superclass::VirtualImageConstPointer VirtualImageConstPointer;
65 
66  typedef typename TMetric::FixedImageType FixedImageType;
67  typedef typename TMetric::MovingImageType MovingImageType;
68 
69  typedef typename FixedImageType::ConstPointer FixedImageConstPointer;
70  typedef typename MovingImageType::ConstPointer MovingImageConstPointer;
71 
74  typedef typename FixedImageType::PointValueType FixedPointValueType;
75 
77 
80  typedef typename MovingImageType::PointValueType MovingPointValueType;
81 
83 
84 protected:
87 
88  virtual void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
89 
90  virtual void ComputeSampleShifts(const ParametersType &deltaParameters, ScalesType &localShifts) ITK_OVERRIDE;
91 
92  template<typename TContinuousIndexType>
93  void TransformPointToContinuousIndex(const VirtualPointType &point, TContinuousIndexType &mappedIndex);
94 
95 private:
96  ITK_DISALLOW_COPY_AND_ASSIGN(RegistrationParameterScalesFromIndexShift);
97 
98  template <typename TTransform>
99  void ComputeSampleShiftsInternal(const ParametersType &deltaParameters, ScalesType &localShifts);
100 
101 }; //class RegistrationParameterScalesFromIndexShift
102 
103 } // namespace itk
104 
105 
106 #ifndef ITK_MANUAL_INSTANTIATION
107 #include "itkRegistrationParameterScalesFromIndexShift.hxx"
108 #endif
109 
110 #endif /* itkRegistrationParameterScalesFromIndexShift_h */
Light weight base class for most itk classes.
Registration helper class for estimating scales of transform parameters from the maximum voxel shift ...
Registration helper base class for estimating scales of transform parameters from the maximum voxel s...
RegistrationParameterScalesFromShiftBase< TMetric > Superclass
itk::ContinuousIndex< FixedPointValueType, FixedImageType::ImageDimension > FixedContinuousIndexType
A templated class holding a point in n-Dimensional image space.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::ContinuousIndex< MovingPointValueType, MovingImageType::ImageDimension > MovingContinuousIndexType