go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkPatternIntensityImageToImageMetric.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright UMC Utrecht and contributors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef __itkPatternIntensityImageToImageMetric_h
19#define __itkPatternIntensityImageToImageMetric_h
20
22
23#include "itkPoint.h"
24#include "itkCastImageFilter.h"
25#include "itkResampleImageFilter.h"
26#include "itkMultiplyImageFilter.h"
27#include "itkSubtractImageFilter.h"
28#include "itkOptimizer.h"
29#include "itkRescaleIntensityImageFilter.h"
32
33namespace itk
34{
35
44template< class TFixedImage, class TMovingImage >
46 public AdvancedImageToImageMetric< TFixedImage, TMovingImage >
47{
48public:
49
53 TFixedImage, TMovingImage > Superclass;
55 typedef SmartPointer< const Self > ConstPointer;
56
58 itkNewMacro( Self );
59
61 itkTypeMacro( PatternIntensityImageToImageMetric, ImageToImageMetric );
62
64 typedef typename
74 typedef typename TransformType::ScalarType ScalarType;
100 typedef typename
104 typedef typename
106 typedef typename
108 typedef typename
110 typedef typename itk::Optimizer OptimizerType;
111 typedef typename OptimizerType::ScalesType ScalesType;
112
114 itkStaticConstMacro( FixedImageDimension, unsigned int,
115 FixedImageType::ImageDimension );
116
117 typedef itk::Image< FixedImagePixelType,
118 itkGetStaticConstMacro( FixedImageDimension ) > TransformedMovingImageType;
119 typedef typename itk::AdvancedCombinationTransform<
120 ScalarType, FixedImageDimension > CombinationTransformType;
125 typedef itk::ResampleImageFilter<
127 typedef typename TransformMovingImageFilterType::Pointer TransformMovingImageFilterPointer;
128 typedef itk::RescaleIntensityImageFilter<
130 typedef typename RescaleIntensityImageFilterType::Pointer RescaleIntensityImageFilterPointer;
131
132 typedef itk::SubtractImageFilter<
136 typedef typename DifferenceImageFilterType::Pointer DifferenceImageFilterPointer;
137 typedef itk::MultiplyImageFilter<
141 typedef typename MultiplyImageFilterType::Pointer MultiplyImageFilterPointer;
142
144 itkStaticConstMacro( MovingImageDimension, unsigned int,
145 MovingImageType::ImageDimension );
146
148 MeasureType GetValue( const TransformParametersType & parameters ) const override;
149
151 void GetDerivative( const TransformParametersType & parameters,
152 DerivativeType & derivative ) const override;
153
156 MeasureType & Value, DerivativeType & Derivative ) const override;
157
163 void Initialize( void ) override;
164
166 itkSetMacro( Scales, ScalesType );
167 itkGetConstReferenceMacro( Scales, ScalesType );
168
170 itkSetMacro( NoiseConstant, double );
171 itkGetConstReferenceMacro( NoiseConstant, double );
172
174 itkSetMacro( OptimizeNormalizationFactor, bool );
175 itkGetConstReferenceMacro( OptimizeNormalizationFactor, bool );
176
177protected:
178
181 void PrintSelf( std::ostream & os, Indent indent ) const override;
182
185
187 MeasureType ComputePIDiff( const TransformParametersType & parameters, float scalingfactor ) const;
188
189private:
190
191 PatternIntensityImageToImageMetric( const Self & ); // purposely not implemented
192 void operator=( const Self & ); // purposely not implemented
193
207
208};
209
210} // end namespace itk
211
212#ifndef ITK_MANUAL_INSTANTIATION
213#include "itkPatternIntensityImageToImageMetric.hxx"
214#endif
215
216#endif // end #ifndef __itkPatternIntensityImageToImageMetric_h
This class combines two transforms: an 'initial transform' with a 'current transform'.
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::TransformParametersType TransformParametersType
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::FixedImageMaskPointer FixedImageMaskPointer
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::TransformJacobianType TransformJacobianType
FixedArray< double, Self::MovingImageDimension > MovingImageDerivativeScalesType
Superclass::GradientImagePointer GradientImagePointer
Superclass::TransformPointer TransformPointer
ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
ImageSamplerBase< FixedImageType > ImageSamplerType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
Superclass::InterpolatorPointer InterpolatorPointer
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::GradientPixelType GradientPixelType
MovingImageType::RegionType MovingImageRegionType
FixedImageLimiterType::OutputType FixedImageLimiterOutputType
Superclass::MovingImagePixelType MovingImagePixelType
MovingImageLimiterType::OutputType MovingImageLimiterOutputType
LimiterFunctionBase< RealType, MovingImageDimension > MovingImageLimiterType
Superclass::FixedImageMaskType FixedImageMaskType
Superclass::GradientImageType GradientImageType
Superclass::InterpolatorType InterpolatorType
LimiterFunctionBase< RealType, FixedImageDimension > FixedImageLimiterType
Superclass::FixedImageRegionType FixedImageRegionType
Projective interpolation of an image at specified positions.
Computes similarity between two objects to be registered.
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
itk::MultiplyImageFilter< TransformedMovingImageType, TransformedMovingImageType, TransformedMovingImageType > MultiplyImageFilterType
DifferenceImageFilterType::Pointer DifferenceImageFilterPointer
TransformMovingImageFilterType::Pointer TransformMovingImageFilterPointer
Superclass::GradientImageFilterType GradientImageFilterType
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
MeasureType ComputePIDiff(const TransformParametersType &parameters, float scalingfactor) const
MeasureType ComputePIFixed(void) const
Superclass::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
void GetValueAndDerivative(const TransformParametersType &parameters, MeasureType &Value, DerivativeType &Derivative) const override
itk::SubtractImageFilter< FixedImageType, TransformedMovingImageType, TransformedMovingImageType > DifferenceImageFilterType
Superclass::FixedImageLimiterOutputType FixedImageLimiterOutputType
itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension > CombinationTransformType
itk::RescaleIntensityImageFilter< TransformedMovingImageType, TransformedMovingImageType > RescaleIntensityImageFilterType
Superclass::ImageSampleContainerType ImageSampleContainerType
RescaleIntensityImageFilterType::Pointer RescaleIntensityImageFilterPointer
MeasureType GetValue(const TransformParametersType &parameters) const override
itk::Image< FixedImagePixelType, itkGetStaticConstMacro(FixedImageDimension) > TransformedMovingImageType
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
Superclass::CoordinateRepresentationType CoordinateRepresentationType
itk::AdvancedRayCastInterpolateImageFunction< MovingImageType, ScalarType > RayCastInterpolatorType
Superclass::TransformParametersType TransformParametersType
void GetDerivative(const TransformParametersType &parameters, DerivativeType &derivative) const override
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
Superclass::MovingImageLimiterOutputType MovingImageLimiterOutputType
Superclass::MovingImageConstPointer MovingImageConstPointer
void PrintSelf(std::ostream &os, Indent indent) const override
Superclass::GradientImageFilterPointer GradientImageFilterPointer
itk::ResampleImageFilter< MovingImageType, TransformedMovingImageType > TransformMovingImageFilterType


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo