14 #ifndef __itkMultiBSplineDeformableTransformWithNormal_h
15 #define __itkMultiBSplineDeformableTransformWithNormal_h
18 #include "itkNearestNeighborInterpolateImageFunction.h"
36 class TScalarType =
double,
37 unsigned int NDimensions = 3,
38 unsigned int VSplineOrder = 3 >
57 itkStaticConstMacro( SpaceDimension,
unsigned int, NDimensions );
60 itkStaticConstMacro( SplineOrder,
unsigned int, VSplineOrder );
90 itkGetStaticConstMacro( SpaceDimension ),
157 void SetIdentity(
void );
191 typedef ImageRegion< itkGetStaticConstMacro( SpaceDimension ) >
RegionType;
201 virtual void SetGridRegion(
const RegionType & region );
202 virtual RegionType GetGridRegion(
void )
const;
205 virtual void SetGridSpacing(
const SpacingType & spacing );
209 virtual void SetGridDirection(
const DirectionType & spacing );
213 virtual void SetGridOrigin(
const OriginType & origin );
214 virtual OriginType GetGridOrigin(
void )
const;
217 typedef Image<
unsigned char,
221 typedef itk::NearestNeighborInterpolateImageFunction<
226 typedef Vector<TScalarType, itkGetStaticConstMacro(SpaceDimension)>
VectorType;
227 typedef Vector<VectorType, itkGetStaticConstMacro(SpaceDimension)>
BaseType;
230 typedef Image<BaseType, itkGetStaticConstMacro( SpaceDimension ) >
ImageBaseType;
237 itkGetConstMacro( NbLabels,
unsigned char );
240 void UpdateLocalBases(
void );
251 itkExceptionMacro( <<
"Method not applicable for deformable transform." );
260 itkExceptionMacro( <<
"Method not applicable for deformable transform. ");
270 itkExceptionMacro( <<
"Method not applicable for deformable transform. ");
275 virtual NumberOfParametersType GetNumberOfParameters(
void )
const;
278 virtual NumberOfParametersType GetNumberOfParametersPerDimension(
void )
const;
283 return m_Trans[0]->GetValidRegion();
291 virtual bool IsLinear(
void )
const {
return false; }
296 return m_Trans[0]->m_WeightsFunction->GetNumberOfWeights();
301 return m_Trans[0]->m_WeightsFunction->GetNumberOfWeights();
306 return m_Trans[0]->m_WeightsFunction->GetNumberOfWeights() * SpaceDimension;
337 virtual void GetJacobian(
343 virtual void GetSpatialJacobian(
347 virtual void GetJacobianOfSpatialJacobian(
352 virtual void GetJacobianOfSpatialJacobian(
359 virtual void GetSpatialHessian(
368 itkExceptionMacro( <<
"ERROR: GetJacobianOfSpatialHessian() not yet implemented "
369 <<
"in the MultiBSplineDeformableTransformWithNormal class." );
372 virtual void GetJacobianOfSpatialHessian(
373 const InputPointType &,
374 SpatialHessianType &,
375 JacobianOfSpatialHessianType &,
376 NonZeroJacobianIndicesType & )
const;
380 virtual void PrintSelf( std::ostream &os, Indent indent )
const;
456 itkGetStaticConstMacro( SpaceDimension ),
463 std::vector<typename TransformType::Pointer>
m_Trans;
470 void operator=(
const Self&);
479 #ifndef ITK_MANUAL_INSTANTIATION
480 #include "itkMultiBSplineDeformableTransformWithNormal.txx"
483 #endif // end __itkMultiBSplineDeformableTransformWithNormal_h
Superclass::WeightsType WeightsType
Returns the weights over the support region used for B-spline interpolation/reconstruction.
class ITK_EXPORT MultiBSplineDeformableTransformWithNormal