ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkRegistrationParameterScalesFromIndexShift.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
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 * https://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
23namespace itk
24{
25
34template <typename TMetric>
37{
38public:
39 ITK_DISALLOW_COPY_AND_MOVE(RegistrationParameterScalesFromIndexShift);
40
46
48 itkNewMacro(Self);
49
51 itkOverrideGetNameOfClassMacro(RegistrationParameterScalesFromIndexShift);
52
54 using typename Superclass::ScalesType;
55
57 using typename Superclass::ParametersType;
58
60 using typename Superclass::FloatType;
61
62 using typename Superclass::VirtualPointType;
63 using typename Superclass::VirtualIndexType;
65 using typename Superclass::FixedTransformType;
66 using typename Superclass::JacobianType;
68
69 using FixedImageType = typename TMetric::FixedImageType;
70 using MovingImageType = typename TMetric::MovingImageType;
71
72 using FixedImageConstPointer = typename FixedImageType::ConstPointer;
73 using MovingImageConstPointer = typename MovingImageType::ConstPointer;
74
75 using FixedPointType = typename FixedImageType::PointType;
76 using FixedIndexType = typename FixedImageType::IndexType;
77 using FixedPointValueType = typename FixedImageType::PointValueType;
78
80
81 using MovingPointType = typename MovingImageType::PointType;
82 using MovingIndexType = typename MovingImageType::IndexType;
83 using MovingPointValueType = typename MovingImageType::PointValueType;
84
87
88protected:
91
92 void
93 PrintSelf(std::ostream & os, Indent indent) const override;
94
95 void
96 ComputeSampleShifts(const ParametersType & deltaParameters, ScalesType & sampleShifts) override;
97
98 template <typename TContinuousIndexType>
99 void
100 TransformPointToContinuousIndex(const VirtualPointType & point, TContinuousIndexType & mappedIndex);
101
102private:
103 template <typename TTransform>
104 void
105 ComputeSampleShiftsInternal(const ParametersType & deltaParameters, ScalesType & sampleShifts);
106
107}; // class RegistrationParameterScalesFromIndexShift
108
109} // namespace itk
110
111
112#ifndef ITK_MANUAL_INSTANTIATION
113# include "itkRegistrationParameterScalesFromIndexShift.hxx"
114#endif
115
116#endif /* itkRegistrationParameterScalesFromIndexShift_h */
A templated class holding a point in n-Dimensional image space.
Control indentation during Print() invocation.
Definition itkIndent.h:50
typename itk::ContinuousIndex< MovingPointValueType, MovingImageType::ImageDimension > MovingContinuousIndexType
void PrintSelf(std::ostream &os, Indent indent) const override
~RegistrationParameterScalesFromIndexShift() override=default
typename itk::ContinuousIndex< FixedPointValueType, FixedImageType::ImageDimension > FixedContinuousIndexType
RegistrationParameterScalesFromShiftBase< TMetric > Superclass
void TransformPointToContinuousIndex(const VirtualPointType &point, TContinuousIndexType &mappedIndex)
void ComputeSampleShiftsInternal(const ParametersType &deltaParameters, ScalesType &sampleShifts)
void ComputeSampleShifts(const ParametersType &deltaParameters, ScalesType &sampleShifts) override
typename TMetric::VirtualImageConstPointer VirtualImageConstPointer
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents