ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkCompareHistogramImageToImageMetric.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 itkCompareHistogramImageToImageMetric_h
19#define itkCompareHistogramImageToImageMetric_h
20
22
23namespace itk
24{
55template <typename TFixedImage, typename TMovingImage>
56class ITK_TEMPLATE_EXPORT CompareHistogramImageToImageMetric
57 : public HistogramImageToImageMetric<TFixedImage, TMovingImage>
58{
59public:
60 ITK_DISALLOW_COPY_AND_MOVE(CompareHistogramImageToImageMetric);
61
67
69 itkOverrideGetNameOfClassMacro(CompareHistogramImageToImageMetric);
70
72 using typename Superclass::RealType;
73 using typename Superclass::TransformType;
74 using typename Superclass::TransformPointer;
76
79 using typename Superclass::GradientPixelType;
80
81 using typename Superclass::MeasureType;
82 using typename Superclass::DerivativeType;
83 using typename Superclass::FixedImageType;
84 using typename Superclass::MovingImageType;
87
88 using typename Superclass::HistogramType;
89 using typename Superclass::HistogramSizeType;
90 using HistogramMeasurementVectorType = typename HistogramType::MeasurementVectorType;
91 using HistogramAbsoluteFrequencyType = typename HistogramType::AbsoluteFrequencyType;
93
94 using HistogramIteratorType = typename HistogramType::Iterator;
95 using HistogramPointerType = typename HistogramType::Pointer;
96
97 using typename Superclass::InterpolatorType;
99
101
103 itkSetMacro(TrainingHistogram, HistogramPointerType);
104 itkGetConstReferenceMacro(TrainingHistogram, HistogramPointerType);
106
108 itkSetConstObjectMacro(TrainingFixedImage, FixedImageType);
109 itkGetConstObjectMacro(TrainingFixedImage, FixedImageType);
111
113 itkSetConstObjectMacro(TrainingMovingImage, MovingImageType);
114 itkGetConstObjectMacro(TrainingMovingImage, MovingImageType);
116
118 itkSetObjectMacro(TrainingTransform, TransformType);
119 itkGetModifiableObjectMacro(TrainingTransform, TransformType);
121
123 itkSetObjectMacro(TrainingInterpolator, InterpolatorType);
124 itkGetModifiableObjectMacro(TrainingInterpolator, InterpolatorType);
126
128 itkSetMacro(TrainingFixedImageRegion, FixedImageRegionType);
129 itkGetConstReferenceMacro(TrainingFixedImageRegion, FixedImageRegionType);
131
133 unsigned int
134 GetNumberOfParameters() const override
135 {
136 return this->GetTransform()->GetNumberOfParameters();
137 }
138
141 void
142 Initialize() override;
143
144protected:
149 void
150 PrintSelf(std::ostream & os, Indent indent) const override;
152
154 void
156
160 EvaluateMeasure(HistogramType & histogram) const override = 0;
161
162private:
169};
170
171} // end namespace itk
172
173#ifndef ITK_MANUAL_INSTANTIATION
174# include "itkCompareHistogramImageToImageMetric.hxx"
175#endif
176
177#endif // itkCompareHistogramImageToImageMetric_h
typename HistogramType::AbsoluteFrequencyType HistogramAbsoluteFrequencyType
MeasureType EvaluateMeasure(HistogramType &histogram) const override=0
typename HistogramType::MeasurementVectorType HistogramMeasurementVectorType
~CompareHistogramImageToImageMetric() override=default
HistogramImageToImageMetric< TFixedImage, TMovingImage > Superclass
void PrintSelf(std::ostream &os, Indent indent) const override
typename NumericTraits< MovingImagePixelType >::RealType RealType
typename TransformType::Pointer TransformPointer
typename HistogramType::SizeType HistogramSizeType
typename TransformType::ParametersType TransformParametersType
CovariantVector< RealType, Self::MovingImageDimension > GradientPixelType
Statistics::Histogram< double > HistogramType
Transform< CoordinateRepresentationType, Self::MovingImageDimension, Self::FixedImageDimension > TransformType
typename TransformType::JacobianType TransformJacobianType
typename FixedImageType::ConstPointer FixedImageConstPointer
virtual const TransformType * GetTransform() const
typename FixedImageType::RegionType FixedImageRegionType
typename MovingImageType::ConstPointer MovingImageConstPointer
InterpolateImageFunction< MovingImageType, CoordinateRepresentationType > InterpolatorType
typename InterpolatorType::Pointer InterpolatorPointer
Control indentation during Print() invocation.
Definition itkIndent.h:50
Array< ParametersValueType > DerivativeType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....