18 #ifndef __itkMultiBSplineDeformableTransformWithNormal_h 19 #define __itkMultiBSplineDeformableTransformWithNormal_h 22 #include "itkNearestNeighborInterpolateImageFunction.h" 39 class TScalarType =
double,
40 unsigned int NDimensions = 3,
41 unsigned int VSplineOrder = 3 >
43 class MultiBSplineDeformableTransformWithNormal :
44 public AdvancedTransform< TScalarType, NDimensions, NDimensions >
95 itkGetStaticConstMacro( SpaceDimension ),
196 typedef ImageRegion< itkGetStaticConstMacro( SpaceDimension ) >
RegionType;
226 typedef Image<
unsigned char,
230 typedef itk::NearestNeighborInterpolateImageFunction<
235 typedef Vector< TScalarType, itkGetStaticConstMacro( SpaceDimension ) >
VectorType;
236 typedef Vector< VectorType, itkGetStaticConstMacro( SpaceDimension ) >
BaseType;
247 itkGetConstMacro( NbLabels,
unsigned char );
252 itkGetMacro( LocalBases, ImageBaseType * );
262 itkExceptionMacro( <<
"Method not applicable for deformable transform." );
272 itkExceptionMacro( <<
"Method not applicable for deformable transform. " );
283 itkExceptionMacro( <<
"Method not applicable for deformable transform. " );
297 return m_Trans[ 0 ]->GetValidRegion();
306 virtual bool IsLinear(
void )
const {
return false; }
311 return m_Trans[ 0 ]->m_WeightsFunction->GetNumberOfWeights();
317 return m_Trans[ 0 ]->m_WeightsFunction->GetNumberOfWeights();
323 return m_Trans[ 0 ]->m_WeightsFunction->GetNumberOfWeights() * SpaceDimension;
356 OutputPointType
TransformPoint(
const InputPointType & point )
const;
363 const InputPointType & ipp,
365 NonZeroJacobianIndicesType & )
const;
369 const InputPointType & ipp,
370 SpatialJacobianType & sj )
const;
373 const InputPointType & ipp,
374 JacobianOfSpatialJacobianType & jsj,
375 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
378 const InputPointType &,
379 SpatialJacobianType &,
380 JacobianOfSpatialJacobianType &,
381 NonZeroJacobianIndicesType & )
const;
385 const InputPointType & ipp,
386 SpatialHessianType & sh )
const;
389 const InputPointType & ipp,
390 JacobianOfSpatialHessianType & jsh,
391 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const 393 itkExceptionMacro( <<
"ERROR: GetJacobianOfSpatialHessian() not yet implemented " 394 <<
"in the MultiBSplineDeformableTransformWithNormal class." );
399 const InputPointType &,
400 SpatialHessianType &,
401 JacobianOfSpatialHessianType &,
402 NonZeroJacobianIndicesType & )
const;
407 virtual void PrintSelf( std::ostream & os, Indent indent )
const;
483 itkGetStaticConstMacro( SpaceDimension ),
490 std::vector< typename TransformType::Pointer >
m_Trans;
502 void PointToLabel(
const InputPointType & p,
int & l )
const;
508 #ifndef ITK_MANUAL_INSTANTIATION 509 #include "itkMultiBSplineDeformableTransformWithNormal.hxx" 512 #endif // end __itkMultiBSplineDeformableTransformWithNormal_h
Superclass::WeightsType WeightsType
Returns the weights over the support region used for B-spline interpolation/reconstruction.