![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
00001 /*====================================================================== 00002 00003 This file is part of the elastix software. 00004 00005 Copyright (c) University Medical Center Utrecht. All rights reserved. 00006 See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for 00007 details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notices for more information. 00012 00013 ======================================================================*/ 00014 #ifndef __itkDisplacementMagnitudePenaltyTerm_h 00015 #define __itkDisplacementMagnitudePenaltyTerm_h 00016 00017 #include "itkTransformPenaltyTerm.h" 00018 00019 namespace itk 00020 { 00021 00029 template< class TFixedImage, class TScalarType > 00030 class DisplacementMagnitudePenaltyTerm 00031 : public TransformPenaltyTerm< TFixedImage, TScalarType > 00032 { 00033 public: 00034 00036 typedef DisplacementMagnitudePenaltyTerm Self; 00037 typedef TransformPenaltyTerm< 00038 TFixedImage, TScalarType > Superclass; 00039 typedef SmartPointer<Self> Pointer; 00040 typedef SmartPointer<const Self> ConstPointer; 00041 00043 itkNewMacro( Self ); 00044 00046 itkTypeMacro( DisplacementMagnitudePenaltyTerm, TransformPenaltyTerm ); 00047 00049 typedef typename Superclass::CoordinateRepresentationType CoordinateRepresentationType; 00050 typedef typename Superclass::MovingImageType MovingImageType; 00051 typedef typename Superclass::MovingImagePixelType MovingImagePixelType; 00052 typedef typename Superclass::MovingImagePointer MovingImagePointer; 00053 typedef typename Superclass::MovingImageConstPointer MovingImageConstPointer; 00054 typedef typename Superclass::FixedImageType FixedImageType; 00055 typedef typename Superclass::FixedImagePointer FixedImagePointer; 00056 typedef typename Superclass::FixedImageConstPointer FixedImageConstPointer; 00057 typedef typename Superclass::FixedImageRegionType FixedImageRegionType; 00058 typedef typename Superclass::TransformType TransformType; 00059 typedef typename Superclass::TransformPointer TransformPointer; 00060 typedef typename Superclass::InputPointType InputPointType; 00061 typedef typename Superclass::OutputPointType OutputPointType; 00062 typedef typename Superclass::TransformParametersType TransformParametersType; 00063 typedef typename Superclass::TransformJacobianType TransformJacobianType; 00064 typedef typename Superclass::InterpolatorType InterpolatorType; 00065 typedef typename Superclass::InterpolatorPointer InterpolatorPointer; 00066 typedef typename Superclass::RealType RealType; 00067 typedef typename Superclass::GradientPixelType GradientPixelType; 00068 typedef typename Superclass::GradientImageType GradientImageType; 00069 typedef typename Superclass::GradientImagePointer GradientImagePointer; 00070 typedef typename Superclass::GradientImageFilterType GradientImageFilterType; 00071 typedef typename Superclass::GradientImageFilterPointer GradientImageFilterPointer; 00072 typedef typename Superclass::FixedImageMaskType FixedImageMaskType; 00073 typedef typename Superclass::FixedImageMaskPointer FixedImageMaskPointer; 00074 typedef typename Superclass::MovingImageMaskType MovingImageMaskType; 00075 typedef typename Superclass::MovingImageMaskPointer MovingImageMaskPointer; 00076 typedef typename Superclass::MeasureType MeasureType; 00077 typedef typename Superclass::DerivativeType DerivativeType; 00078 typedef typename Superclass::DerivativeValueType DerivativeValueType; 00079 typedef typename Superclass::ParametersType ParametersType; 00080 typedef typename Superclass::FixedImagePixelType FixedImagePixelType; 00081 typedef typename Superclass::ImageSampleContainerType ImageSampleContainerType; 00082 typedef typename Superclass::ImageSampleContainerPointer ImageSampleContainerPointer; 00083 typedef typename Superclass::ScalarType ScalarType; 00084 00086 typedef typename Superclass::SpatialJacobianType SpatialJacobianType; 00087 typedef typename Superclass 00088 ::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType; 00089 typedef typename Superclass::SpatialHessianType SpatialHessianType; 00090 typedef typename Superclass 00091 ::JacobianOfSpatialHessianType JacobianOfSpatialHessianType; 00092 typedef typename Superclass::InternalMatrixType InternalMatrixType; 00093 00095 itkStaticConstMacro( FixedImageDimension, unsigned int, FixedImageType::ImageDimension ); 00096 00100 virtual MeasureType GetValue( const ParametersType & parameters ) const; 00101 00104 virtual void GetDerivative( const ParametersType & parameters, 00105 DerivativeType & derivative ) const; 00106 00111 virtual void GetValueAndDerivative( 00112 const ParametersType & parameters, 00113 MeasureType & value, 00114 DerivativeType & derivative ) const; 00115 00116 protected: 00117 00119 typedef typename Superclass::FixedImageIndexType FixedImageIndexType; 00120 typedef typename Superclass::FixedImageIndexValueType FixedImageIndexValueType; 00121 typedef typename Superclass::MovingImageIndexType MovingImageIndexType; 00122 typedef typename Superclass::FixedImagePointType FixedImagePointType; 00123 typedef typename Superclass::MovingImagePointType MovingImagePointType; 00124 typedef typename Superclass::MovingImageContinuousIndexType MovingImageContinuousIndexType; 00125 typedef typename Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType; 00126 00128 DisplacementMagnitudePenaltyTerm(); 00129 00131 virtual ~DisplacementMagnitudePenaltyTerm() {}; 00132 00136 private: 00137 00139 DisplacementMagnitudePenaltyTerm( const Self& ); // purposely not implemented 00141 void operator=( const Self& ); // purposely not implemented 00142 00143 }; // end class DisplacementMagnitudePenaltyTerm 00144 00145 00146 } // end namespace itk 00147 00148 #ifndef ITK_MANUAL_INSTANTIATION 00149 #include "itkDisplacementMagnitudePenaltyTerm.txx" 00150 #endif 00151 00152 #endif // #ifndef __itkDisplacementMagnitudePenaltyTerm_h 00153
Generated on 24-10-2011 for elastix by ![]() |
![]() |