go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxPatternIntensityMetric.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright UMC Utrecht and contributors
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 elxPatternIntensityMetric_h
19#define elxPatternIntensityMetric_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
23
24namespace elastix
25{
26
36template <class TElastix>
37class ITK_TEMPLATE_EXPORT PatternIntensityMetric
38 : public itk::PatternIntensityImageToImageMetric<typename MetricBase<TElastix>::FixedImageType,
39 typename MetricBase<TElastix>::MovingImageType>
40 , public MetricBase<TElastix>
41{
42public:
44
50 using Pointer = itk::SmartPointer<Self>;
51 using ConstPointer = itk::SmartPointer<const Self>;
52
54 itkNewMacro(Self);
55
58
63 elxClassNameMacro("PatternIntensity");
64
66 using typename Superclass1::CoordinateRepresentationType;
67 using typename Superclass1::MovingImageType;
68 using typename Superclass1::MovingImagePixelType;
69 using typename Superclass1::MovingImageConstPointer;
70 using typename Superclass1::FixedImageType;
71 using typename Superclass1::FixedImageConstPointer;
72 using typename Superclass1::FixedImageRegionType;
73 using typename Superclass1::TransformType;
74 using typename Superclass1::TransformPointer;
75 using typename Superclass1::InputPointType;
76 using typename Superclass1::OutputPointType;
77 using typename Superclass1::TransformParametersType;
78 using typename Superclass1::TransformJacobianType;
79 using typename Superclass1::InterpolatorType;
80 using typename Superclass1::InterpolatorPointer;
81 using typename Superclass1::RealType;
82 using typename Superclass1::GradientPixelType;
83 using typename Superclass1::GradientImageType;
84 using typename Superclass1::GradientImagePointer;
85 using typename Superclass1::GradientImageFilterType;
86 using typename Superclass1::GradientImageFilterPointer;
87 using typename Superclass1::FixedImageMaskType;
88 using typename Superclass1::FixedImageMaskPointer;
89 using typename Superclass1::MovingImageMaskType;
90 using typename Superclass1::MovingImageMaskPointer;
91 using typename Superclass1::MeasureType;
92 using typename Superclass1::DerivativeType;
93 using typename Superclass1::ParametersType;
96 using typename Superclass1::ImageSamplerType;
105
107 itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension);
108
110 itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension);
111
113 using typename Superclass2::ElastixType;
114 using typename Superclass2::RegistrationType;
116
120 void
121 Initialize() override;
122
128 void
130
131 void
133
134protected:
138 ~PatternIntensityMetric() override = default;
139
140private:
142};
143
144} // end namespace elastix
145
146#ifndef ITK_MANUAL_INSTANTIATION
147# include "elxPatternIntensityMetric.hxx"
148#endif
149
150#endif // end #ifndef elxPatternIntensityMetric_h
This class is the elastix base class for all Metrics.
Definition: elxMetricBase.h:73
itk::SingleValuedCostFunction ITKBaseType
Definition: elxMetricBase.h:97
typename ElastixType::MovingImageType MovingImageType
Definition: elxMetricBase.h:92
typename ElastixType::RegistrationBaseType RegistrationType
An metric based on the itk::PatternIntensityImageToImageMetric.
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
~PatternIntensityMetric() override=default
itk::SmartPointer< const Self > ConstPointer
typename Superclass2::ITKBaseType ITKBaseType
void BeforeRegistration() override
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
elxClassNameMacro("PatternIntensity")
ITK_DISALLOW_COPY_AND_MOVE(PatternIntensityMetric)
void BeforeEachResolution() override
typename ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
typename MovingImageType::RegionType MovingImageRegionType
typename FixedImageType::PixelType FixedImagePixelType
typename ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
typename MovingImageLimiterType::OutputType MovingImageLimiterOutputType
typename FixedImageLimiterType::OutputType FixedImageLimiterOutputType
typename ImageSamplerType::Pointer ImageSamplerPointer
This class is a base class for any image sampler.
Base class for all ITK limiter function objects.
Computes similarity between two objects to be registered.


Generated on 1687403667 for elastix by doxygen 1.9.4 elastix logo