18 #ifndef __itkPCAMetric_F_multithreaded_H__ 19 #define __itkPCAMetric_F_multithreaded_H__ 23 #include "itkSmoothingRecursiveGaussianImageFilter.h" 25 #include "itkNearestNeighborInterpolateImageFunction.h" 26 #include "itkExtractImageFilter.h" 30 template<
class TFixedImage,
class TMovingImage >
32 public AdvancedImageToImageMetric< TFixedImage, TMovingImage >
53 itkSetMacro( SubtractMean,
bool );
54 itkSetMacro( GridSize, FixedImageSizeType );
55 itkSetMacro( TransformIsStackTransform,
bool );
56 itkSetMacro( NumEigenValues,
unsigned int );
114 FixedImageType::ImageDimension );
118 MovingImageType::ImageDimension );
121 virtual MeasureType
GetValue(
const TransformParametersType & parameters )
const;
124 virtual void GetDerivative(
const TransformParametersType & parameters,
125 DerivativeType & derivative )
const;
129 MeasureType & Value, DerivativeType & Derivative )
const;
132 MeasureType & Value, DerivativeType & Derivative )
const;
138 virtual void Initialize(
void )
throw ( ExceptionObject );
144 void PrintSelf( std::ostream & os, Indent indent )
const;
153 typedef typename itk::ContinuousIndex< CoordinateRepresentationType, FixedImageDimension >
166 const TransformJacobianType & jacobian,
167 const MovingImageDerivativeType & movingImageDerivative,
168 DerivativeType & imageJacobian )
const;
186 PaddedPCAMetricGetSamplesPerThreadStruct );
189 PaddedPCAMetricGetSamplesPerThreadStruct,
190 AlignedPCAMetricGetSamplesPerThreadStruct );
243 mutable DerivativeMatrixType
m_Sv;
250 #ifndef ITK_MANUAL_INSTANTIATION 251 #include "itkPCAMetric_F_multithreaded.hxx" 254 #endif // end #ifndef __itkPCAMetric_F_multithreaded_H__ bool m_TransformIsStackTransform
Superclass::MeasureType MeasureType
Superclass::FixedImageConstPointer FixedImageConstPointer
void operator=(const Self &)
Superclass::InterpolatorPointer InterpolatorPointer
Superclass::CoordinateRepresentationType CoordinateRepresentationType
void ThreadedGetSamples(ThreadIdType threadID)
Superclass::MovingImageRegionType MovingImageRegionType
DerivativeMatrixType m_vdSdmu_part1
ThreadIdType m_PCAMetricGetSamplesPerThreadVariablesSize
DerivativeType st_Derivative
unsigned int m_NumEigenValues
Superclass::InputPointType InputPointType
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::TransformType TransformType
LimiterFunctionBase< RealType, FixedImageDimension > FixedImageLimiterType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
virtual MeasureType GetValue(const TransformParametersType ¶meters) const
Superclass::TransformParametersType TransformParametersType
Superclass::MovingImageType MovingImageType
Superclass::InputPointType InputPointType
Superclass::FixedImageIndexValueType FixedImageIndexValueType
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::DerivativeType DerivativeType
Superclass::FixedImagePointType FixedImagePointType
Superclass::MeasureType MeasureType
vnl_matrix< DerivativeValueType > DerivativeMatrixType
Superclass::FixedImageMaskPointer FixedImageMaskPointer
Superclass::OutputPointType OutputPointType
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics...
void AfterThreadedComputeDerivative(DerivativeType &derivative) const
void AfterThreadedGetSamples(MeasureType &value) const
DerivativeMatrixType m_vSAtmm
SmartPointer< const Self > ConstPointer
Superclass::GradientPixelType GradientPixelType
virtual void Initialize(void)
FixedImageLimiterType::OutputType FixedImageLimiterOutputType
Superclass::TransformType TransformType
Superclass::FixedImageLimiterType FixedImageLimiterType
AlignedPCAMetricGetSamplesPerThreadStruct * m_PCAMetricGetSamplesPerThreadVariables
Superclass::FixedImageRegionType FixedImageRegionType
static ITK_THREAD_RETURN_TYPE ComputeDerivativeThreaderCallback(void *arg)
unsigned int m_LastDimIndex
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
virtual void GetValueAndDerivative(const TransformParametersType ¶meters, MeasureType &Value, DerivativeType &Derivative) const
ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
Superclass::TransformPointer TransformPointer
MovingImageType::IndexType MovingImageIndexType
itk::MultiThreader ThreaderType
Superclass::MovingImagePointType MovingImagePointType
InterpolatorType::ContinuousIndexType MovingImageContinuousIndexType
void PrintSelf(std::ostream &os, Indent indent) const
Superclass::GradientImageFilterPointer GradientImageFilterPointer
TransformType::InputPointType FixedImagePointType
Superclass::GradientPixelType GradientPixelType
static ITK_THREAD_RETURN_TYPE GetSamplesThreaderCallback(void *arg)
Superclass::ParametersType ParametersType
FixedArray< double, Self::MovingImageDimension > MovingImageDerivativeScalesType
Superclass::MovingImageType MovingImageType
BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > BSplineInterpolatorType
ImageSamplerBase< FixedImageType > ImageSamplerType
Superclass::GradientImageType GradientImageType
Superclass::MovingImageLimiterType MovingImageLimiterType
AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::FixedImageIndexType FixedImageIndexType
Superclass::FixedImageRegionType FixedImageRegionType
Superclass::ImageSamplerType ImageSamplerType
Superclass::ParametersType ParametersType
void EvaluateTransformJacobianInnerProduct(const TransformJacobianType &jacobian, const MovingImageDerivativeType &movingImageDerivative, DerivativeType &imageJacobian) const
SmartPointer< Self > Pointer
Superclass::InterpolatorPointer InterpolatorPointer
DerivativeMatrixType m_Sv
Superclass::FixedImageMaskPointer FixedImageMaskPointer
FixedImageType::IndexType FixedImageIndexType
Superclass::TransformJacobianType TransformJacobianType
void LaunchGetSamplesThreaderCallback(void) const
virtual void GetDerivative(const TransformParametersType ¶meters, DerivativeType &derivative) const
Superclass::ThreaderType ThreaderType
Superclass::TransformParametersType TransformParametersType
void LaunchComputeDerivativeThreaderCallback(void) const
FixedImageIndexType::IndexValueType FixedImageIndexValueType
TransformType::OutputPointType MovingImagePointType
FixedImageSizeType m_GridSize
Superclass::FixedImageType FixedImageType
Superclass::MovingImagePixelType MovingImagePixelType
Superclass::MovingImageMaskType MovingImageMaskType
LimiterFunctionBase< RealType, MovingImageDimension > MovingImageLimiterType
SizeValueType st_NumberOfPixelsCounted
Superclass::GradientImageType GradientImageType
Superclass::TransformPointer TransformPointer
void GetValueAndDerivativeSingleThreaded(const TransformParametersType ¶meters, MeasureType &Value, DerivativeType &Derivative) const
Superclass::ThreadInfoType ThreadInfoType
FixedImageRegionType::SizeType FixedImageSizeType
Superclass::ImageSamplerPointer ImageSamplerPointer
Superclass::GradientImageFilterType GradientImageFilterType
ImageSamplerType::Pointer ImageSamplerPointer
MovingImageType::RegionType MovingImageRegionType
Superclass::GradientImagePointer GradientImagePointer
Superclass::InterpolatorType InterpolatorType
Superclass::MovingImageIndexType MovingImageIndexType
Superclass::InterpolatorType InterpolatorType
Superclass::BSplineInterpolatorType BSplineInterpolatorType
Superclass::TransformJacobianType TransformJacobianType
vnl_matrix< RealType > MatrixType
PCAMetricMultiThreaderParameterType m_PCAMetricThreaderParameters
Superclass::MovingImageLimiterOutputType MovingImageLimiterOutputType
Superclass::RealType RealType
Superclass::ImageSampleContainerType ImageSampleContainerType
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
Superclass::MovingImagePixelType MovingImagePixelType
GradientImageFilter< MovingImageType, RealType, RealType > CentralDifferenceGradientFilterType
Superclass::RealType RealType
Superclass::OutputPointType OutputPointType
Superclass::MovingImageDerivativeType MovingImageDerivativeType
std::vector< unsigned int > m_PixelStartIndex
void ThreadedComputeDerivative(ThreadIdType threadID)
virtual void InitializeThreadingParameters(void) const
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::FixedImageLimiterOutputType FixedImageLimiterOutputType
MovingImageLimiterType::OutputType MovingImageLimiterOutputType
DerivativeMatrixType m_CSv
ThreaderType::ThreadInfoStruct ThreadInfoType
std::vector< FixedImagePointType > st_ApprovedSamples
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::FixedImageMaskType FixedImageMaskType
FixedImageType::PixelType FixedImagePixelType
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
Superclass::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
Superclass::MovingImageContinuousIndexType MovingImageContinuousIndexType
ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
Superclass::FixedImageMaskType FixedImageMaskType
Superclass::FixedImageType FixedImageType
DerivativeType::ValueType DerivativeValueType
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::CentralDifferenceGradientFilterType CentralDifferenceGradientFilterType
BSplineInterpolatorType::CovariantVectorType MovingImageDerivativeType
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::DerivativeType DerivativeType
Superclass::MovingImageMaskType MovingImageMaskType
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, PCAMetricGetSamplesPerThreadStruct, PaddedPCAMetricGetSamplesPerThreadStruct)
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedPCAMetricGetSamplesPerThreadStruct, AlignedPCAMetricGetSamplesPerThreadStruct)
Superclass::FixedImagePixelType FixedImagePixelType
itk::ContinuousIndex< CoordinateRepresentationType, FixedImageDimension > FixedImageContinuousIndexType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::GradientImagePointer GradientImagePointer