18 #ifndef itkMatchCardinalityImageToImageMetric_h
19 #define itkMatchCardinalityImageToImageMetric_h
66 template <
typename TFixedImage,
typename TMovingImage>
85 using typename Superclass::RealType;
86 using typename Superclass::TransformType;
87 using typename Superclass::TransformPointer;
88 using typename Superclass::TransformParametersType;
89 using typename Superclass::TransformJacobianType;
90 using typename Superclass::GradientPixelType;
92 using typename Superclass::MeasureType;
93 using typename Superclass::DerivativeType;
94 using typename Superclass::FixedImageType;
95 using typename Superclass::MovingImageType;
96 using typename Superclass::FixedImageConstPointer;
97 using typename Superclass::MovingImageConstPointer;
98 using typename Superclass::FixedImageRegionType;
104 itkWarningMacro(
"This metric does not provide metric derivatives.");
116 GetValue(
const TransformParametersType & parameters)
const override;
124 itkSetMacro(MeasureMatches,
bool);
125 itkBooleanMacro(MeasureMatches);
126 itkGetConstMacro(MeasureMatches,
bool);
140 PrintSelf(std::ostream & os,
Indent indent)
const override;
148 GetNonconstValue(
const TransformParametersType & parameters);
155 ThreadedGetValue(
const FixedImageRegionType & regionForThread,
ThreadIdType threadId);
163 SplitFixedRegion(
ThreadIdType i,
int num, FixedImageRegionType & splitRegion);
172 ThreaderCallback(
void * arg);
183 bool m_MeasureMatches{
true };
184 std::vector<MeasureType> m_ThreadMatches{};
185 std::vector<SizeValueType> m_ThreadCounts{};
194 #ifndef ITK_MANUAL_INSTANTIATION
195 # include "itkMatchCardinalityImageToImageMetric.hxx"