go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxAdvancedMattesMutualInformationMetric.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 elxAdvancedMattesMutualInformationMetric_h
19#define elxAdvancedMattesMutualInformationMetric_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
23
24namespace elastix
25{
26
99template <class TElastix>
101 : public itk::ParzenWindowMutualInformationImageToImageMetric<typename MetricBase<TElastix>::FixedImageType,
102 typename MetricBase<TElastix>::MovingImageType>
103 , public MetricBase<TElastix>
104{
105public:
107
114 using Pointer = itk::SmartPointer<Self>;
115 using ConstPointer = itk::SmartPointer<const Self>;
116
118 itkNewMacro(Self);
119
122
127 elxClassNameMacro("AdvancedMattesMutualInformation");
128
130 using typename Superclass1::CoordinateRepresentationType;
131 using typename Superclass1::MovingImageType;
132 using typename Superclass1::MovingImagePixelType;
133 using typename Superclass1::MovingImageConstPointer;
134 using typename Superclass1::FixedImageType;
135 using typename Superclass1::FixedImageConstPointer;
136 using typename Superclass1::FixedImageRegionType;
137 using typename Superclass1::TransformType;
138 using typename Superclass1::TransformPointer;
139 using typename Superclass1::InputPointType;
140 using typename Superclass1::OutputPointType;
141 using typename Superclass1::TransformParametersType;
142 using typename Superclass1::TransformJacobianType;
143 using typename Superclass1::InterpolatorType;
144 using typename Superclass1::InterpolatorPointer;
145 using typename Superclass1::RealType;
146 using typename Superclass1::GradientPixelType;
147 using typename Superclass1::GradientImageType;
148 using typename Superclass1::GradientImagePointer;
149 using typename Superclass1::FixedImageMaskType;
153 using typename Superclass1::MeasureType;
154 using typename Superclass1::DerivativeType;
155 using typename Superclass1::ParametersType;
158 using typename Superclass1::ImageSamplerType;
167
169 itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension);
170
172 itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension);
173
175 using typename Superclass2::ElastixType;
176 using typename Superclass2::RegistrationType;
178
184 void
186
190 void
192
195 void
196 Initialize() override;
197
199 itkSetMacro(Param_c, double);
200 itkGetConstMacro(Param_c, double);
201
203 itkSetMacro(Param_gamma, double);
204 itkGetConstMacro(Param_gamma, double);
205
207 itkSetMacro(CurrentIteration, unsigned int);
208 itkGetConstMacro(CurrentIteration, unsigned int);
209
210protected:
213
216
217 unsigned long m_CurrentIteration;
218
220 double
221 Compute_c(unsigned long k) const;
222
223private:
225
226 double m_Param_c;
228};
229
230} // end namespace elastix
231
232#ifndef ITK_MANUAL_INSTANTIATION
233# include "elxAdvancedMattesMutualInformationMetric.hxx"
234#endif
235
236#endif // end #ifndef elxAdvancedMattesMutualInformationMetric_h
A metric based on the itk::ParzenWindowMutualInformationImageToImageMetric.
double Compute_c(unsigned long k) const
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
elxClassNameMacro("AdvancedMattesMutualInformation")
ITK_DISALLOW_COPY_AND_MOVE(AdvancedMattesMutualInformationMetric)
This class is the elastix base class for all Metrics.
itk::SingleValuedCostFunction ITKBaseType
typename ElastixType::MovingImageType MovingImageType
typename ElastixType::RegistrationBaseType RegistrationType
This class is a base class for any image sampler.
Base class for all ITK limiter function objects.
Computes the mutual information between two images to be registered using the method of Mattes et al.
typename ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
typename ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
ImageMaskSpatialObject< Self::FixedImageDimension > FixedImageMaskType
typename MovingImageLimiterType::OutputType MovingImageLimiterOutputType
typename FixedImageLimiterType::OutputType FixedImageLimiterOutputType
ImageMaskSpatialObject< Self::MovingImageDimension > MovingImageMaskType


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo