15 #ifndef itkPerspectiveProjectionTransform_h
16 #define itkPerspectiveProjectionTransform_h
18 #include <itkExceptionObject.h>
20 #include <itkMatrix.h>
21 #include <itkTransform.h>
38 template <
class TScalarType=
double>
40 public Transform< TScalarType, 3, 2 >
44 itkStaticConstMacro(InputSpaceDimension,
unsigned int, 3);
45 itkStaticConstMacro(OutputSpaceDimension,
unsigned int, 2);
48 itkStaticConstMacro(SpaceDimension,
unsigned int, 3);
49 itkStaticConstMacro(ParametersDimension,
unsigned int, 3);
53 typedef Transform< TScalarType,
54 itkGetStaticConstMacro(InputSpaceDimension),
55 itkGetStaticConstMacro(OutputSpaceDimension)>
Superclass;
67 typedef typename Superclass::ScalarType
ScalarType;
76 typedef Matrix<TScalarType,
77 itkGetStaticConstMacro(InputSpaceDimension + 1),
78 itkGetStaticConstMacro(InputSpaceDimension + 1)>
MatrixType;
81 typedef Vector<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)>
InputVectorType;
82 typedef Vector<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)>
OutputVectorType;
85 typedef Point<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)>
InputPointType;
86 typedef Point<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)>
OutputPointType;
92 void SetParameters(
const ParametersType & parameters );
93 const ParametersType & GetParameters()
const;
100 {
return this->m_FixedParameters; }
106 { this->m_Parameters[0] = focalDistance; this->Modified(); }
110 {
return this->m_Parameters[0]; }
115 this->m_Parameters[1] = u0;
116 this->m_Parameters[2] =
v0;
128 u0 = this->m_Parameters[1];
129 v0 = this->m_Parameters[2];
138 OutputPointType TransformPoint(
const InputPointType &point )
const;
141 virtual const JacobianType GetJacobian(
const InputPointType &point )
const;
143 virtual void ComputeJacobianWithRespectToParameters(
const InputPointType & point,
144 JacobianType & jacobian )
const;
149 void PrintSelf(std::ostream &os, Indent indent)
const;
159 void operator=(
const Self&);
168 #define ITK_TEMPLATE_PerspectiveProjectionTransform(_, EXPORT, x, y) namespace itk { \
169 _(1(class EXPORT PerspectiveProjectionTransform< ITK_TEMPLATE_1 x >)) \
170 namespace Templates { typedef PerspectiveProjectionTransform< ITK_TEMPLATE_1 x > \
171 PerspectiveProjectionTransform##y; } \
174 #if ITK_TEMPLATE_EXPLICIT
175 # include "Templates/itkPerspectiveProjectionTransform+-.h"
179 # include "itkPerspectiveProjectionTransform.txx"
Definition: niftkITKAffineResampleImage.cxx:74
vnl_matrix< double > MatrixType
Definition: itkSuperEllipseFit.h:32
GLfloat v0
Definition: glew.h:1832
itk::Array2D< double > JacobianType
Definition: EulerAffine2DJacobianTest.cxx:28