Go to the documentation of this file.
18 #ifndef __itkParzenWindowHistogramImageToImageMetric_H__
19 #define __itkParzenWindowHistogramImageToImageMetric_H__
73 template<
class TFixedImage,
class TMovingImage >
134 FixedImageType::ImageDimension );
138 MovingImageType::ImageDimension );
170 itkSetClampMacro( NumberOfFixedHistogramBins,
unsigned long,
171 4, NumericTraits< unsigned long >::max() );
172 itkGetMacro( NumberOfFixedHistogramBins,
unsigned long );
180 itkSetClampMacro( NumberOfMovingHistogramBins,
unsigned long,
181 4, NumericTraits< unsigned long >::max() );
182 itkGetMacro( NumberOfMovingHistogramBins,
unsigned long );
185 itkSetClampMacro( FixedKernelBSplineOrder,
unsigned int, 0, 3 );
186 itkGetConstMacro( FixedKernelBSplineOrder,
unsigned int );
189 itkSetClampMacro( MovingKernelBSplineOrder,
unsigned int, 0, 3 );
190 itkGetConstMacro( MovingKernelBSplineOrder,
unsigned int );
195 itkSetMacro( UseExplicitPDFDerivatives,
bool );
196 itkGetConstReferenceMacro( UseExplicitPDFDerivatives,
bool );
197 itkBooleanMacro( UseExplicitPDFDerivatives );
202 itkSetMacro( UseDerivative,
bool );
203 itkGetConstMacro( UseDerivative,
bool );
208 itkSetMacro( UseFiniteDifferenceDerivative,
bool );
209 itkGetConstMacro( UseFiniteDifferenceDerivative,
bool );
215 itkSetMacro( FiniteDifferencePerturbation,
double );
216 itkGetConstMacro( FiniteDifferencePerturbation,
double );
227 void PrintSelf( std::ostream & os, Indent indent )
const;
317 itkPadStruct( ITK_CACHE_LINE_ALIGNMENT, ParzenWindowHistogramGetValueAndDerivativePerThreadStruct,
318 PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct );
319 itkAlignedTypedef( ITK_CACHE_LINE_ALIGNMENT, PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct,
320 AlignedParzenWindowHistogramGetValueAndDerivativePerThreadStruct );
403 const unsigned int & direction )
const;
505 #ifndef ITK_MANUAL_INSTANTIATION
506 #include "itkParzenWindowHistogramImageToImageMetric.hxx"
509 #endif // end #ifndef __itkParzenWindowHistogramImageToImageMetric_H__
Superclass::TransformPointer TransformPointer
Superclass::FixedImageLimiterOutputType FixedImageLimiterOutputType
Superclass::TransformParametersType TransformParametersType
Superclass::FixedImagePixelType FixedImagePixelType
Superclass::InterpolatorType InterpolatorType
virtual void NormalizeJointPDFDerivatives(JointPDFDerivativesType *pdf, const double &factor) const
SmartPointer< Self > Pointer
Superclass::OutputPointType OutputPointType
JointPDFType::Pointer JointPDFPointer
virtual void UpdateJointPDFAndIncrementalPDFs(RealType fixedImageValue, RealType movingImageValue, RealType movingMaskValue, const DerivativeType &movingImageValuesRight, const DerivativeType &movingImageValuesLeft, const DerivativeType &movingMaskValuesRight, const DerivativeType &movingMaskValuesLeft, const NonZeroJacobianIndicesType &nzji) const
Superclass::DerivativeType DerivativeType
Superclass::InputPointType InputPointType
Superclass::FixedImageRegionType FixedImageRegionType
Image< PDFValueType, 2 > JointPDFType
ImageSamplerType::Pointer ImageSamplerPointer
virtual void GetValueAndAnalyticDerivative(const ParametersType &, MeasureType &, DerivativeType &) const
unsigned long m_NumberOfFixedHistogramBins
ParzenWindowHistogramImageToImageMetric()
MarginalPDFType m_MovingImageMarginalPDF
Superclass::TransformParametersType TransformParametersType
Superclass::MovingImageLimiterOutputType MovingImageLimiterOutputType
virtual void ComputePDFsAndPDFDerivatives(const ParametersType ¶meters) const
void GetValueAndDerivative(const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const
Superclass::GradientImageType GradientImageType
double m_MovingParzenTermToIndexOffset
JointPDFDerivativesType::IndexType JointPDFDerivativesIndexType
DerivativeType::ValueType DerivativeValueType
double m_FiniteDifferencePerturbation
Superclass::ParametersType ParametersType
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
virtual void GetValueAndFiniteDifferenceDerivative(const ParametersType &, MeasureType &, DerivativeType &) const
KernelFunctionBase2< PDFValueType > KernelFunctionType
Superclass::FixedImageIndexType FixedImageIndexType
Superclass::MovingImageType MovingImageType
Superclass::DerivativeType DerivativeType
IncrementalMarginalPDFPointer m_MovingIncrementalMarginalPDFLeft
virtual void ComputePDFs(const ParametersType ¶meters) const
IncrementalMarginalPDFType::RegionType IncrementalMarginalPDFRegionType
Superclass::InterpolatorPointer InterpolatorPointer
JointPDFType::SizeType JointPDFSizeType
bool m_UseFiniteDifferenceDerivative
JointPDFPointer m_JointPDF
KernelFunctionPointer m_DerivativeMovingKernel
Superclass::GradientImageType GradientImageType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Superclass::MovingImageIndexType MovingImageIndexType
DerivativeType m_PerturbedAlphaLeft
SmartPointer< const Self > ConstPointer
JointPDFPointer st_JointPDF
virtual void InitializeKernels(void)
Superclass::MovingImagePointType MovingImagePointType
FixedArray< double, Self::MovingImageDimension > MovingImageDerivativeScalesType
MovingImageLimiterType::OutputType MovingImageLimiterOutputType
BSplineInterpolatorType::CovariantVectorType MovingImageDerivativeType
Array< PDFValueType > ParzenValueContainerType
MarginalPDFType m_FixedImageMarginalPDF
IncrementalMarginalPDFPointer m_FixedIncrementalMarginalPDFRight
IncrementalMarginalPDFType::IndexType IncrementalMarginalPDFIndexType
Image< PDFDerivativeValueType, 3 > JointPDFDerivativesType
IncrementalMarginalPDFType::Pointer IncrementalMarginalPDFPointer
Superclass::GradientImagePointer GradientImagePointer
virtual void NormalizeJointPDF(JointPDFType *pdf, const double &factor) const
void UpdateJointPDFDerivatives(const JointPDFIndexType &pdfIndex, double factor, const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji) const
double m_FixedParzenTermToIndexOffset
Superclass::OutputPointType OutputPointType
Superclass::ParametersType ParametersType
LimiterFunctionBase< RealType, MovingImageDimension > MovingImageLimiterType
unsigned long m_NumberOfMovingHistogramBins
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::ThreaderType ThreaderType
Superclass::InterpolatorPointer InterpolatorPointer
Superclass::GradientImagePointer GradientImagePointer
IncrementalMarginalPDFPointer m_MovingIncrementalMarginalPDFRight
JointPDFDerivativesPointer m_IncrementalJointPDFLeft
ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
Superclass::InterpolatorType InterpolatorType
JointPDFDerivativesPointer m_IncrementalJointPDFRight
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, ParzenWindowHistogramGetValueAndDerivativePerThreadStruct, PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct)
AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::TransformJacobianType TransformJacobianType
IncrementalMarginalPDFType::SizeType IncrementalMarginalPDFSizeType
Superclass::FixedImageMaskType FixedImageMaskType
Superclass::ThreadInfoType ThreadInfoType
FixedImageType::IndexType FixedImageIndexType
MovingImageType::RegionType MovingImageRegionType
Superclass::MovingImageContinuousIndexType MovingImageContinuousIndexType
IncrementalMarginalPDFPointer m_FixedIncrementalMarginalPDFLeft
void ThreadedComputePDFs(ThreadIdType threadId)
Superclass::CentralDifferenceGradientFilterType CentralDifferenceGradientFilterType
void operator=(const Self &)
Superclass::MovingImageMaskType MovingImageMaskType
JointPDFDerivativesType::RegionType JointPDFDerivativesRegionType
ParzenWindowHistogramMultiThreaderParameterType m_ParzenWindowHistogramThreaderParameters
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::FixedImageType FixedImageType
itk::MultiThreader ThreaderType
void AfterThreadedComputePDFs(void) const
ParzenWindowHistogramImageToImageMetric Self
double m_MovingImageBinSize
Image< PDFValueType, 2 > IncrementalMarginalPDFType
Superclass::MovingImagePixelType MovingImagePixelType
Superclass::ImageSamplerType ImageSamplerType
Superclass::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
FixedImageType::PixelType FixedImagePixelType
JointPDFType::IndexType JointPDFIndexType
AlignedParzenWindowHistogramGetValueAndDerivativePerThreadStruct * m_ParzenWindowHistogramGetValueAndDerivativePerThreadVariables
JointPDFDerivativesType::SizeType JointPDFDerivativesSizeType
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::RealType RealType
Superclass::FixedImageMaskType FixedImageMaskType
TransformType::InputPointType FixedImagePointType
FixedImageLimiterType::OutputType FixedImageLimiterOutputType
double m_MovingImageNormalizedMin
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::GradientPixelType GradientPixelType
Superclass::FixedImageType FixedImageType
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::FixedImageMaskPointer FixedImageMaskPointer
virtual void ComputeMarginalPDF(const JointPDFType *jointPDF, MarginalPDFType &marginalPDF, const unsigned int &direction) const
Superclass::BSplineInterpolatorType BSplineInterpolatorType
KernelFunctionPointer m_FixedKernel
FixedImageType::OffsetValueType OffsetValueType
virtual void ComputePDFsAndIncrementalPDFs(const ParametersType ¶meters) const
std::vector< JointPDFPointer > m_ThreaderJointPDFs
double m_FixedImageNormalizedMin
Superclass::TransformType TransformType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
static ITK_THREAD_RETURN_TYPE ComputePDFsThreaderCallback(void *arg)
LimiterFunctionBase< RealType, FixedImageDimension > FixedImageLimiterType
Superclass::RealType RealType
Superclass::MeasureType MeasureType
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Superclass::MovingImageLimiterType MovingImageLimiterType
ThreadIdType m_ParzenWindowHistogramGetValueAndDerivativePerThreadVariablesSize
void EvaluateParzenValues(double parzenWindowTerm, OffsetValueType parzenWindowIndex, const KernelFunctionType *kernel, ParzenValueContainerType &parzenValues) const
Kernel used for density estimation and nonparameteric regression.
JointPDFType::RegionType JointPDFRegionType
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
KernelFunctionPointer m_MovingKernel
Superclass::TransformJacobianType TransformJacobianType
Array< PDFValueType > MarginalPDFType
double m_FixedImageBinSize
InterpolatorType::ContinuousIndexType MovingImageContinuousIndexType
Superclass::MeasureType MeasureType
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct, AlignedParzenWindowHistogramGetValueAndDerivativePerThreadStruct)
void GetDerivative(const ParametersType ¶meters, DerivativeType &Derivative) const
Superclass::ImageSampleContainerType ImageSampleContainerType
Superclass::ImageSamplerPointer ImageSamplerPointer
Superclass::DerivativeValueType DerivativeValueType
Superclass::FixedImageLimiterType FixedImageLimiterType
Superclass::FixedImageMaskPointer FixedImageMaskPointer
bool m_UseExplicitPDFDerivatives
DerivativeType m_PerturbedAlphaRight
unsigned int m_MovingKernelBSplineOrder
virtual void InitializeThreadingParameters(void) const
TransformType::OutputPointType MovingImagePointType
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::FixedImagePointType FixedImagePointType
JointPDFDerivativesPointer m_JointPDFDerivatives
SizeValueType st_NumberOfPixelsCounted
virtual void ComputeIncrementalMarginalPDFs(const JointPDFDerivativesType *incrementalPDF, IncrementalMarginalPDFType *fixedIncrementalMarginalPDF, IncrementalMarginalPDFType *movingIncrementalMarginalPDF) const
void LaunchComputePDFsThreaderCallback(void) const
ParzenWindowHistogramImageToImageMetric(const Self &)
KernelFunctionType::Pointer KernelFunctionPointer
Superclass::MovingImageType MovingImageType
A base class for image metrics based on a joint histogram computed using Parzen Windowing.
Superclass::MovingImagePixelType MovingImagePixelType
BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > BSplineInterpolatorType
Superclass::FixedImageRegionType FixedImageRegionType
virtual void ComputePDFsSingleThreaded(const ParametersType ¶meters) const
Superclass::GradientPixelType GradientPixelType
GradientImageFilter< MovingImageType, RealType, RealType > CentralDifferenceGradientFilterType
JointPDFRegionType m_JointPDFWindow
Superclass::MovingImageRegionType MovingImageRegionType
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::TransformPointer TransformPointer
Superclass::TransformType TransformType
MovingImageType::IndexType MovingImageIndexType
virtual ~ParzenWindowHistogramImageToImageMetric()
JointPDFDerivativesType::Pointer JointPDFDerivativesPointer
float PDFDerivativeValueType
void PrintSelf(std::ostream &os, Indent indent) const
FixedImageIndexType::IndexValueType FixedImageIndexValueType
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
virtual void UpdateJointPDFAndDerivatives(const RealType &fixedImageValue, const RealType &movingImageValue, const DerivativeType *imageJacobian, const NonZeroJacobianIndicesType *nzji, JointPDFType *jointPDF) const
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::MovingImageDerivativeType MovingImageDerivativeType
Superclass::InputPointType InputPointType
ImageSamplerBase< FixedImageType > ImageSamplerType
virtual void InitializeHistograms(void)
Superclass::FixedImageIndexValueType FixedImageIndexValueType
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
unsigned int m_FixedKernelBSplineOrder
ThreaderType::ThreadInfoStruct ThreadInfoType
Generated on OURCE_DATE_EPOCH for elastix by 1.8.18 |
|