15 #ifndef __itkTransformRigidityPenaltyTerm_h
16 #define __itkTransformRigidityPenaltyTerm_h
25 #include "itkNeighborhood.h"
26 #include "itkImageRegionIterator.h"
27 #include "itkNeighborhoodOperatorImageFilter.h"
28 #include "itkNeighborhoodIterator.h"
31 #include "itkGrayscaleDilateImageFilter.h"
32 #include "itkBinaryBallStructuringElement.h"
33 #include "itkImageRegionIterator.h"
68 template<
class TFixedImage,
class TScalarType >
139 virtual void Initialize(
void ) throw ( ExceptionObject );
153 typedef Neighborhood< ScalarType,
157 typedef NeighborhoodOperatorImageFilter<
158 CoefficientImageType, CoefficientImageType >
NOIFType;
170 typedef BinaryBallStructuringElement<
174 typedef GrayscaleDilateImageFilter<
175 RigidityImageType, RigidityImageType,
206 itkSetClampMacro( LinearityConditionWeight, ScalarType,
207 0.0, NumericTraits<ScalarType>::
max() );
208 itkGetMacro( LinearityConditionWeight, ScalarType );
211 itkSetClampMacro( OrthonormalityConditionWeight, ScalarType,
212 0.0, NumericTraits<ScalarType>::max() );
213 itkGetMacro( OrthonormalityConditionWeight, ScalarType );
216 itkSetClampMacro( PropernessConditionWeight, ScalarType,
217 0.0, NumericTraits<ScalarType>::max() );
218 itkGetMacro( PropernessConditionWeight, ScalarType );
221 itkSetMacro( UseLinearityCondition,
bool );
224 itkSetMacro( UseOrthonormalityCondition,
bool );
227 itkSetMacro( UsePropernessCondition,
bool );
232 itkSetMacro( CalculateLinearityCondition,
bool );
237 itkSetMacro( CalculateOrthonormalityCondition,
bool );
242 itkSetMacro( CalculatePropernessCondition,
bool );
245 itkGetConstReferenceMacro( LinearityConditionValue,
MeasureType );
248 itkGetConstReferenceMacro( OrthonormalityConditionValue, MeasureType );
251 itkGetConstReferenceMacro( PropernessConditionValue, MeasureType );
254 itkGetConstReferenceMacro( LinearityConditionGradientMagnitude, MeasureType );
257 itkGetConstReferenceMacro( OrthonormalityConditionGradientMagnitude, MeasureType );
260 itkGetConstReferenceMacro( PropernessConditionGradientMagnitude, MeasureType );
270 0.1, NumericTraits<CoordinateRepresentationType>::max() );
273 itkSetObjectMacro( FixedRigidityImage, RigidityImageType );
276 itkSetObjectMacro( MovingRigidityImage, RigidityImageType );
279 itkSetMacro( UseFixedRigidityImage,
bool );
282 itkSetMacro( UseMovingRigidityImage,
bool );
292 virtual ~TransformRigidityPenaltyTerm() {};
295 void PrintSelf( std::ostream& os, Indent indent )
const;
317 const std::vector< NeighborhoodType > &Operators )
const;
359 #ifndef ITK_MANUAL_INSTANTIATION
360 #include "itkTransformRigidityPenaltyTerm.txx"
363 #endif // #ifndef __itkTransformRigidityPenaltyTerm_h