-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathitkWarpTransform3D.h
67 lines (55 loc) · 2.3 KB
/
itkWarpTransform3D.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef __itkWarpTransform3D_h
#define __itkWarpTransform3D_h
#include <itkTransform.h>
#include "dtiprocessFiles/dtitypes.h"
#include <itkImage.h>
#include "itkConstNeighborhoodIterator.h"
#include <itkVectorLinearInterpolateImageFunction.h>
namespace itk
{
/** \class WarpTransform3D
*
* This is a class to represent warp transforms
*/
template <class FieldData>
class WarpTransform3D : public Transform<FieldData, 3, 3>
{
public:
typedef FieldData FieldDataType;
typedef WarpTransform3D Self;
typedef Transform<FieldDataType, 3, 3> Superclass;
typedef typename Superclass::JacobianType JacobianType;
typedef typename Superclass::InputPointType InputPointType;
typedef typename Superclass::OutputPointType OutputPointType;
typedef DeformationImageType::Pointer DeformationImagePointerType;
typedef SmartPointer<Self> Pointer;
typedef SmartPointer<const Self> ConstPointer;
typedef ConstNeighborhoodIterator<DeformationImageType> ConstNeighborhoodIteratorType;
typedef typename ConstNeighborhoodIteratorType::RadiusType RadiusType;
itkNewMacro( Self );
itkTypeMacro( WarpTransform3D, Transform );
OutputPointType TransformPoint( const InputPointType & inputPoint ) const;
void ComputeJacobianWithRespectToParameters(const InputPointType & inputPoint, JacobianType & jacobian ) const;
void SetDeformationField( DeformationImagePointerType deformationField );
void SetParameters(const TransformBase::ParametersType &)
{
}
void SetFixedParameters(const TransformBase::ParametersType &)
{
}
protected:
/** Get/Set the neighborhood radius used for gradient computation */
itkGetConstReferenceMacro( NeighborhoodRadius, RadiusType );
itkSetMacro( NeighborhoodRadius, RadiusType );
WarpTransform3D();
void operator=(const Self &); // purposely not implemented
RadiusType m_NeighborhoodRadius;
double m_DerivativeWeights[3];
DeformationImagePointerType m_DeformationField;
Size<3> m_SizeForJacobian;
};
} // end namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
#include "itkWarpTransform3D.hxx"
#endif
#endif