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 
33 namespace itk
34 {
35 
44 template< class TFixedImage, class TMovingImage >
46  public AdvancedImageToImageMetric< TFixedImage, TMovingImage >
47 {
48 public:
49 
53  TFixedImage, TMovingImage > Superclass;
54  typedef SmartPointer< Self > Pointer;
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;
82  typedef typename Superclass::RealType RealType;
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 
177 protected:
178 
181  void PrintSelf( std::ostream & os, Indent indent ) const override;
182 
185 
187  MeasureType ComputePIDiff( const TransformParametersType & parameters, float scalingfactor ) const;
188 
189 private:
190 
191  PatternIntensityImageToImageMetric( const Self & ); // purposely not implemented
192  void operator=( const Self & ); // purposely not implemented
193 
199  unsigned int m_NeighborhoodRadius;
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.1 elastix logo