64#if defined(_MSC_VER) && (_MSC_VER == 1300)
67 using typename Superclass::RealType;
70 using typename Superclass::TransformType;
72 using typename Superclass::TransformPointer;
74 using typename Superclass::TransformParametersType;
75 using typename Superclass::TransformJacobianType;
76 using typename Superclass::InterpolatorType;
78 using typename Superclass::MeasureType;
79 using typename Superclass::DerivativeType;
80 using typename Superclass::FixedImageType;
81 using typename Superclass::FixedImageRegionType;
82 using typename Superclass::MovingImageType;
84 using typename Superclass::FixedImageConstPointer;
85 using typename Superclass::MovingImageConstPointer;
97 using MaskImageType = itk::Image<unsigned char, Self::FixedImageDimension>;
119 GetDerivative(
const TransformParametersType & parameters, DerivativeType & derivative)
const override;
123 GetValue(
const TransformParametersType & parameters)
const override;
129 DerivativeType & derivative)
const override;
148 itkSetMacro(DerivativeDelta,
double);
149 itkGetConstReferenceMacro(DerivativeDelta,
double);
159 PrintSelf(std::ostream & os, Indent indent)
const override;
172 using FixedSobelFilter = NeighborhoodOperatorImageFilter<FixedGradientImageType, FixedGradientImageType>;
173 using MovedSobelFilter = NeighborhoodOperatorImageFilter<MovedGradientImageType, MovedGradientImageType>;
177 double m_DerivativeDelta{ 0.001 };
192 SobelOperator<FixedGradientPixelType, Self::FixedImageDimension> m_FixedSobelOperators[FixedImageDimension]{};
194 typename FixedSobelFilter::Pointer m_FixedSobelFilters[Self::FixedImageDimension]{};
196 ZeroFluxNeumannBoundaryCondition<MovedGradientImageType> m_MovedBoundCond{};
197 ZeroFluxNeumannBoundaryCondition<FixedGradientImageType> m_FixedBoundCond{};
201 SobelOperator<MovedGradientPixelType, Self::MovedImageDimension> m_MovedSobelOperators[MovedImageDimension]{};
203 typename MovedSobelFilter::Pointer m_MovedSobelFilters[Self::MovedImageDimension]{};