go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkAdvancedImageToImageMetric.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 __itkAdvancedImageToImageMetric_h
19 #define __itkAdvancedImageToImageMetric_h
20 
21 #include "itkImageToImageMetric.h"
22 
23 #include "itkImageSamplerBase.h"
24 #include "itkGradientImageFilter.h"
25 #include "itkBSplineInterpolateImageFunction.h"
28 #include "itkLimiterFunctionBase.h"
29 #include "itkFixedArray.h"
30 #include "itkAdvancedTransform.h"
31 #include "vnl/vnl_sparse_matrix.h"
32 
33 // Needed for checking for B-spline for faster implementation
36 
37 #include "itkMultiThreader.h"
38 
39 namespace itk
40 {
41 
78 template< class TFixedImage, class TMovingImage >
80  public ImageToImageMetric< TFixedImage, TMovingImage >
81 {
82 public:
83 
86  typedef ImageToImageMetric< TFixedImage, TMovingImage > Superclass;
88  typedef SmartPointer< const Self > ConstPointer;
89 
91  itkTypeMacro( AdvancedImageToImageMetric, ImageToImageMetric );
92 
94  itkStaticConstMacro( MovingImageDimension, unsigned int,
95  TMovingImage::ImageDimension );
96  itkStaticConstMacro( FixedImageDimension, unsigned int,
97  TFixedImage::ImageDimension );
98 
100  typedef typename Superclass::CoordinateRepresentationType CoordinateRepresentationType;
101  typedef typename Superclass::MovingImageType MovingImageType;
102  typedef typename Superclass::MovingImagePixelType MovingImagePixelType;
103  typedef typename MovingImageType::Pointer MovingImagePointer;
104  typedef typename Superclass::MovingImageConstPointer MovingImageConstPointer;
105  typedef typename Superclass::FixedImageType FixedImageType;
106  typedef typename FixedImageType::Pointer FixedImagePointer;
107  typedef typename Superclass::FixedImageConstPointer FixedImageConstPointer;
108  typedef typename Superclass::FixedImageRegionType FixedImageRegionType;
109  typedef typename Superclass::TransformType TransformType;
110  typedef typename Superclass::TransformPointer TransformPointer;
111  typedef typename Superclass::InputPointType InputPointType;
112  typedef typename Superclass::OutputPointType OutputPointType;
113  typedef typename Superclass::TransformParametersType TransformParametersType;
114  typedef typename Superclass::TransformJacobianType TransformJacobianType;
115  typedef typename Superclass::InterpolatorType InterpolatorType;
116  typedef typename Superclass::InterpolatorPointer InterpolatorPointer;
117  typedef typename Superclass::RealType RealType;
118  typedef typename Superclass::GradientPixelType GradientPixelType;
119  typedef typename Superclass::GradientImageType GradientImageType;
120  typedef typename Superclass::GradientImagePointer GradientImagePointer;
121  typedef typename Superclass::GradientImageFilterType GradientImageFilterType;
122  typedef typename Superclass::GradientImageFilterPointer GradientImageFilterPointer;
123  typedef typename Superclass::FixedImageMaskType FixedImageMaskType;
124  typedef typename Superclass::FixedImageMaskPointer FixedImageMaskPointer;
125  typedef typename Superclass::MovingImageMaskType MovingImageMaskType;
126  typedef typename Superclass::MovingImageMaskPointer MovingImageMaskPointer;
127  typedef typename Superclass::MeasureType MeasureType;
128  typedef typename Superclass::DerivativeType DerivativeType;
129  typedef typename DerivativeType::ValueType DerivativeValueType;
130  typedef typename Superclass::ParametersType ParametersType;
131 
133  typedef typename FixedImageType::PixelType FixedImagePixelType;
134  typedef typename MovingImageType::RegionType MovingImageRegionType;
136 
142 
150 
152  typedef typename TransformType::ScalarType ScalarType;
153  typedef AdvancedTransform<
154  ScalarType, FixedImageDimension, MovingImageDimension > AdvancedTransformType;
156 
165 
167  typedef typename DerivativeType::ValueType HessianValueType;
168  typedef vnl_sparse_matrix< HessianValueType > HessianType;
169 
171  typedef itk::MultiThreader ThreaderType;
172  typedef typename ThreaderType::ThreadInfoStruct ThreadInfoType;
173 
177  virtual void SetTransform( AdvancedTransformType * arg )
178  {
179  this->Superclass::SetTransform( arg );
180  if( this->m_AdvancedTransform != arg )
181  {
182  this->m_AdvancedTransform = arg;
183  this->Modified();
184  }
185  }
186 
187 
189  const AdvancedTransformType * GetTransform( void ) const ITK_OVERRIDE
190  {
191  return this->m_AdvancedTransform.GetPointer();
192  }
193 
194 
196  itkSetObjectMacro( ImageSampler, ImageSamplerType );
197  virtual ImageSamplerType * GetImageSampler( void ) const
198  {
199  return this->m_ImageSampler.GetPointer();
200  }
201 
202 
205  itkGetConstMacro( UseImageSampler, bool );
206 
210  itkSetMacro( RequiredRatioOfValidSamples, double );
211  itkGetConstMacro( RequiredRatioOfValidSamples, double );
212 
215  itkSetObjectMacro( MovingImageLimiter, MovingImageLimiterType );
216  itkGetConstObjectMacro( MovingImageLimiter, MovingImageLimiterType );
217  itkSetObjectMacro( FixedImageLimiter, FixedImageLimiterType );
218  itkGetConstObjectMacro( FixedImageLimiter, FixedImageLimiterType );
219 
226  itkSetMacro( MovingLimitRangeRatio, double );
227  itkGetConstMacro( MovingLimitRangeRatio, double );
228  itkSetMacro( FixedLimitRangeRatio, double );
229  itkGetConstMacro( FixedLimitRangeRatio, double );
230 
233  itkGetConstMacro( UseFixedImageLimiter, bool );
234  itkGetConstMacro( UseMovingImageLimiter, bool );
235 
243  itkSetMacro( UseMovingImageDerivativeScales, bool );
244  itkGetConstMacro( UseMovingImageDerivativeScales, bool );
245 
246  itkSetMacro( ScaleGradientWithRespectToMovingImageOrientation, bool );
247  itkGetConstMacro( ScaleGradientWithRespectToMovingImageOrientation, bool );
248 
249  itkSetMacro( MovingImageDerivativeScales, MovingImageDerivativeScalesType );
250  itkGetConstReferenceMacro( MovingImageDerivativeScales, MovingImageDerivativeScalesType );
251 
260  virtual void Initialize( void ) throw ( ExceptionObject ) ITK_OVERRIDE;
261 
265  virtual void GetSelfHessian( const TransformParametersType & parameters, HessianType & H ) const;
266 
268  virtual void SetNumberOfThreads( ThreadIdType numberOfThreads );
269 
271  itkSetMacro( UseMetricSingleThreaded, bool );
272  itkGetConstReferenceMacro( UseMetricSingleThreaded, bool );
273  itkBooleanMacro( UseMetricSingleThreaded );
274 
276  // \todo: maybe these can be united, check base class.
277  itkSetMacro( UseMultiThread, bool );
278  itkGetConstReferenceMacro( UseMultiThread, bool );
279  itkBooleanMacro( UseMultiThread );
280 
287  const TransformParametersType & parameters ) const;
288 
289 protected:
290 
293 
296 
298  void PrintSelf( std::ostream & os, Indent indent ) const;
299 
303  typedef typename FixedImageType::IndexType FixedImageIndexType;
304  typedef typename FixedImageIndexType::IndexValueType FixedImageIndexValueType;
305  typedef typename MovingImageType::IndexType MovingImageIndexType;
306  typedef typename TransformType::InputPointType FixedImagePointType;
307  typedef typename TransformType::OutputPointType MovingImagePointType;
308  typedef typename InterpolatorType::ContinuousIndexType MovingImageContinuousIndexType;
309 
311  typedef BSplineInterpolateImageFunction<
313  typedef typename BSplineInterpolatorType::Pointer BSplineInterpolatorPointer;
314  typedef BSplineInterpolateImageFunction<
316  typedef typename BSplineInterpolatorFloatType::Pointer BSplineInterpolatorFloatPointer;
323  typedef typename BSplineInterpolatorType::CovariantVectorType MovingImageDerivativeType;
324  typedef GradientImageFilter<
326  typedef typename CentralDifferenceGradientFilterType::Pointer CentralDifferenceGradientFilterPointer;
327 
329  typedef typename
331 
338 
348 
350 
354  mutable bool m_TransformIsBSpline;
355 
367 
371  virtual inline void ThreadedGetValue( ThreadIdType threadID ){}
372 
374  virtual inline void AfterThreadedGetValue( MeasureType & value ) const {}
375 
377  static ITK_THREAD_RETURN_TYPE GetValueThreaderCallback( void * arg );
378 
380  void LaunchGetValueThreaderCallback( void ) const;
381 
383  virtual inline void ThreadedGetValueAndDerivative(
384  ThreadIdType threadID ){}
385 
388  MeasureType & value, DerivativeType & derivative ) const {}
389 
391  static ITK_THREAD_RETURN_TYPE GetValueAndDerivativeThreaderCallback( void * arg );
392 
395 
397  static ITK_THREAD_RETURN_TYPE AccumulateDerivativesThreaderCallback( void * arg );
398 
403 
408  {
409  // To give the threads access to all members.
411  // Used for accumulating derivatives
414  };
415  mutable MultiThreaderParameterType m_ThreaderMetricParameters;
416 
426  // test per thread struct with padding and alignment
428  {
431  };
432  itkPadStruct( ITK_CACHE_LINE_ALIGNMENT, GetValuePerThreadStruct,
433  PaddedGetValuePerThreadStruct );
434  itkAlignedTypedef( ITK_CACHE_LINE_ALIGNMENT, PaddedGetValuePerThreadStruct,
435  AlignedGetValuePerThreadStruct );
436  mutable AlignedGetValuePerThreadStruct * m_GetValuePerThreadVariables;
438 
439  // test per thread struct with padding and alignment
441  {
445  };
446  itkPadStruct( ITK_CACHE_LINE_ALIGNMENT, GetValueAndDerivativePerThreadStruct,
447  PaddedGetValueAndDerivativePerThreadStruct );
448  itkAlignedTypedef( ITK_CACHE_LINE_ALIGNMENT, PaddedGetValueAndDerivativePerThreadStruct,
449  AlignedGetValueAndDerivativePerThreadStruct );
450  mutable AlignedGetValueAndDerivativePerThreadStruct * m_GetValueAndDerivativePerThreadVariables;
452 
454  virtual void InitializeThreadingParameters( void ) const;
455 
461  virtual void InitializeImageSampler( void ) throw ( ExceptionObject );
462 
465  itkSetMacro( UseImageSampler, bool );
466 
469  virtual void CheckNumberOfSamples(
470  unsigned long wanted, unsigned long found ) const;
471 
476  virtual void CheckForBSplineInterpolator( void );
477 
487  const MovingImagePointType & mappedPoint,
488  RealType & movingImageValue,
489  MovingImageDerivativeType * gradient ) const;
490 
496  const TransformJacobianType & jacobian,
497  const MovingImageDerivativeType & movingImageDerivative,
498  DerivativeType & imageJacobian ) const;
499 
506  virtual void CheckForAdvancedTransform( void );
507 
509  virtual void CheckForBSplineTransform( void ) const;
510 
515  virtual bool TransformPoint(
516  const FixedImagePointType & fixedImagePoint,
517  MovingImagePointType & mappedPoint ) const;
518 
526  const FixedImagePointType & fixedImagePoint,
527  TransformJacobianType & jacobian,
528  NonZeroJacobianIndicesType & nzji ) const;
529 
531  virtual bool IsInsideMovingMask( const MovingImagePointType & point ) const;
532 
539  const FixedImageType * image,
540  const FixedImageRegionType & region );
541 
546  const MovingImageType * image,
547  const MovingImageRegionType & region );
548 
551  virtual void InitializeLimiters( void );
552 
555  itkSetMacro( UseFixedImageLimiter, bool );
556  itkSetMacro( UseMovingImageLimiter, bool );
557 
558 private:
559 
560  AdvancedImageToImageMetric( const Self & ); // purposely not implemented
561  void operator=( const Self & ); // purposely not implemented
562 
572 
574 
575 };
576 
577 } // end namespace itk
578 
579 #ifndef ITK_MANUAL_INSTANTIATION
580 #include "itkAdvancedImageToImageMetric.hxx"
581 #endif
582 
583 #endif // end #ifndef __itkAdvancedImageToImageMetric_h
itk::AdvancedImageToImageMetric::m_CentralDifferenceGradientFilter
CentralDifferenceGradientFilterPointer m_CentralDifferenceGradientFilter
Definition: itkAdvancedImageToImageMetric.h:349
itk::AdvancedImageToImageMetric::itkStaticConstMacro
itkStaticConstMacro(FixedImageDimension, unsigned int, TFixedImage::ImageDimension)
itk::AdvancedImageToImageMetric::Pointer
SmartPointer< Self > Pointer
Definition: itkAdvancedImageToImageMetric.h:87
itk::AdvancedImageToImageMetric::m_FixedImageTrueMax
FixedImagePixelType m_FixedImageTrueMax
Definition: itkAdvancedImageToImageMetric.h:360
itk::AdvancedImageToImageMetric::m_ReducedBSplineInterpolator
ReducedBSplineInterpolatorPointer m_ReducedBSplineInterpolator
Definition: itkAdvancedImageToImageMetric.h:347
itk::AdvancedImageToImageMetric::TransformParametersType
Superclass::TransformParametersType TransformParametersType
Definition: itkAdvancedImageToImageMetric.h:113
itk::AdvancedImageToImageMetric::HessianValueType
DerivativeType::ValueType HessianValueType
Definition: itkAdvancedImageToImageMetric.h:167
itk::AdvancedImageToImageMetric::m_UseFixedImageLimiter
bool m_UseFixedImageLimiter
Definition: itkAdvancedImageToImageMetric.h:567
itk::AdvancedImageToImageMetric::AfterThreadedGetValue
virtual void AfterThreadedGetValue(MeasureType &value) const
Definition: itkAdvancedImageToImageMetric.h:374
itk::AdvancedImageToImageMetric::CombinationTransformType
AdvancedCombinationTransform< ScalarType, FixedImageDimension > CombinationTransformType
Definition: itkAdvancedImageToImageMetric.h:158
itk::AdvancedImageToImageMetric::m_TransformIsAdvanced
bool m_TransformIsAdvanced
Definition: itkAdvancedImageToImageMetric.h:352
itk::AdvancedImageToImageMetric::CheckForBSplineInterpolator
virtual void CheckForBSplineInterpolator(void)
itk::AdvancedImageToImageMetric::FixedImageRegionType
Superclass::FixedImageRegionType FixedImageRegionType
Definition: itkAdvancedImageToImageMetric.h:108
itk::AdvancedImageToImageMetric::Self
AdvancedImageToImageMetric Self
Definition: itkAdvancedImageToImageMetric.h:85
itk::AdvancedImageToImageMetric::ImageSamplerPointer
ImageSamplerType::Pointer ImageSamplerPointer
Definition: itkAdvancedImageToImageMetric.h:139
itk::AdvancedImageToImageMetric::EvaluateTransformJacobianInnerProduct
virtual void EvaluateTransformJacobianInnerProduct(const TransformJacobianType &jacobian, const MovingImageDerivativeType &movingImageDerivative, DerivativeType &imageJacobian) const
itk::AdvancedImageToImageMetric::Initialize
virtual void Initialize(void) ITK_OVERRIDE
itkAdvancedTransform.h
itk::AdvancedImageToImageMetric::GradientImageType
Superclass::GradientImageType GradientImageType
Definition: itkAdvancedImageToImageMetric.h:119
itk::AdvancedImageToImageMetric::m_AdvancedTransform
AdvancedTransformType::Pointer m_AdvancedTransform
Definition: itkAdvancedImageToImageMetric.h:353
itk::AdvancedImageToImageMetric::BSplineOrder1TransformType
AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 > BSplineOrder1TransformType
Definition: itkAdvancedImageToImageMetric.h:159
itk::AdvancedImageToImageMetric::AdvancedImageToImageMetric
AdvancedImageToImageMetric()
SmartPointer< Self >
itk::AdvancedImageToImageMetric::HessianType
vnl_sparse_matrix< HessianValueType > HessianType
Definition: itkAdvancedImageToImageMetric.h:168
itk::AdvancedImageToImageMetric::BSplineInterpolatorFloatPointer
BSplineInterpolatorFloatType::Pointer BSplineInterpolatorFloatPointer
Definition: itkAdvancedImageToImageMetric.h:316
itk::AdvancedImageToImageMetric::DerivativeValueType
DerivativeType::ValueType DerivativeValueType
Definition: itkAdvancedImageToImageMetric.h:129
itk::AdvancedImageToImageMetric
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
Definition: itkAdvancedImageToImageMetric.h:81
itk::AdvancedImageToImageMetric::EvaluateTransformJacobian
virtual bool EvaluateTransformJacobian(const FixedImagePointType &fixedImagePoint, TransformJacobianType &jacobian, NonZeroJacobianIndicesType &nzji) const
itkReducedDimensionBSplineInterpolateImageFunction.h
itk::AdvancedImageToImageMetric::BSplineOrder3TransformType
AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 > BSplineOrder3TransformType
Definition: itkAdvancedImageToImageMetric.h:161
itk::AdvancedImageToImageMetric::DerivativeType
Superclass::DerivativeType DerivativeType
Definition: itkAdvancedImageToImageMetric.h:128
itk::AdvancedImageToImageMetric::NumberOfParametersType
AdvancedTransformType::NumberOfParametersType NumberOfParametersType
Definition: itkAdvancedImageToImageMetric.h:155
itk::AdvancedImageToImageMetric::ThreadedGetValue
virtual void ThreadedGetValue(ThreadIdType threadID)
Definition: itkAdvancedImageToImageMetric.h:371
itk::LimiterFunctionBase
Base class for all ITK limiter function objects.
Definition: itkLimiterFunctionBase.h:52
itkAdvancedCombinationTransform.h
itk::AdvancedImageToImageMetric::EvaluateMovingImageValueAndDerivative
virtual bool EvaluateMovingImageValueAndDerivative(const MovingImagePointType &mappedPoint, RealType &movingImageValue, MovingImageDerivativeType *gradient) const
itk::AdvancedImageToImageMetric::m_GetValueAndDerivativePerThreadVariablesSize
ThreadIdType m_GetValueAndDerivativePerThreadVariablesSize
Definition: itkAdvancedImageToImageMetric.h:451
itk::LimiterFunctionBase::OutputType
Superclass::OutputType OutputType
Definition: itkLimiterFunctionBase.h:68
itk::AdvancedImageToImageMetric::m_GetValuePerThreadVariables
AlignedGetValuePerThreadStruct * m_GetValuePerThreadVariables
Definition: itkAdvancedImageToImageMetric.h:436
itk::AdvancedImageToImageMetric::CheckForBSplineTransform
virtual void CheckForBSplineTransform(void) const
itk::AdvancedTransform::Pointer
SmartPointer< Self > Pointer
Definition: itkAdvancedTransform.h:95
itk::ReducedDimensionBSplineInterpolateImageFunction
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
Definition: itkReducedDimensionBSplineInterpolateImageFunction.h:93
itk::AdvancedImageToImageMetric::m_MovingImageLimiter
MovingImageLimiterPointer m_MovingImageLimiter
Definition: itkAdvancedImageToImageMetric.h:358
itk::AdvancedImageToImageMetric::CoordinateRepresentationType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Definition: itkAdvancedImageToImageMetric.h:100
itk::AdvancedImageToImageMetric::FixedImageLimiterPointer
FixedImageLimiterType::Pointer FixedImageLimiterPointer
Definition: itkAdvancedImageToImageMetric.h:145
itk::AdvancedImageToImageMetric::m_FixedImageMaxLimit
FixedImageLimiterOutputType m_FixedImageMaxLimit
Definition: itkAdvancedImageToImageMetric.h:364
itk::AdvancedImageToImageMetric::MovingImageDerivativeScalesType
FixedArray< double, Self::MovingImageDimension > MovingImageDerivativeScalesType
Definition: itkAdvancedImageToImageMetric.h:135
itk::AdvancedBSplineDeformableTransform
Deformable transform using a B-spline representation.
Definition: itkAdvancedBSplineDeformableTransform.h:135
itk::AdvancedImageToImageMetric::MovingImageLimiterOutputType
MovingImageLimiterType::OutputType MovingImageLimiterOutputType
Definition: itkAdvancedImageToImageMetric.h:149
itk::AdvancedImageToImageMetric::MovingImageDerivativeType
BSplineInterpolatorType::CovariantVectorType MovingImageDerivativeType
Definition: itkAdvancedImageToImageMetric.h:323
itk::AdvancedImageToImageMetric::ThreadedGetValueAndDerivative
virtual void ThreadedGetValueAndDerivative(ThreadIdType threadID)
Definition: itkAdvancedImageToImageMetric.h:383
itk::AdvancedImageToImageMetric::CheckNumberOfSamples
virtual void CheckNumberOfSamples(unsigned long wanted, unsigned long found) const
itk::AdvancedImageToImageMetric::CentralDifferenceGradientFilterPointer
CentralDifferenceGradientFilterType::Pointer CentralDifferenceGradientFilterPointer
Definition: itkAdvancedImageToImageMetric.h:326
itk::AdvancedImageToImageMetric::OutputPointType
Superclass::OutputPointType OutputPointType
Definition: itkAdvancedImageToImageMetric.h:112
itk::AdvancedImageToImageMetric::ParametersType
Superclass::ParametersType ParametersType
Definition: itkAdvancedImageToImageMetric.h:130
itk::AdvancedImageToImageMetric::MovingImageLimiterType
LimiterFunctionBase< RealType, MovingImageDimension > MovingImageLimiterType
Definition: itkAdvancedImageToImageMetric.h:147
itk::AdvancedCombinationTransform
This class combines two transforms: an 'initial transform' with a 'current transform'.
Definition: itkAdvancedCombinationTransform.h:58
itk::AdvancedImageToImageMetric::GradientImageFilterType
Superclass::GradientImageFilterType GradientImageFilterType
Definition: itkAdvancedImageToImageMetric.h:121
itk::AdvancedLinearInterpolateImageFunction
Linearly interpolate an image at specified positions.
Definition: itkAdvancedLinearInterpolateImageFunction.h:65
itk::AdvancedImageToImageMetric::InterpolatorPointer
Superclass::InterpolatorPointer InterpolatorPointer
Definition: itkAdvancedImageToImageMetric.h:116
itk::AdvancedImageToImageMetric::ComputeMovingImageExtrema
virtual void ComputeMovingImageExtrema(const MovingImageType *image, const MovingImageRegionType &region)
itk::AdvancedImageToImageMetric::InitializeImageSampler
virtual void InitializeImageSampler(void)
itkImageSamplerBase.h
itk::AdvancedImageToImageMetric::GradientImagePointer
Superclass::GradientImagePointer GradientImagePointer
Definition: itkAdvancedImageToImageMetric.h:120
itk::AdvancedImageToImageMetric::BSplineOrder2TransformType
AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 > BSplineOrder2TransformType
Definition: itkAdvancedImageToImageMetric.h:160
itk::AdvancedImageToImageMetric::ImageSampleContainerType
ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
Definition: itkAdvancedImageToImageMetric.h:140
itk::AdvancedImageToImageMetric::itkStaticConstMacro
itkStaticConstMacro(MovingImageDimension, unsigned int, TMovingImage::ImageDimension)
itk::AdvancedImageToImageMetric::InterpolatorType
Superclass::InterpolatorType InterpolatorType
Definition: itkAdvancedImageToImageMetric.h:115
itk::AdvancedImageToImageMetric::GetValueAndDerivativeThreaderCallback
static ITK_THREAD_RETURN_TYPE GetValueAndDerivativeThreaderCallback(void *arg)
itkLimiterFunctionBase.h
itk::AdvancedImageToImageMetric::AdvancedImageToImageMetric
AdvancedImageToImageMetric(const Self &)
itk::AdvancedImageToImageMetric::m_RequiredRatioOfValidSamples
double m_RequiredRatioOfValidSamples
Definition: itkAdvancedImageToImageMetric.h:569
itk::AdvancedImageToImageMetric::NonZeroJacobianIndicesType
AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Definition: itkAdvancedImageToImageMetric.h:330
itk::AdvancedImageToImageMetric::TransformJacobianType
Superclass::TransformJacobianType TransformJacobianType
Definition: itkAdvancedImageToImageMetric.h:114
itk::AdvancedImageToImageMetric::AdvancedTransformType
AdvancedTransform< ScalarType, FixedImageDimension, MovingImageDimension > AdvancedTransformType
Definition: itkAdvancedImageToImageMetric.h:154
itk::AdvancedImageToImageMetric::m_MovingImageDerivativeScales
MovingImageDerivativeScalesType m_MovingImageDerivativeScales
Definition: itkAdvancedImageToImageMetric.h:573
itk::AdvancedImageToImageMetric::m_MovingLimitRangeRatio
double m_MovingLimitRangeRatio
Definition: itkAdvancedImageToImageMetric.h:566
itk::AdvancedImageToImageMetric::FixedImageMaskType
Superclass::FixedImageMaskType FixedImageMaskType
Definition: itkAdvancedImageToImageMetric.h:123
itk::AdvancedImageToImageMetric::FixedImageIndexType
FixedImageType::IndexType FixedImageIndexType
Definition: itkAdvancedImageToImageMetric.h:303
itk::AdvancedImageToImageMetric::ReducedBSplineInterpolatorPointer
ReducedBSplineInterpolatorType::Pointer ReducedBSplineInterpolatorPointer
Definition: itkAdvancedImageToImageMetric.h:319
itk::AdvancedImageToImageMetric::LinearInterpolatorPointer
LinearInterpolatorType::Pointer LinearInterpolatorPointer
Definition: itkAdvancedImageToImageMetric.h:322
itk::AdvancedImageToImageMetric::MovingImageRegionType
MovingImageType::RegionType MovingImageRegionType
Definition: itkAdvancedImageToImageMetric.h:134
itk::AdvancedImageToImageMetric::LinearInterpolatorType
AdvancedLinearInterpolateImageFunction< MovingImageType, CoordinateRepresentationType > LinearInterpolatorType
Definition: itkAdvancedImageToImageMetric.h:321
itk::AdvancedImageToImageMetric::m_MovingImageTrueMax
MovingImagePixelType m_MovingImageTrueMax
Definition: itkAdvancedImageToImageMetric.h:362
itk::AdvancedImageToImageMetric::m_UseMovingImageDerivativeScales
bool m_UseMovingImageDerivativeScales
Definition: itkAdvancedImageToImageMetric.h:570
itk::AdvancedImageToImageMetric::m_FixedImageLimiter
FixedImageLimiterPointer m_FixedImageLimiter
Definition: itkAdvancedImageToImageMetric.h:357
itk::AdvancedImageToImageMetric::InitializeLimiters
virtual void InitializeLimiters(void)
itk::AdvancedImageToImageMetric::m_LinearInterpolator
LinearInterpolatorPointer m_LinearInterpolator
Definition: itkAdvancedImageToImageMetric.h:344
itk::AdvancedImageToImageMetric::FixedImagePointer
FixedImageType::Pointer FixedImagePointer
Definition: itkAdvancedImageToImageMetric.h:106
itk::AdvancedTransform
Transform maps points, vectors and covariant vectors from an input space to an output space.
Definition: itkAdvancedTransform.h:87
itk::AdvancedImageToImageMetric::BeforeThreadedGetValueAndDerivative
virtual void BeforeThreadedGetValueAndDerivative(const TransformParametersType &parameters) const
itk::AdvancedImageToImageMetric::MovingImageMaskType
Superclass::MovingImageMaskType MovingImageMaskType
Definition: itkAdvancedImageToImageMetric.h:125
itk::AdvancedImageToImageMetric::GetValueThreaderCallback
static ITK_THREAD_RETURN_TYPE GetValueThreaderCallback(void *arg)
itk::AdvancedImageToImageMetric::ReducedBSplineInterpolatorType
ReducedDimensionBSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > ReducedBSplineInterpolatorType
Definition: itkAdvancedImageToImageMetric.h:318
ThreadIdType
itk::AdvancedImageToImageMetric::SetNumberOfThreads
virtual void SetNumberOfThreads(ThreadIdType numberOfThreads)
itk::AdvancedImageToImageMetric::GradientImageFilterPointer
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Definition: itkAdvancedImageToImageMetric.h:122
itk::AdvancedImageToImageMetric::FixedImageType
Superclass::FixedImageType FixedImageType
Definition: itkAdvancedImageToImageMetric.h:105
itk::AdvancedImageToImageMetric::ThreaderType
itk::MultiThreader ThreaderType
Definition: itkAdvancedImageToImageMetric.h:171
itk::AdvancedImageToImageMetric::MovingImagePointer
MovingImageType::Pointer MovingImagePointer
Definition: itkAdvancedImageToImageMetric.h:103
itk::AdvancedImageToImageMetric::MultiThreaderParameterType::st_Metric
AdvancedImageToImageMetric * st_Metric
Definition: itkAdvancedImageToImageMetric.h:410
itk::AdvancedImageToImageMetric::MovingImagePixelType
Superclass::MovingImagePixelType MovingImagePixelType
Definition: itkAdvancedImageToImageMetric.h:102
itk::AdvancedImageToImageMetric::ScalarType
TransformType::ScalarType ScalarType
Definition: itkAdvancedImageToImageMetric.h:152
itk::AdvancedImageToImageMetric::TransformPoint
virtual bool TransformPoint(const FixedImagePointType &fixedImagePoint, MovingImagePointType &mappedPoint) const
itk::AdvancedImageToImageMetric::FixedImagePixelType
FixedImageType::PixelType FixedImagePixelType
Definition: itkAdvancedImageToImageMetric.h:133
itk::AdvancedImageToImageMetric::ComputeFixedImageExtrema
virtual void ComputeFixedImageExtrema(const FixedImageType *image, const FixedImageRegionType &region)
itk::AdvancedImageToImageMetric::m_UseMultiThread
bool m_UseMultiThread
Definition: itkAdvancedImageToImageMetric.h:401
itk::AdvancedImageToImageMetric::m_ImageSampler
ImageSamplerPointer m_ImageSampler
Definition: itkAdvancedImageToImageMetric.h:337
itk::AdvancedImageToImageMetric::FixedImagePointType
TransformType::InputPointType FixedImagePointType
Definition: itkAdvancedImageToImageMetric.h:306
itk::AdvancedImageToImageMetric::FixedImageLimiterOutputType
FixedImageLimiterType::OutputType FixedImageLimiterOutputType
Definition: itkAdvancedImageToImageMetric.h:146
itk::AdvancedImageToImageMetric::IsInsideMovingMask
virtual bool IsInsideMovingMask(const MovingImagePointType &point) const
itk::AdvancedImageToImageMetric::GetValueAndDerivativePerThreadStruct
Definition: itkAdvancedImageToImageMetric.h:441
itk::AdvancedImageToImageMetric::BSplineInterpolatorFloatType
BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, float > BSplineInterpolatorFloatType
Definition: itkAdvancedImageToImageMetric.h:315
itk::AdvancedLinearInterpolateImageFunction::Pointer
SmartPointer< Self > Pointer
Definition: itkAdvancedLinearInterpolateImageFunction.h:71
itk::AdvancedImageToImageMetric::Superclass
ImageToImageMetric< TFixedImage, TMovingImage > Superclass
Definition: itkAdvancedImageToImageMetric.h:86
itk::AdvancedImageToImageMetric::itkAlignedTypedef
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedGetValueAndDerivativePerThreadStruct, AlignedGetValueAndDerivativePerThreadStruct)
itk::AdvancedImageToImageMetric::GetValuePerThreadStruct::st_Value
MeasureType st_Value
Definition: itkAdvancedImageToImageMetric.h:430
itk::AdvancedImageToImageMetric::GetValuePerThreadStruct::st_NumberOfPixelsCounted
SizeValueType st_NumberOfPixelsCounted
Definition: itkAdvancedImageToImageMetric.h:429
itk::AdvancedImageToImageMetric::m_FixedImageMinLimit
FixedImageLimiterOutputType m_FixedImageMinLimit
Definition: itkAdvancedImageToImageMetric.h:363
itk::AdvancedImageToImageMetric::AfterThreadedGetValueAndDerivative
virtual void AfterThreadedGetValueAndDerivative(MeasureType &value, DerivativeType &derivative) const
Definition: itkAdvancedImageToImageMetric.h:387
itk::AdvancedImageToImageMetric::ImageSampleContainerPointer
ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
Definition: itkAdvancedImageToImageMetric.h:141
itk::AdvancedImageToImageMetric::FixedImageLimiterType
LimiterFunctionBase< RealType, FixedImageDimension > FixedImageLimiterType
Definition: itkAdvancedImageToImageMetric.h:144
itk::AdvancedImageToImageMetric::RealType
Superclass::RealType RealType
Definition: itkAdvancedImageToImageMetric.h:117
itk::AdvancedImageToImageMetric::m_FixedImageTrueMin
FixedImagePixelType m_FixedImageTrueMin
Definition: itkAdvancedImageToImageMetric.h:359
itk::AdvancedImageToImageMetric::LaunchGetValueThreaderCallback
void LaunchGetValueThreaderCallback(void) const
itk::AdvancedImageToImageMetric::m_UseMetricSingleThreaded
bool m_UseMetricSingleThreaded
Definition: itkAdvancedImageToImageMetric.h:400
itk::AdvancedImageToImageMetric::itkPadStruct
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, GetValueAndDerivativePerThreadStruct, PaddedGetValueAndDerivativePerThreadStruct)
itk::AdvancedImageToImageMetric::m_ThreaderMetricParameters
MultiThreaderParameterType m_ThreaderMetricParameters
Definition: itkAdvancedImageToImageMetric.h:415
itk::AdvancedTransform::NonZeroJacobianIndicesType
std::vector< unsigned long > NonZeroJacobianIndicesType
Definition: itkAdvancedTransform.h:141
itk::AdvancedImageToImageMetric::LaunchGetValueAndDerivativeThreaderCallback
void LaunchGetValueAndDerivativeThreaderCallback(void) const
itk::AdvancedImageToImageMetric::m_BSplineInterpolatorFloat
BSplineInterpolatorFloatPointer m_BSplineInterpolatorFloat
Definition: itkAdvancedImageToImageMetric.h:346
itk::AdvancedImageToImageMetric::operator=
void operator=(const Self &)
itk::AdvancedImageToImageMetric::MovingImageContinuousIndexType
InterpolatorType::ContinuousIndexType MovingImageContinuousIndexType
Definition: itkAdvancedImageToImageMetric.h:308
itk::AdvancedImageToImageMetric::MeasureType
Superclass::MeasureType MeasureType
Definition: itkAdvancedImageToImageMetric.h:127
itk::AdvancedImageToImageMetric::m_InterpolatorIsBSpline
bool m_InterpolatorIsBSpline
Definition: itkAdvancedImageToImageMetric.h:341
itk::AdvancedImageToImageMetric::GetValuePerThreadStruct
Definition: itkAdvancedImageToImageMetric.h:428
itk::AdvancedImageToImageMetric::m_FixedLimitRangeRatio
double m_FixedLimitRangeRatio
Definition: itkAdvancedImageToImageMetric.h:565
itk
Definition: itkAdvancedImageToImageMetric.h:40
itk::AdvancedImageToImageMetric::FixedImageMaskPointer
Superclass::FixedImageMaskPointer FixedImageMaskPointer
Definition: itkAdvancedImageToImageMetric.h:124
itk::AdvancedImageToImageMetric::m_UseImageSampler
bool m_UseImageSampler
Definition: itkAdvancedImageToImageMetric.h:564
itk::AdvancedImageToImageMetric::MovingImagePointType
TransformType::OutputPointType MovingImagePointType
Definition: itkAdvancedImageToImageMetric.h:307
itk::AdvancedImageToImageMetric::BSplineOrder3TransformPointer
BSplineOrder3TransformType::Pointer BSplineOrder3TransformPointer
Definition: itkAdvancedImageToImageMetric.h:164
itk::AdvancedImageToImageMetric::GetImageSampler
virtual ImageSamplerType * GetImageSampler(void) const
Definition: itkAdvancedImageToImageMetric.h:197
itk::AdvancedImageToImageMetric::BSplineOrder1TransformPointer
BSplineOrder1TransformType::Pointer BSplineOrder1TransformPointer
Definition: itkAdvancedImageToImageMetric.h:162
itk::AdvancedImageToImageMetric::MovingImageMaskPointer
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Definition: itkAdvancedImageToImageMetric.h:126
itk::AdvancedImageToImageMetric::CheckForAdvancedTransform
virtual void CheckForAdvancedTransform(void)
itk::AdvancedImageToImageMetric::MultiThreaderParameterType::st_DerivativePointer
DerivativeValueType * st_DerivativePointer
Definition: itkAdvancedImageToImageMetric.h:412
itk::ReducedDimensionBSplineInterpolateImageFunction::Pointer
SmartPointer< Self > Pointer
Definition: itkReducedDimensionBSplineInterpolateImageFunction.h:99
itk::AdvancedImageToImageMetric::m_MovingImageMaxLimit
MovingImageLimiterOutputType m_MovingImageMaxLimit
Definition: itkAdvancedImageToImageMetric.h:366
itk::AdvancedImageToImageMetric::m_ScaleGradientWithRespectToMovingImageOrientation
bool m_ScaleGradientWithRespectToMovingImageOrientation
Definition: itkAdvancedImageToImageMetric.h:571
itk::AdvancedImageToImageMetric::~AdvancedImageToImageMetric
virtual ~AdvancedImageToImageMetric()
itk::AdvancedImageToImageMetric::itkAlignedTypedef
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedGetValuePerThreadStruct, AlignedGetValuePerThreadStruct)
itk::AdvancedImageToImageMetric::ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkAdvancedImageToImageMetric.h:88
itk::AdvancedImageToImageMetric::itkPadStruct
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, GetValuePerThreadStruct, PaddedGetValuePerThreadStruct)
itk::AdvancedImageToImageMetric::m_BSplineInterpolator
BSplineInterpolatorPointer m_BSplineInterpolator
Definition: itkAdvancedImageToImageMetric.h:345
itk::AdvancedTransform::NumberOfParametersType
Superclass::NumberOfParametersType NumberOfParametersType
Definition: itkAdvancedTransform.h:113
itk::AdvancedImageToImageMetric::MovingImageType
Superclass::MovingImageType MovingImageType
Definition: itkAdvancedImageToImageMetric.h:101
itk::AdvancedImageToImageMetric::m_InterpolatorIsReducedBSpline
bool m_InterpolatorIsReducedBSpline
Definition: itkAdvancedImageToImageMetric.h:343
itk::AdvancedImageToImageMetric::m_TransformIsBSpline
bool m_TransformIsBSpline
Definition: itkAdvancedImageToImageMetric.h:354
itk::AdvancedImageToImageMetric::GetSelfHessian
virtual void GetSelfHessian(const TransformParametersType &parameters, HessianType &H) const
itk::ImageSamplerBase
This class is a base class for any image sampler.
Definition: itkImageSamplerBase.h:45
itk::AdvancedImageToImageMetric::BSplineInterpolatorType
BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > BSplineInterpolatorType
Definition: itkAdvancedImageToImageMetric.h:312
itk::AdvancedImageToImageMetric::BSplineInterpolatorPointer
BSplineInterpolatorType::Pointer BSplineInterpolatorPointer
Definition: itkAdvancedImageToImageMetric.h:313
itk::AdvancedImageToImageMetric::MultiThreaderParameterType
Definition: itkAdvancedImageToImageMetric.h:408
itk::VectorDataContainer
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
Definition: itkVectorDataContainer.h:79
itkAdvancedLinearInterpolateImageFunction.h
itk::AdvancedImageToImageMetric::m_InterpolatorIsBSplineFloat
bool m_InterpolatorIsBSplineFloat
Definition: itkAdvancedImageToImageMetric.h:342
itk::AdvancedImageToImageMetric::GradientPixelType
Superclass::GradientPixelType GradientPixelType
Definition: itkAdvancedImageToImageMetric.h:118
itk::AdvancedImageToImageMetric::m_GetValueAndDerivativePerThreadVariables
AlignedGetValueAndDerivativePerThreadStruct * m_GetValueAndDerivativePerThreadVariables
Definition: itkAdvancedImageToImageMetric.h:450
itk::AdvancedImageToImageMetric::CentralDifferenceGradientFilterType
GradientImageFilter< MovingImageType, RealType, RealType > CentralDifferenceGradientFilterType
Definition: itkAdvancedImageToImageMetric.h:325
itk::AdvancedImageToImageMetric::MultiThreaderParameterType::st_NormalizationFactor
DerivativeValueType st_NormalizationFactor
Definition: itkAdvancedImageToImageMetric.h:413
itk::AdvancedImageToImageMetric::m_UseOpenMP
bool m_UseOpenMP
Definition: itkAdvancedImageToImageMetric.h:402
itk::AdvancedImageToImageMetric::TransformPointer
Superclass::TransformPointer TransformPointer
Definition: itkAdvancedImageToImageMetric.h:110
itk::AdvancedImageToImageMetric::m_UseMovingImageLimiter
bool m_UseMovingImageLimiter
Definition: itkAdvancedImageToImageMetric.h:568
itk::AdvancedImageToImageMetric::GetValueAndDerivativePerThreadStruct::st_Derivative
DerivativeType st_Derivative
Definition: itkAdvancedImageToImageMetric.h:444
itk::AdvancedImageToImageMetric::m_InterpolatorIsLinear
bool m_InterpolatorIsLinear
Definition: itkAdvancedImageToImageMetric.h:340
itk::AdvancedImageToImageMetric::TransformType
Superclass::TransformType TransformType
Definition: itkAdvancedImageToImageMetric.h:109
itk::AdvancedImageToImageMetric::MovingImageIndexType
MovingImageType::IndexType MovingImageIndexType
Definition: itkAdvancedImageToImageMetric.h:305
itk::AdvancedImageToImageMetric::m_MovingImageTrueMin
MovingImagePixelType m_MovingImageTrueMin
Definition: itkAdvancedImageToImageMetric.h:361
itk::AdvancedImageToImageMetric::BSplineOrder2TransformPointer
BSplineOrder2TransformType::Pointer BSplineOrder2TransformPointer
Definition: itkAdvancedImageToImageMetric.h:163
itk::AdvancedImageToImageMetric::GetValueAndDerivativePerThreadStruct::st_NumberOfPixelsCounted
SizeValueType st_NumberOfPixelsCounted
Definition: itkAdvancedImageToImageMetric.h:442
itk::AdvancedImageToImageMetric::PrintSelf
void PrintSelf(std::ostream &os, Indent indent) const
itk::AdvancedImageToImageMetric::FixedImageIndexValueType
FixedImageIndexType::IndexValueType FixedImageIndexValueType
Definition: itkAdvancedImageToImageMetric.h:304
itk::AdvancedImageToImageMetric::m_MovingImageMinLimit
MovingImageLimiterOutputType m_MovingImageMinLimit
Definition: itkAdvancedImageToImageMetric.h:365
itk::AdvancedImageToImageMetric::m_GetValuePerThreadVariablesSize
ThreadIdType m_GetValuePerThreadVariablesSize
Definition: itkAdvancedImageToImageMetric.h:437
itk::AdvancedImageToImageMetric::MovingImageLimiterPointer
MovingImageLimiterType::Pointer MovingImageLimiterPointer
Definition: itkAdvancedImageToImageMetric.h:148
FixedArray< double, Self::MovingImageDimension >
itk::AdvancedImageToImageMetric::AccumulateDerivativesThreaderCallback
static ITK_THREAD_RETURN_TYPE AccumulateDerivativesThreaderCallback(void *arg)
itk::AdvancedImageToImageMetric::FixedImageConstPointer
Superclass::FixedImageConstPointer FixedImageConstPointer
Definition: itkAdvancedImageToImageMetric.h:107
itk::AdvancedImageToImageMetric::MovingImageConstPointer
Superclass::MovingImageConstPointer MovingImageConstPointer
Definition: itkAdvancedImageToImageMetric.h:104
itk::AdvancedImageToImageMetric::InputPointType
Superclass::InputPointType InputPointType
Definition: itkAdvancedImageToImageMetric.h:111
itk::AdvancedImageToImageMetric::ImageSamplerType
ImageSamplerBase< FixedImageType > ImageSamplerType
Definition: itkAdvancedImageToImageMetric.h:138
itkAdvancedBSplineDeformableTransform.h
itk::AdvancedImageToImageMetric::GetValueAndDerivativePerThreadStruct::st_Value
MeasureType st_Value
Definition: itkAdvancedImageToImageMetric.h:443
itk::AdvancedImageToImageMetric::SetTransform
virtual void SetTransform(AdvancedTransformType *arg)
Definition: itkAdvancedImageToImageMetric.h:177
itk::AdvancedImageToImageMetric::GetTransform
const AdvancedTransformType * GetTransform(void) const ITK_OVERRIDE
Definition: itkAdvancedImageToImageMetric.h:189
itk::AdvancedImageToImageMetric::InitializeThreadingParameters
virtual void InitializeThreadingParameters(void) const
itk::AdvancedImageToImageMetric::ThreadInfoType
ThreaderType::ThreadInfoStruct ThreadInfoType
Definition: itkAdvancedImageToImageMetric.h:172


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.18 elastix logo