ITK  4.6.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 >
36 {
37 public:
43 
45  itkNewMacro( Self );
46 
49 
51  typedef typename Superclass::ScalesType ScalesType;
52 
55 
57  typedef typename Superclass::FloatType FloatType;
58 
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 
72  typedef typename FixedImageType::PointType FixedPointType;
73  typedef typename FixedImageType::IndexType FixedIndexType;
74  typedef typename FixedImageType::PointValueType FixedPointValueType;
75 
77 
78  typedef typename MovingImageType::PointType MovingPointType;
79  typedef typename MovingImageType::IndexType MovingIndexType;
80  typedef typename MovingImageType::PointValueType MovingPointValueType;
81 
83 
84 protected:
87 
88  virtual void PrintSelf(std::ostream &os, Indent indent) const;
89 
90  virtual void ComputeSampleShifts(const ParametersType &deltaParameters, ScalesType &localShifts);
91 
92  template<typename TContinuousIndexType>
93  void TransformPointToContinuousIndex(const VirtualPointType &point, TContinuousIndexType &mappedIndex);
94 
95 private:
96  RegistrationParameterScalesFromIndexShift(const Self&); //purposely not implemented
97  void operator=(const Self&); //purposely not implemented
98 
99  template <typename TTransform>
100  void ComputeSampleShiftsInternal(const ParametersType &deltaParameters, ScalesType &localShifts);
101 
102 }; //class RegistrationParameterScalesFromIndexShift
103 
104 } // namespace itk
105 
106 
107 #ifndef ITK_MANUAL_INSTANTIATION
108 #include "itkRegistrationParameterScalesFromIndexShift.hxx"
109 #endif
110 
111 #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...
virtual void PrintSelf(std::ostream &os, Indent indent) const
void TransformPointToContinuousIndex(const VirtualPointType &point, TContinuousIndexType &mappedIndex)
RegistrationParameterScalesFromShiftBase< TMetric > Superclass
void ComputeSampleShiftsInternal(const ParametersType &deltaParameters, ScalesType &localShifts)
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
virtual void ComputeSampleShifts(const ParametersType &deltaParameters, ScalesType &localShifts)
itk::ContinuousIndex< MovingPointValueType, MovingImageType::ImageDimension > MovingContinuousIndexType