Loading...
Searching...
No Matches
itkParzenWindowHistogramImageToImageMetric.h
Go to the documentation of this file.
/*=========================================================================
*
* Copyright UMC Utrecht and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
#ifndef itkParzenWindowHistogramImageToImageMetric_h
#define itkParzenWindowHistogramImageToImageMetric_h
#include "itkAdvancedImageToImageMetric.h"
#include "itkKernelFunctionBase2.h"
#include <vector>
namespace itk
{
template <class TFixedImage, class TMovingImage>
class ITK_TEMPLATE_EXPORT ParzenWindowHistogramImageToImageMetric
: public AdvancedImageToImageMetric<TFixedImage, TMovingImage>
{
public:
ITK_DISALLOW_COPY_AND_MOVE(ParzenWindowHistogramImageToImageMetric);
using Self = ParzenWindowHistogramImageToImageMetric;
using Superclass = AdvancedImageToImageMetric<TFixedImage, TMovingImage>;
using Pointer = SmartPointer<Self>;
using ConstPointer = SmartPointer<const Self>;
itkTypeMacro(ParzenWindowHistogramImageToImageMetric, AdvancedImageToImageMetric);
using typename Superclass::CoordinateRepresentationType;
using typename Superclass::MovingImageType;
using typename Superclass::MovingImagePixelType;
using typename Superclass::MovingImageConstPointer;
using typename Superclass::FixedImageType;
using typename Superclass::FixedImageConstPointer;
using typename Superclass::FixedImageRegionType;
using typename Superclass::TransformType;
using typename Superclass::TransformPointer;
using typename Superclass::InputPointType;
using typename Superclass::OutputPointType;
using typename Superclass::TransformParametersType;
using typename Superclass::TransformJacobianType;
using typename Superclass::InterpolatorType;
using typename Superclass::InterpolatorPointer;
using typename Superclass::RealType;
using typename Superclass::GradientPixelType;
using typename Superclass::GradientImageType;
using typename Superclass::GradientImagePointer;
using typename Superclass::FixedImageMaskType;
using typename Superclass::FixedImageMaskPointer;
using typename Superclass::MovingImageMaskType;
using typename Superclass::MovingImageMaskPointer;
using typename Superclass::MeasureType;
using typename Superclass::DerivativeType;
using typename Superclass::DerivativeValueType;
using typename Superclass::ParametersType;
using typename Superclass::FixedImagePixelType;
using typename Superclass::MovingImageRegionType;
using typename Superclass::ImageSamplerType;
using typename Superclass::ImageSamplerPointer;
using typename Superclass::ImageSampleContainerType;
using typename Superclass::ImageSampleContainerPointer;
using typename Superclass::FixedImageLimiterType;
using typename Superclass::MovingImageLimiterType;
using typename Superclass::FixedImageLimiterOutputType;
using typename Superclass::MovingImageLimiterOutputType;
using typename Superclass::MovingImageDerivativeScalesType;
using typename Superclass::ThreadInfoType;
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension);
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension);
void
Initialize() override;
void
GetDerivative(const ParametersType & parameters, DerivativeType & Derivative) const override;
void
GetValueAndDerivative(const ParametersType & parameters,
MeasureType & value,
DerivativeType & derivative) const override;
itkSetClampMacro(NumberOfFixedHistogramBins, unsigned long, 4, NumericTraits<unsigned long>::max());
itkGetConstMacro(NumberOfFixedHistogramBins, unsigned long);
itkSetClampMacro(NumberOfMovingHistogramBins, unsigned long, 4, NumericTraits<unsigned long>::max());
itkGetConstMacro(NumberOfMovingHistogramBins, unsigned long);
itkSetClampMacro(FixedKernelBSplineOrder, unsigned int, 0, 3);
itkGetConstMacro(FixedKernelBSplineOrder, unsigned int);
itkSetClampMacro(MovingKernelBSplineOrder, unsigned int, 0, 3);
itkGetConstMacro(MovingKernelBSplineOrder, unsigned int);
itkSetMacro(UseExplicitPDFDerivatives, bool);
itkGetConstReferenceMacro(UseExplicitPDFDerivatives, bool);
itkBooleanMacro(UseExplicitPDFDerivatives);
itkSetMacro(UseDerivative, bool);
itkGetConstMacro(UseDerivative, bool);
itkSetMacro(UseFiniteDifferenceDerivative, bool);
itkGetConstMacro(UseFiniteDifferenceDerivative, bool);
itkSetMacro(FiniteDifferencePerturbation, double);
itkGetConstMacro(FiniteDifferencePerturbation, double);
protected:
ParzenWindowHistogramImageToImageMetric();
~ParzenWindowHistogramImageToImageMetric() override = default;
void
PrintSelf(std::ostream & os, Indent indent) const override;
using typename Superclass::FixedImageIndexType;
using typename Superclass::FixedImageIndexValueType;
using OffsetValueType = typename FixedImageType::OffsetValueType;
using typename Superclass::MovingImageIndexType;
using typename Superclass::FixedImagePointType;
using typename Superclass::MovingImagePointType;
using typename Superclass::MovingImageContinuousIndexType;
using typename Superclass::BSplineInterpolatorType;
using typename Superclass::MovingImageDerivativeType;
using typename Superclass::NonZeroJacobianIndicesType;
using PDFValueType = double;
using PDFDerivativeValueType = float;
using MarginalPDFType = Array<PDFValueType>;
using JointPDFType = Image<PDFValueType, 2>;
using JointPDFPointer = typename JointPDFType::Pointer;
using JointPDFDerivativesType = Image<PDFDerivativeValueType, 3>;
using JointPDFDerivativesPointer = typename JointPDFDerivativesType::Pointer;
using IncrementalMarginalPDFType = Image<PDFValueType, 2>;
using IncrementalMarginalPDFPointer = typename IncrementalMarginalPDFType::Pointer;
using JointPDFIndexType = JointPDFType::IndexType;
using JointPDFRegionType = JointPDFType::RegionType;
using JointPDFSizeType = JointPDFType::SizeType;
using JointPDFDerivativesIndexType = JointPDFDerivativesType::IndexType;
using JointPDFDerivativesRegionType = JointPDFDerivativesType::RegionType;
using JointPDFDerivativesSizeType = JointPDFDerivativesType::SizeType;
using IncrementalMarginalPDFIndexType = IncrementalMarginalPDFType::IndexType;
using IncrementalMarginalPDFRegionType = IncrementalMarginalPDFType::RegionType;
using IncrementalMarginalPDFSizeType = IncrementalMarginalPDFType::SizeType;
using ParzenValueContainerType = Array<PDFValueType>;
using KernelFunctionType = KernelFunctionBase2<PDFValueType>;
using KernelFunctionPointer = typename KernelFunctionType::Pointer;
mutable double m_Alpha{ 0.0 };
mutable DerivativeType m_PerturbedAlphaRight{};
mutable DerivativeType m_PerturbedAlphaLeft{};
mutable MarginalPDFType m_FixedImageMarginalPDF{};
mutable MarginalPDFType m_MovingImageMarginalPDF{};
JointPDFPointer m_JointPDF{ nullptr };
JointPDFDerivativesPointer m_JointPDFDerivatives{ nullptr };
JointPDFDerivativesPointer m_IncrementalJointPDFRight{};
JointPDFDerivativesPointer m_IncrementalJointPDFLeft{};
IncrementalMarginalPDFPointer m_FixedIncrementalMarginalPDFRight{ nullptr };
IncrementalMarginalPDFPointer m_MovingIncrementalMarginalPDFRight{ nullptr };
IncrementalMarginalPDFPointer m_FixedIncrementalMarginalPDFLeft{ nullptr };
IncrementalMarginalPDFPointer m_MovingIncrementalMarginalPDFLeft{ nullptr };
mutable JointPDFRegionType m_JointPDFWindow{}; // no need for mutable anymore?
double m_MovingImageNormalizedMin{ 0.0 };
double m_FixedImageNormalizedMin{ 0.0 };
double m_FixedImageBinSize{ 0.0 };
double m_MovingImageBinSize{ 0.0 };
double m_FixedParzenTermToIndexOffset{ 0.5 };
double m_MovingParzenTermToIndexOffset{ -1.0 };
KernelFunctionPointer m_FixedKernel{ nullptr };
KernelFunctionPointer m_MovingKernel{ nullptr };
KernelFunctionPointer m_DerivativeMovingKernel{ nullptr };
void
InitializeThreadingParameters() const override;
void
ThreadedComputePDFs(ThreadIdType threadId);
void
AfterThreadedComputePDFs() const;
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
ComputePDFsThreaderCallback(void * arg);
void
LaunchComputePDFsThreaderCallback() const;
static void
EvaluateParzenValues(double parzenWindowTerm,
OffsetValueType parzenWindowIndex,
const KernelFunctionType & kernel,
PDFValueType * parzenValues);
virtual void
UpdateJointPDFAndDerivatives(const RealType fixedImageValue,
const RealType movingImageValue,
const DerivativeType * imageJacobian,
const NonZeroJacobianIndicesType * nzji,
JointPDFType * jointPDF) const;
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;
void
UpdateJointPDFDerivatives(const JointPDFIndexType & pdfIndex,
double factor,
const DerivativeType & imageJacobian,
const NonZeroJacobianIndicesType & nzji) const;
void
NormalizeJointPDF(JointPDFType * pdf, const double factor) const;
void
NormalizeJointPDFDerivatives(JointPDFDerivativesType * pdf, const double factor) const;
void
ComputeMarginalPDF(const JointPDFType * jointPDF, MarginalPDFType & marginalPDF, const unsigned int direction) const;
virtual void
ComputeIncrementalMarginalPDFs(const JointPDFDerivativesType * incrementalPDF,
IncrementalMarginalPDFType * fixedIncrementalMarginalPDF,
IncrementalMarginalPDFType * movingIncrementalMarginalPDF) const;
virtual void
ComputePDFsAndPDFDerivatives(const ParametersType & parameters) const;
virtual void
ComputePDFsAndIncrementalPDFs(const ParametersType & parameters) const;
virtual void
ComputePDFsSingleThreaded(const ParametersType & parameters) const;
virtual void
ComputePDFs(const ParametersType & parameters) const;
virtual void
InitializeHistograms();
virtual void
InitializeKernels();
virtual void
GetValueAndAnalyticDerivative(const ParametersType & itkNotUsed(parameters),
MeasureType & itkNotUsed(value),
DerivativeType & itkNotUsed(derivative)) const
{}
virtual void
GetValueAndFiniteDifferenceDerivative(const ParametersType & itkNotUsed(parameters),
MeasureType & itkNotUsed(value),
DerivativeType & itkNotUsed(derivative)) const
{}
private:
mutable std::vector<JointPDFPointer> m_ThreaderJointPDFs{};
struct ParzenWindowHistogramMultiThreaderParameterType // can't we use the one from AdvancedImageToImageMetric ?
{
Self * m_Metric;
};
ParzenWindowHistogramMultiThreaderParameterType m_ParzenWindowHistogramThreaderParameters{};
struct ParzenWindowHistogramGetValueAndDerivativePerThreadStruct
{
SizeValueType st_NumberOfPixelsCounted;
JointPDFPointer st_JointPDF;
};
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT,
ParzenWindowHistogramGetValueAndDerivativePerThreadStruct,
PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct);
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT,
PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct,
AlignedParzenWindowHistogramGetValueAndDerivativePerThreadStruct);
mutable std::vector<AlignedParzenWindowHistogramGetValueAndDerivativePerThreadStruct>
m_ParzenWindowHistogramGetValueAndDerivativePerThreadVariables;
unsigned long m_NumberOfFixedHistogramBins{ 32 };
unsigned long m_NumberOfMovingHistogramBins{ 32 };
unsigned int m_FixedKernelBSplineOrder{ 0 };
unsigned int m_MovingKernelBSplineOrder{ 3 };
bool m_UseDerivative{ false };
bool m_UseExplicitPDFDerivatives{ true };
bool m_UseFiniteDifferenceDerivative{ false };
double m_FiniteDifferencePerturbation{ 1.0 };
};
} // end namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
# include "itkParzenWindowHistogramImageToImageMetric.hxx"
#endif
#endif // end #ifndef itkParzenWindowHistogramImageToImageMetric_h
double
float
itk::AdvancedImageToImageMetric::MovingImagePointType
typename TransformType::OutputPointType MovingImagePointType
Definition itkAdvancedImageToImageMetric.h:338
itk::AdvancedImageToImageMetric::ImageSampleContainerPointer
typename ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
Definition itkAdvancedImageToImageMetric.h:145
itk::AdvancedImageToImageMetric::MovingImageRegionType
typename MovingImageType::RegionType MovingImageRegionType
Definition itkAdvancedImageToImageMetric.h:138
itk::AdvancedImageToImageMetric::NonZeroJacobianIndicesType
typename AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Definition itkAdvancedImageToImageMetric.h:356
itk::AdvancedImageToImageMetric::MovingImageDerivativeScalesType
FixedArray< double, Self::MovingImageDimension > MovingImageDerivativeScalesType
Definition itkAdvancedImageToImageMetric.h:139
itk::AdvancedImageToImageMetric::FixedImagePixelType
typename FixedImageType::PixelType FixedImagePixelType
Definition itkAdvancedImageToImageMetric.h:137
itk::AdvancedImageToImageMetric::DerivativeValueType
typename DerivativeType::ValueType DerivativeValueType
Definition itkAdvancedImageToImageMetric.h:133
itk::AdvancedImageToImageMetric::FixedImageIndexValueType
typename FixedImageIndexType::IndexValueType FixedImageIndexValueType
Definition itkAdvancedImageToImageMetric.h:335
itk::AdvancedImageToImageMetric::MovingImageIndexType
typename MovingImageType::IndexType MovingImageIndexType
Definition itkAdvancedImageToImageMetric.h:336
itk::AdvancedImageToImageMetric::ImageSampleContainerType
typename ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
Definition itkAdvancedImageToImageMetric.h:144
itk::AdvancedImageToImageMetric::FixedImageMaskType
ImageMaskSpatialObject< Self::FixedImageDimension > FixedImageMaskType
Definition itkAdvancedImageToImageMetric.h:124
itk::AdvancedImageToImageMetric::FixedImageIndexType
typename FixedImageType::IndexType FixedImageIndexType
Definition itkAdvancedImageToImageMetric.h:334
itk::AdvancedImageToImageMetric::MovingImageMaskPointer
SmartPointer< MovingImageMaskType > MovingImageMaskPointer
Definition itkAdvancedImageToImageMetric.h:128
itk::AdvancedImageToImageMetric::FixedImageLimiterType
LimiterFunctionBase< RealType, FixedImageDimension > FixedImageLimiterType
Definition itkAdvancedImageToImageMetric.h:148
itk::AdvancedImageToImageMetric::AdvancedImageToImageMetric
AdvancedImageToImageMetric()
itk::AdvancedImageToImageMetric::ImageSamplerType
ImageSamplerBase< FixedImageType > ImageSamplerType
Definition itkAdvancedImageToImageMetric.h:142
itk::AdvancedImageToImageMetric::ThreadInfoType
MultiThreaderBase::WorkUnitInfo ThreadInfoType
Definition itkAdvancedImageToImageMetric.h:170
itk::AdvancedImageToImageMetric::MovingImageDerivativeType
typename BSplineInterpolatorType::CovariantVectorType MovingImageDerivativeType
Definition itkAdvancedImageToImageMetric.h:353
itk::AdvancedImageToImageMetric::MovingImageLimiterType
LimiterFunctionBase< RealType, MovingImageDimension > MovingImageLimiterType
Definition itkAdvancedImageToImageMetric.h:151
itk::AdvancedImageToImageMetric::MovingImageLimiterOutputType
typename MovingImageLimiterType::OutputType MovingImageLimiterOutputType
Definition itkAdvancedImageToImageMetric.h:153
itk::AdvancedImageToImageMetric::FixedImagePointType
typename TransformType::InputPointType FixedImagePointType
Definition itkAdvancedImageToImageMetric.h:337
itk::AdvancedImageToImageMetric::FixedImageLimiterOutputType
typename FixedImageLimiterType::OutputType FixedImageLimiterOutputType
Definition itkAdvancedImageToImageMetric.h:150
itk::AdvancedImageToImageMetric::FixedImageMaskPointer
SmartPointer< FixedImageMaskType > FixedImageMaskPointer
Definition itkAdvancedImageToImageMetric.h:125
itk::AdvancedImageToImageMetric::BSplineInterpolatorType
BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > BSplineInterpolatorType
Definition itkAdvancedImageToImageMetric.h:342
itk::AdvancedImageToImageMetric::ImageSamplerPointer
typename ImageSamplerType::Pointer ImageSamplerPointer
Definition itkAdvancedImageToImageMetric.h:143
itk::AdvancedImageToImageMetric::MovingImageContinuousIndexType
typename InterpolatorType::ContinuousIndexType MovingImageContinuousIndexType
Definition itkAdvancedImageToImageMetric.h:339
itk::AdvancedImageToImageMetric::MovingImageMaskType
ImageMaskSpatialObject< Self::MovingImageDimension > MovingImageMaskType
Definition itkAdvancedImageToImageMetric.h:127
itk::KernelFunctionBase2
Kernel used for density estimation and nonparameteric regression.
Definition itkKernelFunctionBase2.h:41
itk::KernelFunctionBase2< PDFValueType >::Pointer
SmartPointer< Self > Pointer
Definition itkKernelFunctionBase2.h:46
itk::ParzenWindowHistogramImageToImageMetric::InitializeThreadingParameters
void InitializeThreadingParameters() const override
itk::ParzenWindowHistogramImageToImageMetric::m_MovingImageMarginalPDF
MarginalPDFType m_MovingImageMarginalPDF
Definition itkParzenWindowHistogramImageToImageMetric.h:274
itk::ParzenWindowHistogramImageToImageMetric::m_JointPDFWindow
JointPDFRegionType m_JointPDFWindow
Definition itkParzenWindowHistogramImageToImageMetric.h:283
itk::ParzenWindowHistogramImageToImageMetric::ParzenValueContainerType
Array< PDFValueType > ParzenValueContainerType
Definition itkParzenWindowHistogramImageToImageMetric.h:259
itk::ParzenWindowHistogramImageToImageMetric::JointPDFSizeType
JointPDFType::SizeType JointPDFSizeType
Definition itkParzenWindowHistogramImageToImageMetric.h:252
itk::ParzenWindowHistogramImageToImageMetric::m_JointPDFDerivatives
JointPDFDerivativesPointer m_JointPDFDerivatives
Definition itkParzenWindowHistogramImageToImageMetric.h:276
itk::ParzenWindowHistogramImageToImageMetric::ITK_DISALLOW_COPY_AND_MOVE
ITK_DISALLOW_COPY_AND_MOVE(ParzenWindowHistogramImageToImageMetric)
itk::ParzenWindowHistogramImageToImageMetric::~ParzenWindowHistogramImageToImageMetric
~ParzenWindowHistogramImageToImageMetric() override=default
itk::ParzenWindowHistogramImageToImageMetric::m_NumberOfMovingHistogramBins
unsigned long m_NumberOfMovingHistogramBins
Definition itkParzenWindowHistogramImageToImageMetric.h:499
itk::ParzenWindowHistogramImageToImageMetric::m_PerturbedAlphaRight
DerivativeType m_PerturbedAlphaRight
Definition itkParzenWindowHistogramImageToImageMetric.h:269
itk::ParzenWindowHistogramImageToImageMetric::JointPDFDerivativesIndexType
JointPDFDerivativesType::IndexType JointPDFDerivativesIndexType
Definition itkParzenWindowHistogramImageToImageMetric.h:253
itk::ParzenWindowHistogramImageToImageMetric::m_MovingKernel
KernelFunctionPointer m_MovingKernel
Definition itkParzenWindowHistogramImageToImageMetric.h:293
itk::ParzenWindowHistogramImageToImageMetric::m_FixedKernelBSplineOrder
unsigned int m_FixedKernelBSplineOrder
Definition itkParzenWindowHistogramImageToImageMetric.h:500
itk::ParzenWindowHistogramImageToImageMetric::m_JointPDF
JointPDFPointer m_JointPDF
Definition itkParzenWindowHistogramImageToImageMetric.h:275
itk::ParzenWindowHistogramImageToImageMetric::ComputePDFsAndIncrementalPDFs
virtual void ComputePDFsAndIncrementalPDFs(const ParametersType &parameters) const
itk::ParzenWindowHistogramImageToImageMetric::ParzenWindowHistogramImageToImageMetric
ParzenWindowHistogramImageToImageMetric()
itk::ParzenWindowHistogramImageToImageMetric::InitializeKernels
virtual void InitializeKernels()
itk::ParzenWindowHistogramImageToImageMetric::NonZeroJacobianIndicesType
typename AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Definition itkAdvancedImageToImageMetric.h:356
itk::ParzenWindowHistogramImageToImageMetric::m_IncrementalJointPDFRight
JointPDFDerivativesPointer m_IncrementalJointPDFRight
Definition itkParzenWindowHistogramImageToImageMetric.h:277
itk::ParzenWindowHistogramImageToImageMetric::JointPDFDerivativesPointer
typename JointPDFDerivativesType::Pointer JointPDFDerivativesPointer
Definition itkParzenWindowHistogramImageToImageMetric.h:247
itk::ParzenWindowHistogramImageToImageMetric::Initialize
void Initialize() override
itk::ParzenWindowHistogramImageToImageMetric::Self
ParzenWindowHistogramImageToImageMetric Self
Definition itkParzenWindowHistogramImageToImageMetric.h:82
itk::ParzenWindowHistogramImageToImageMetric::KernelFunctionPointer
typename KernelFunctionType::Pointer KernelFunctionPointer
Definition itkParzenWindowHistogramImageToImageMetric.h:263
itk::ParzenWindowHistogramImageToImageMetric::IncrementalMarginalPDFSizeType
IncrementalMarginalPDFType::SizeType IncrementalMarginalPDFSizeType
Definition itkParzenWindowHistogramImageToImageMetric.h:258
itk::ParzenWindowHistogramImageToImageMetric::IncrementalMarginalPDFRegionType
IncrementalMarginalPDFType::RegionType IncrementalMarginalPDFRegionType
Definition itkParzenWindowHistogramImageToImageMetric.h:257
itk::ParzenWindowHistogramImageToImageMetric::m_Alpha
double m_Alpha
Definition itkParzenWindowHistogramImageToImageMetric.h:268
itk::ParzenWindowHistogramImageToImageMetric::NormalizeJointPDFDerivatives
void NormalizeJointPDFDerivatives(JointPDFDerivativesType *pdf, const double factor) const
itk::ParzenWindowHistogramImageToImageMetric::m_UseExplicitPDFDerivatives
bool m_UseExplicitPDFDerivatives
Definition itkParzenWindowHistogramImageToImageMetric.h:503
itk::ParzenWindowHistogramImageToImageMetric::IncrementalMarginalPDFType
Image< PDFValueType, 2 > IncrementalMarginalPDFType
Definition itkParzenWindowHistogramImageToImageMetric.h:248
itk::ParzenWindowHistogramImageToImageMetric::m_MovingIncrementalMarginalPDFLeft
IncrementalMarginalPDFPointer m_MovingIncrementalMarginalPDFLeft
Definition itkParzenWindowHistogramImageToImageMetric.h:282
itk::ParzenWindowHistogramImageToImageMetric::AfterThreadedComputePDFs
void AfterThreadedComputePDFs() const
itk::ParzenWindowHistogramImageToImageMetric::m_ParzenWindowHistogramGetValueAndDerivativePerThreadVariables
std::vector< AlignedParzenWindowHistogramGetValueAndDerivativePerThreadStruct > m_ParzenWindowHistogramGetValueAndDerivativePerThreadVariables
Definition itkParzenWindowHistogramImageToImageMetric.h:495
itk::ParzenWindowHistogramImageToImageMetric::m_UseDerivative
bool m_UseDerivative
Definition itkParzenWindowHistogramImageToImageMetric.h:502
itk::ParzenWindowHistogramImageToImageMetric::PDFDerivativeValueType
float PDFDerivativeValueType
Definition itkParzenWindowHistogramImageToImageMetric.h:242
itk::ParzenWindowHistogramImageToImageMetric::ThreadedComputePDFs
void ThreadedComputePDFs(ThreadIdType threadId)
itk::ParzenWindowHistogramImageToImageMetric::m_FixedParzenTermToIndexOffset
double m_FixedParzenTermToIndexOffset
Definition itkParzenWindowHistogramImageToImageMetric.h:288
itk::ParzenWindowHistogramImageToImageMetric::JointPDFDerivativesSizeType
JointPDFDerivativesType::SizeType JointPDFDerivativesSizeType
Definition itkParzenWindowHistogramImageToImageMetric.h:255
itk::ParzenWindowHistogramImageToImageMetric::ComputePDFsSingleThreaded
virtual void ComputePDFsSingleThreaded(const ParametersType &parameters) const
itk::ParzenWindowHistogramImageToImageMetric::itkPadStruct
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, ParzenWindowHistogramGetValueAndDerivativePerThreadStruct, PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct)
itk::ParzenWindowHistogramImageToImageMetric::ComputePDFsThreaderCallback
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ComputePDFsThreaderCallback(void *arg)
itk::ParzenWindowHistogramImageToImageMetric::JointPDFDerivativesType
Image< PDFDerivativeValueType, 3 > JointPDFDerivativesType
Definition itkParzenWindowHistogramImageToImageMetric.h:246
itk::ParzenWindowHistogramImageToImageMetric::ComputePDFsAndPDFDerivatives
virtual void ComputePDFsAndPDFDerivatives(const ParametersType &parameters) const
itk::ParzenWindowHistogramImageToImageMetric::m_FixedIncrementalMarginalPDFLeft
IncrementalMarginalPDFPointer m_FixedIncrementalMarginalPDFLeft
Definition itkParzenWindowHistogramImageToImageMetric.h:281
itk::ParzenWindowHistogramImageToImageMetric::InitializeHistograms
virtual void InitializeHistograms()
itk::ParzenWindowHistogramImageToImageMetric::ComputeMarginalPDF
void ComputeMarginalPDF(const JointPDFType *jointPDF, MarginalPDFType &marginalPDF, const unsigned int direction) const
itk::ParzenWindowHistogramImageToImageMetric::Superclass
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
Definition itkParzenWindowHistogramImageToImageMetric.h:83
itk::ParzenWindowHistogramImageToImageMetric::m_UseFiniteDifferenceDerivative
bool m_UseFiniteDifferenceDerivative
Definition itkParzenWindowHistogramImageToImageMetric.h:504
itk::ParzenWindowHistogramImageToImageMetric::GetDerivative
void GetDerivative(const ParametersType &parameters, DerivativeType &Derivative) const override
itk::ParzenWindowHistogramImageToImageMetric::IncrementalMarginalPDFIndexType
IncrementalMarginalPDFType::IndexType IncrementalMarginalPDFIndexType
Definition itkParzenWindowHistogramImageToImageMetric.h:256
itk::ParzenWindowHistogramImageToImageMetric::OffsetValueType
typename FixedImageType::OffsetValueType OffsetValueType
Definition itkParzenWindowHistogramImageToImageMetric.h:231
itk::ParzenWindowHistogramImageToImageMetric::itkAlignedTypedef
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedParzenWindowHistogramGetValueAndDerivativePerThreadStruct, AlignedParzenWindowHistogramGetValueAndDerivativePerThreadStruct)
itk::ParzenWindowHistogramImageToImageMetric::LaunchComputePDFsThreaderCallback
void LaunchComputePDFsThreaderCallback() const
itk::ParzenWindowHistogramImageToImageMetric::Pointer
SmartPointer< Self > Pointer
Definition itkParzenWindowHistogramImageToImageMetric.h:84
itk::ParzenWindowHistogramImageToImageMetric::UpdateJointPDFDerivatives
void UpdateJointPDFDerivatives(const JointPDFIndexType &pdfIndex, double factor, const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji) const
itk::ParzenWindowHistogramImageToImageMetric::m_FiniteDifferencePerturbation
double m_FiniteDifferencePerturbation
Definition itkParzenWindowHistogramImageToImageMetric.h:505
itk::ParzenWindowHistogramImageToImageMetric::GetValueAndAnalyticDerivative
virtual void GetValueAndAnalyticDerivative(const ParametersType &, MeasureType &, DerivativeType &) const
Definition itkParzenWindowHistogramImageToImageMetric.h:455
itk::ParzenWindowHistogramImageToImageMetric::ComputePDFs
virtual void ComputePDFs(const ParametersType &parameters) const
itk::ParzenWindowHistogramImageToImageMetric::JointPDFType
Image< PDFValueType, 2 > JointPDFType
Definition itkParzenWindowHistogramImageToImageMetric.h:244
itk::ParzenWindowHistogramImageToImageMetric::PDFValueType
double PDFValueType
Definition itkParzenWindowHistogramImageToImageMetric.h:241
itk::ParzenWindowHistogramImageToImageMetric::m_ThreaderJointPDFs
std::vector< JointPDFPointer > m_ThreaderJointPDFs
Definition itkParzenWindowHistogramImageToImageMetric.h:472
itk::ParzenWindowHistogramImageToImageMetric::JointPDFRegionType
JointPDFType::RegionType JointPDFRegionType
Definition itkParzenWindowHistogramImageToImageMetric.h:251
itk::ParzenWindowHistogramImageToImageMetric::IncrementalMarginalPDFPointer
typename IncrementalMarginalPDFType::Pointer IncrementalMarginalPDFPointer
Definition itkParzenWindowHistogramImageToImageMetric.h:249
itk::ParzenWindowHistogramImageToImageMetric::m_PerturbedAlphaLeft
DerivativeType m_PerturbedAlphaLeft
Definition itkParzenWindowHistogramImageToImageMetric.h:270
itk::ParzenWindowHistogramImageToImageMetric::m_MovingParzenTermToIndexOffset
double m_MovingParzenTermToIndexOffset
Definition itkParzenWindowHistogramImageToImageMetric.h:289
itk::ParzenWindowHistogramImageToImageMetric::JointPDFIndexType
JointPDFType::IndexType JointPDFIndexType
Definition itkParzenWindowHistogramImageToImageMetric.h:250
itk::ParzenWindowHistogramImageToImageMetric::UpdateJointPDFAndIncrementalPDFs
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
itk::ParzenWindowHistogramImageToImageMetric::m_MovingImageNormalizedMin
double m_MovingImageNormalizedMin
Definition itkParzenWindowHistogramImageToImageMetric.h:284
itk::ParzenWindowHistogramImageToImageMetric::EvaluateParzenValues
static void EvaluateParzenValues(double parzenWindowTerm, OffsetValueType parzenWindowIndex, const KernelFunctionType &kernel, PDFValueType *parzenValues)
itk::ParzenWindowHistogramImageToImageMetric::NormalizeJointPDF
void NormalizeJointPDF(JointPDFType *pdf, const double factor) const
itk::ParzenWindowHistogramImageToImageMetric::m_FixedImageBinSize
double m_FixedImageBinSize
Definition itkParzenWindowHistogramImageToImageMetric.h:286
itk::ParzenWindowHistogramImageToImageMetric::UpdateJointPDFAndDerivatives
virtual void UpdateJointPDFAndDerivatives(const RealType fixedImageValue, const RealType movingImageValue, const DerivativeType *imageJacobian, const NonZeroJacobianIndicesType *nzji, JointPDFType *jointPDF) const
itk::ParzenWindowHistogramImageToImageMetric::m_IncrementalJointPDFLeft
JointPDFDerivativesPointer m_IncrementalJointPDFLeft
Definition itkParzenWindowHistogramImageToImageMetric.h:278
itk::ParzenWindowHistogramImageToImageMetric::m_NumberOfFixedHistogramBins
unsigned long m_NumberOfFixedHistogramBins
Definition itkParzenWindowHistogramImageToImageMetric.h:498
itk::ParzenWindowHistogramImageToImageMetric::itkStaticConstMacro
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
itk::ParzenWindowHistogramImageToImageMetric::GetValueAndDerivative
void GetValueAndDerivative(const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const override
itk::ParzenWindowHistogramImageToImageMetric::m_MovingKernelBSplineOrder
unsigned int m_MovingKernelBSplineOrder
Definition itkParzenWindowHistogramImageToImageMetric.h:501
itk::ParzenWindowHistogramImageToImageMetric::PrintSelf
void PrintSelf(std::ostream &os, Indent indent) const override
itk::ParzenWindowHistogramImageToImageMetric::m_MovingImageBinSize
double m_MovingImageBinSize
Definition itkParzenWindowHistogramImageToImageMetric.h:287
itk::ParzenWindowHistogramImageToImageMetric::m_DerivativeMovingKernel
KernelFunctionPointer m_DerivativeMovingKernel
Definition itkParzenWindowHistogramImageToImageMetric.h:294
itk::ParzenWindowHistogramImageToImageMetric::m_ParzenWindowHistogramThreaderParameters
ParzenWindowHistogramMultiThreaderParameterType m_ParzenWindowHistogramThreaderParameters
Definition itkParzenWindowHistogramImageToImageMetric.h:481
itk::ParzenWindowHistogramImageToImageMetric::m_FixedKernel
KernelFunctionPointer m_FixedKernel
Definition itkParzenWindowHistogramImageToImageMetric.h:292
itk::ParzenWindowHistogramImageToImageMetric::JointPDFDerivativesRegionType
JointPDFDerivativesType::RegionType JointPDFDerivativesRegionType
Definition itkParzenWindowHistogramImageToImageMetric.h:254
itk::ParzenWindowHistogramImageToImageMetric::ComputeIncrementalMarginalPDFs
virtual void ComputeIncrementalMarginalPDFs(const JointPDFDerivativesType *incrementalPDF, IncrementalMarginalPDFType *fixedIncrementalMarginalPDF, IncrementalMarginalPDFType *movingIncrementalMarginalPDF) const
itk::ParzenWindowHistogramImageToImageMetric::m_MovingIncrementalMarginalPDFRight
IncrementalMarginalPDFPointer m_MovingIncrementalMarginalPDFRight
Definition itkParzenWindowHistogramImageToImageMetric.h:280
itk::ParzenWindowHistogramImageToImageMetric::MarginalPDFType
Array< PDFValueType > MarginalPDFType
Definition itkParzenWindowHistogramImageToImageMetric.h:243
itk::ParzenWindowHistogramImageToImageMetric::JointPDFPointer
typename JointPDFType::Pointer JointPDFPointer
Definition itkParzenWindowHistogramImageToImageMetric.h:245
itk::ParzenWindowHistogramImageToImageMetric::ConstPointer
SmartPointer< const Self > ConstPointer
Definition itkParzenWindowHistogramImageToImageMetric.h:85
itk::ParzenWindowHistogramImageToImageMetric::m_FixedImageNormalizedMin
double m_FixedImageNormalizedMin
Definition itkParzenWindowHistogramImageToImageMetric.h:285
itk::ParzenWindowHistogramImageToImageMetric::m_FixedIncrementalMarginalPDFRight
IncrementalMarginalPDFPointer m_FixedIncrementalMarginalPDFRight
Definition itkParzenWindowHistogramImageToImageMetric.h:279
itk::ParzenWindowHistogramImageToImageMetric::KernelFunctionType
KernelFunctionBase2< PDFValueType > KernelFunctionType
Definition itkParzenWindowHistogramImageToImageMetric.h:262
itk::ParzenWindowHistogramImageToImageMetric::GetValueAndFiniteDifferenceDerivative
virtual void GetValueAndFiniteDifferenceDerivative(const ParametersType &, MeasureType &, DerivativeType &) const
Definition itkParzenWindowHistogramImageToImageMetric.h:465
itk::ParzenWindowHistogramImageToImageMetric::m_FixedImageMarginalPDF
MarginalPDFType m_FixedImageMarginalPDF
Definition itkParzenWindowHistogramImageToImageMetric.h:273
itk::ParzenWindowHistogramImageToImageMetric::itkStaticConstMacro
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
itkAdvancedImageToImageMetric.h
itkKernelFunctionBase2.h
itk
Definition itkAdvancedImageToImageMetric.h:43
itk::ParzenWindowHistogramImageToImageMetric::ParzenWindowHistogramGetValueAndDerivativePerThreadStruct
Definition itkParzenWindowHistogramImageToImageMetric.h:484
itk::ParzenWindowHistogramImageToImageMetric::ParzenWindowHistogramGetValueAndDerivativePerThreadStruct::st_NumberOfPixelsCounted
SizeValueType st_NumberOfPixelsCounted
Definition itkParzenWindowHistogramImageToImageMetric.h:485
itk::ParzenWindowHistogramImageToImageMetric::ParzenWindowHistogramGetValueAndDerivativePerThreadStruct::st_JointPDF
JointPDFPointer st_JointPDF
Definition itkParzenWindowHistogramImageToImageMetric.h:486
itk::ParzenWindowHistogramImageToImageMetric::ParzenWindowHistogramMultiThreaderParameterType
Definition itkParzenWindowHistogramImageToImageMetric.h:478
itk::ParzenWindowHistogramImageToImageMetric::ParzenWindowHistogramMultiThreaderParameterType::m_Metric
Self * m_Metric
Definition itkParzenWindowHistogramImageToImageMetric.h:479

Generated on 1768596610 for elastix by 1.15.0 |