template<class TFixedImage, class TMovingImage>
class itk::CombinationImageToImageMetric< TFixedImage, TMovingImage >
Combines multiple metrics.
This metric is meant to be used in the MultiMetricMultiResolutionImageRegistrationMethod.
NB: while it may seem not logical that the SetInterpolator(arg) sets the interpolator in all submetrics whereas the GetInterpolator() returns GetInterpolator(0) it is logical. If you set the interpolator the same in all metrics, you will receive the correct interpolator with GetInterpolator(0). If you set the interpolator differently in all metrics, the most logical action is to return GetInterpolator(0) when GetInterpolator() is invoked.
Note: If you use Set{Transform,Interpolator etc}(0) or Set{Transform,Interpolator}(), the member variables of the superclass m_{Transform,Interpolator} are set as well. So, it is not strictly necessary to reimplement the functions Get{Transform,Interpolator}(), which return Get{Transform,Interpolator}(0), which would result in the same as returning m_{Transform,Interpolator} anyway. However, if Metric[0] is changed externally the m_{Transform, Interpolator} are not up to date anymore. That's why we chose to reimplement the Get{Transform,Interpolator}() methods.
Definition at line 59 of file itkCombinationImageToImageMetric.h.
|
using | ConstPointer = SmartPointer<const Self> |
|
using | DerivativeValueType |
|
using | FixedImageMaskPointer |
|
using | FixedImageMaskType |
|
using | FixedImagePixelType = typename FixedImageType::PixelType |
|
using | FixedPointSetType |
|
using | ImageMetricPointer = typename ImageMetricType::Pointer |
|
using | ImageMetricType = Superclass |
|
using | MovingImageDerivativeScalesType = FixedArray<double, Self::MovingImageDimension> |
|
using | MovingImageMaskPointer |
|
using | MovingImageMaskType |
|
using | MovingImageRegionType = typename MovingImageType::RegionType |
|
using | MovingPointSetType |
|
using | Pointer = SmartPointer<Self> |
|
using | PointSetMetricType = SingleValuedPointSetToPointSetMetric<FixedPointSetType, MovingPointSetType> |
|
using | Self = CombinationImageToImageMetric |
|
using | SingleValuedCostFunctionPointer = typename SingleValuedCostFunctionType::Pointer |
|
using | SingleValuedCostFunctionType = SingleValuedCostFunction |
|
using | Superclass = AdvancedImageToImageMetric<TFixedImage, TMovingImage> |
|
using | ThreadInfoType |
|
using | TransformPointer = typename TransformType::Pointer |
|
using | TransformType = typename Superclass::AdvancedTransformType |
|
using | AdvancedTransformType = AdvancedTransform<ScalarType, FixedImageDimension, MovingImageDimension> |
|
using | BSplineOrder1TransformPointer = typename BSplineOrder1TransformType::Pointer |
|
using | BSplineOrder1TransformType = AdvancedBSplineDeformableTransform<ScalarType, FixedImageDimension, 1> |
|
using | BSplineOrder2TransformPointer = typename BSplineOrder2TransformType::Pointer |
|
using | BSplineOrder2TransformType = AdvancedBSplineDeformableTransform<ScalarType, FixedImageDimension, 2> |
|
using | BSplineOrder3TransformPointer = typename BSplineOrder3TransformType::Pointer |
|
using | BSplineOrder3TransformType = AdvancedBSplineDeformableTransform<ScalarType, FixedImageDimension, 3> |
|
using | CombinationTransformType = AdvancedCombinationTransform<ScalarType, FixedImageDimension> |
|
using | ConstPointer = SmartPointer<const Self> |
|
using | DerivativeValueType = typename DerivativeType::ValueType |
|
using | FixedImageLimiterOutputType = typename FixedImageLimiterType::OutputType |
|
using | FixedImageLimiterPointer = typename FixedImageLimiterType::Pointer |
|
using | FixedImageLimiterType = LimiterFunctionBase<RealType, FixedImageDimension> |
|
using | FixedImageMaskConstPointer = SmartPointer<const FixedImageMaskType> |
|
using | FixedImageMaskPointer = SmartPointer<FixedImageMaskType> |
|
using | FixedImageMaskType = ImageMaskSpatialObject<Self::FixedImageDimension> |
|
using | FixedImagePixelType = typename FixedImageType::PixelType |
|
using | FixedImagePointer = typename FixedImageType::Pointer |
|
using | ImageSampleContainerPointer = typename ImageSamplerType::OutputVectorContainerPointer |
|
using | ImageSampleContainerType = typename ImageSamplerType::OutputVectorContainerType |
|
using | ImageSamplerPointer = typename ImageSamplerType::Pointer |
|
using | ImageSamplerType = ImageSamplerBase<FixedImageType> |
|
using | MovingImageDerivativeScalesType = FixedArray<double, Self::MovingImageDimension> |
|
using | MovingImageLimiterOutputType = typename MovingImageLimiterType::OutputType |
|
using | MovingImageLimiterPointer = typename MovingImageLimiterType::Pointer |
|
using | MovingImageLimiterType = LimiterFunctionBase<RealType, MovingImageDimension> |
|
using | MovingImageMaskConstPointer = SmartPointer<const MovingImageMaskType> |
|
using | MovingImageMaskPointer = SmartPointer<MovingImageMaskType> |
|
using | MovingImageMaskType = ImageMaskSpatialObject<Self::MovingImageDimension> |
|
using | MovingImagePointer = typename MovingImageType::Pointer |
|
using | MovingImageRegionType = typename MovingImageType::RegionType |
|
using | NumberOfParametersType = typename AdvancedTransformType::NumberOfParametersType |
|
using | Pointer = SmartPointer<Self> |
|
using | ScalarType = typename TransformType::ScalarType |
|
using | Self = AdvancedImageToImageMetric |
|
using | Superclass = ImageToImageMetric<TFixedImage, TMovingImage> |
|
using | ThreadInfoType = MultiThreaderBase::WorkUnitInfo |
|
|
virtual const char * | GetClassName () const |
|
void | GetDerivative (const ParametersType ¶meters, DerivativeType &derivative) const override |
|
const FixedImageType * | GetFixedImage () const override |
|
virtual const FixedImageType * | GetFixedImage (unsigned int pos) const |
|
const FixedImageMaskType * | GetFixedImageMask () const override |
|
virtual const FixedImageMaskType * | GetFixedImageMask (unsigned int pos) const |
|
const FixedImageRegionType & | GetFixedImageRegion () const override |
|
virtual const FixedImageRegionType & | GetFixedImageRegion (unsigned int pos) const |
|
const InterpolatorType * | GetInterpolator () const override |
|
InterpolatorType * | GetInterpolator () override |
|
virtual const InterpolatorType * | GetInterpolator (unsigned int pos) const |
|
SingleValuedCostFunctionType * | GetMetric (unsigned int count) const |
|
double | GetMetricComputationTime (unsigned int pos) const |
|
const DerivativeType & | GetMetricDerivative (unsigned int pos) const |
|
double | GetMetricDerivativeMagnitude (unsigned int pos) const |
|
double | GetMetricRelativeWeight (unsigned int pos) const |
|
MeasureType | GetMetricValue (unsigned int pos) const |
|
double | GetMetricWeight (unsigned int pos) const |
|
const MovingImageType * | GetMovingImage () const override |
|
virtual const MovingImageType * | GetMovingImage (unsigned int pos) const |
|
const MovingImageMaskType * | GetMovingImageMask () const override |
|
virtual const MovingImageMaskType * | GetMovingImageMask (unsigned int pos) const |
|
ModifiedTimeType | GetMTime () const override |
|
virtual unsigned int | GetNumberOfMetrics () const |
|
const SizeValueType & | GetNumberOfPixelsCounted () const override |
|
const TransformType * | GetTransform () const override |
|
TransformType * | GetTransform () override |
|
virtual const TransformType * | GetTransform (unsigned int pos) const |
|
bool | GetUseMetric (const unsigned int pos) const |
|
virtual bool | GetUseRelativeWeights () const |
|
MeasureType | GetValue (const ParametersType ¶meters) const override |
|
void | GetValueAndDerivative (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override |
|
void | Initialize () override |
|
| ITK_DISALLOW_COPY_AND_MOVE (CombinationImageToImageMetric) |
|
| itkStaticConstMacro (FixedImageDimension, unsigned int, TFixedImage::ImageDimension) |
|
| itkStaticConstMacro (MovingImageDimension, unsigned int, TMovingImage::ImageDimension) |
|
void | SetFixedImage (const FixedImageType *_arg) override |
|
virtual void | SetFixedImage (const FixedImageType *_arg, unsigned int pos) |
|
void | SetFixedImageMask (const FixedImageMaskType *_arg) override |
|
virtual void | SetFixedImageMask (const FixedImageMaskType *_arg, unsigned int pos) |
|
void | SetFixedImageRegion (const FixedImageRegionType _arg) override |
|
virtual void | SetFixedImageRegion (const FixedImageRegionType _arg, unsigned int pos) |
|
void | SetInterpolator (InterpolatorType *_arg) override |
|
virtual void | SetInterpolator (InterpolatorType *_arg, unsigned int pos) |
|
void | SetMetric (SingleValuedCostFunctionType *metric, unsigned int pos) |
|
void | SetMetricRelativeWeight (double weight, unsigned int pos) |
|
void | SetMetricWeight (double weight, unsigned int pos) |
|
void | SetMovingImage (const MovingImageType *_arg) override |
|
virtual void | SetMovingImage (const MovingImageType *_arg, unsigned int pos) |
|
void | SetMovingImageMask (const MovingImageMaskType *_arg) override |
|
virtual void | SetMovingImageMask (const MovingImageMaskType *_arg, unsigned int pos) |
|
void | SetNumberOfMetrics (unsigned int count) |
|
void | SetTransform (TransformType *_arg) override |
|
virtual void | SetTransform (TransformType *_arg, unsigned int pos) |
|
void | SetUseAllMetrics () |
|
void | SetUseMetric (const bool use, const unsigned int pos) |
|
virtual void | SetUseRelativeWeights (bool _arg) |
|
virtual void | BeforeThreadedGetValueAndDerivative (const TransformParametersType ¶meters) const |
|
virtual const FixedImageLimiterType * | GetFixedImageLimiter () |
|
const FixedImageMaskType * | GetFixedImageMask () const override |
|
virtual double | GetFixedLimitRangeRatio () const |
|
ImageSamplerType * | GetImageSampler () const |
|
virtual const MovingImageDerivativeScalesType & | GetMovingImageDerivativeScales () |
|
virtual const MovingImageLimiterType * | GetMovingImageLimiter () |
|
const MovingImageMaskType * | GetMovingImageMask () const override |
|
virtual double | GetMovingLimitRangeRatio () const |
|
virtual double | GetRequiredRatioOfValidSamples () const |
|
virtual bool | GetScaleGradientWithRespectToMovingImageOrientation () const |
|
const AdvancedTransformType * | GetTransform () const override |
|
AdvancedTransformType * | GetTransform () override |
|
virtual bool | GetUseFixedImageLimiter () const |
|
virtual bool | GetUseImageSampler () const |
|
virtual const bool & | GetUseMetricSingleThreaded () |
|
virtual bool | GetUseMovingImageDerivativeScales () const |
|
virtual bool | GetUseMovingImageLimiter () const |
|
virtual const bool & | GetUseMultiThread () |
|
void | Initialize () override |
|
| ITK_DISALLOW_COPY_AND_MOVE (AdvancedImageToImageMetric) |
|
| itkStaticConstMacro (FixedImageDimension, unsigned int, TFixedImage::ImageDimension) |
|
| itkStaticConstMacro (MovingImageDimension, unsigned int, TMovingImage::ImageDimension) |
|
virtual void | SetFixedImageLimiter (FixedImageLimiterType *_arg) |
|
virtual void | SetFixedLimitRangeRatio (double _arg) |
|
virtual void | SetImageSampler (ImageSamplerType *_arg) |
|
virtual void | SetMovingImageDerivativeScales (MovingImageDerivativeScalesType _arg) |
|
virtual void | SetMovingImageLimiter (MovingImageLimiterType *_arg) |
|
virtual void | SetMovingLimitRangeRatio (double _arg) |
|
virtual void | SetRequiredRatioOfValidSamples (double _arg) |
|
virtual void | SetScaleGradientWithRespectToMovingImageOrientation (bool _arg) |
|
virtual void | SetUseMetricSingleThreaded (bool _arg) |
|
virtual void | SetUseMovingImageDerivativeScales (bool _arg) |
|
virtual void | SetUseMultiThread (bool _arg) |
|
virtual void | UseMetricSingleThreadedOff () |
|
virtual void | UseMetricSingleThreadedOn () |
|
virtual void | UseMultiThreadOff () |
|
virtual void | UseMultiThreadOn () |
|
|
| CombinationImageToImageMetric () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~CombinationImageToImageMetric () override=default |
|
| AdvancedImageToImageMetric () |
|
virtual void | AfterThreadedGetValue (MeasureType &) const |
|
virtual void | AfterThreadedGetValueAndDerivative (MeasureType &, DerivativeType &) const |
|
void | CheckForAdvancedTransform () |
|
void | CheckForBSplineInterpolator () |
|
void | CheckForBSplineTransform () const |
|
void | CheckNumberOfSamples (unsigned long wanted, unsigned long found) const |
|
virtual bool | EvaluateMovingImageValueAndDerivative (const MovingImagePointType &mappedPoint, RealType &movingImageValue, MovingImageDerivativeType *gradient) const |
|
bool | EvaluateTransformJacobian (const FixedImagePointType &fixedImagePoint, TransformJacobianType &jacobian, NonZeroJacobianIndicesType &nzji) const |
|
virtual void | EvaluateTransformJacobianInnerProduct (const TransformJacobianType &jacobian, const MovingImageDerivativeType &movingImageDerivative, DerivativeType &imageJacobian) const |
|
bool | FastEvaluateMovingImageValueAndDerivative (const MovingImagePointType &mappedPoint, RealType &movingImageValue, MovingImageDerivativeType *gradient, const ThreadIdType threadId) const |
|
virtual void | InitializeImageSampler () |
|
void | InitializeLimiters () |
|
virtual bool | IsInsideMovingMask (const MovingImagePointType &point) const |
|
| itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedGetValueAndDerivativePerThreadStruct, AlignedGetValueAndDerivativePerThreadStruct) |
|
| itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, GetValueAndDerivativePerThreadStruct, PaddedGetValueAndDerivativePerThreadStruct) |
|
void | LaunchGetValueAndDerivativeThreaderCallback () const |
|
void | LaunchGetValueThreaderCallback () const |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
void | SetFixedImageMask (const typename Superclass::FixedImageMaskType *) final |
|
void | SetFixedImageMask (typename Superclass::FixedImageMaskType *) final |
|
void | SetMovingImageMask (const typename Superclass::MovingImageMaskType *) final |
|
void | SetMovingImageMask (typename Superclass::MovingImageMaskType *) final |
|
virtual void | SetUseFixedImageLimiter (bool _arg) |
|
virtual void | SetUseImageSampler (bool _arg) |
|
virtual void | SetUseMovingImageLimiter (bool _arg) |
|
virtual void | ThreadedGetValue (ThreadIdType) const |
|
virtual void | ThreadedGetValueAndDerivative (ThreadIdType) const |
|
MovingImagePointType | TransformPoint (const FixedImagePointType &fixedImagePoint) const |
|
| ~AdvancedImageToImageMetric () override=default |
|