76 using typename Superclass::CoordinateRepresentationType;
77 using typename Superclass::MovingImageType;
78 using typename Superclass::MovingImagePixelType;
79 using typename Superclass::MovingImageConstPointer;
80 using typename Superclass::FixedImageType;
81 using typename Superclass::FixedImageConstPointer;
82 using typename Superclass::FixedImageRegionType;
83 using typename Superclass::TransformType;
84 using typename Superclass::TransformPointer;
85 using typename Superclass::InputPointType;
86 using typename Superclass::OutputPointType;
87 using typename Superclass::TransformJacobianType;
89 using typename Superclass::InterpolatorType;
90 using typename Superclass::InterpolatorPointer;
91 using typename Superclass::RealType;
92 using typename Superclass::GradientPixelType;
93 using typename Superclass::GradientImageType;
94 using typename Superclass::GradientImagePointer;
99 using typename Superclass::MeasureType;
100 using typename Superclass::DerivativeType;
102 using typename Superclass::ParametersType;
124 GetValue(
const ParametersType & parameters)
const override;
128 GetDerivative(
const ParametersType & parameters, DerivativeType & derivative)
const override;
134 DerivativeType & Derivative)
const;
139 DerivativeType & Derivative)
const override;
146 itkSetMacro(ForegroundValue, RealType);
147 itkGetConstReferenceMacro(ForegroundValue, RealType);
153 itkSetMacro(UseForegroundValue,
bool);
160 itkSetMacro(Complement,
bool);
161 itkGetConstReferenceMacro(Complement,
bool);
162 itkBooleanMacro(Complement);
165 itkSetMacro(Epsilon, RealType);
166 itkGetConstReferenceMacro(Epsilon, RealType);
174 PrintSelf(std::ostream & os, Indent indent)
const override;
194 const RealType movingImageValue,
195 std::size_t & fixedForegroundArea,
196 std::size_t & movingForegroundArea,
197 std::size_t & intersection,
198 const DerivativeType & imageJacobian,
200 DerivativeType & sum1,
201 DerivativeType & sum2)
const;
219 static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
251 KappaGetValueAndDerivativePerThreadStruct,
252 PaddedKappaGetValueAndDerivativePerThreadStruct);
254 PaddedKappaGetValueAndDerivativePerThreadStruct,
255 AlignedKappaGetValueAndDerivativePerThreadStruct);
256 mutable std::vector<AlignedKappaGetValueAndDerivativePerThreadStruct>
void UpdateValueAndDerivativeTerms(const RealType fixedImageValue, const RealType movingImageValue, std::vcl_size_t &fixedForegroundArea, std::vcl_size_t &movingForegroundArea, std::vcl_size_t &intersection, const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji, DerivativeType &sum1, DerivativeType &sum2) const