|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | ScaleVectorType = Vector< TParametersValueType, 3 > |
|
using | ScaleVectorValueType = typename ScaleVectorType::ValueType |
|
using | Self = ComposeScaleSkewVersor3DTransform |
|
using | SkewVectorType = Vector< TParametersValueType, 3 > |
|
using | SkewVectorValueType = typename SkewVectorType::ValueType |
|
using | Superclass = VersorRigid3DTransform< TParametersValueType > |
|
using | TranslationValueType = typename TranslationType::ValueType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DerivativeType = Array< ParametersValueType > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = VersorRigid3DTransform |
|
using | Superclass = VersorTransform< TParametersValueType > |
|
using | VectorType = typename VersorType::VectorType |
|
using | AngleType = typename VersorType::ValueType |
|
using | AxisType = typename VersorType::VectorType |
|
using | AxisValueType = typename AxisType::ValueType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | ParametersValueType = typename ParametersType::ValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = VersorTransform |
|
using | Superclass = Rigid3DTransform< TParametersValueType > |
|
using | VersorType = Versor< TParametersValueType > |
|
using | VnlQuaternionType = vnl_quaternion< TParametersValueType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InverseTransformBasePointer = typename InverseTransformBaseType::Pointer |
|
using | InverseTransformBaseType = typename Superclass::InverseTransformBaseType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Rigid3DTransform |
|
using | Superclass = MatrixOffsetTransformBase< TParametersValueType, 3, 3 > |
|
using | CenterType = InputPointType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InputCovariantVectorType = CovariantVector< TParametersValueType, Self::InputSpaceDimension > |
|
using | InputPointType = Point< TParametersValueType, Self::InputSpaceDimension > |
|
using | InputPointValueType = typename InputPointType::ValueType |
|
using | InputTensorEigenVectorType = CovariantVector< TParametersValueType, InputDiffusionTensor3DType::Dimension > |
|
using | InputVectorType = Vector< TParametersValueType, Self::InputSpaceDimension > |
|
using | InputVnlVectorType = vnl_vector_fixed< TParametersValueType, Self::InputSpaceDimension > |
|
using | InverseMatrixType = Matrix< TParametersValueType, Self::InputSpaceDimension, Self::OutputSpaceDimension > |
|
using | InverseTransformBasePointer = typename InverseTransformBaseType::Pointer |
|
using | InverseTransformBaseType = typename Superclass::InverseTransformBaseType |
|
using | InverseTransformType = MatrixOffsetTransformBase< TParametersValueType, VOutputDimension, VInputDimension > |
|
using | MatrixType = Matrix< TParametersValueType, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
|
using | MatrixValueType = typename MatrixType::ValueType |
|
using | OffsetType = OutputVectorType |
|
using | OffsetValueType = typename OffsetType::ValueType |
|
using | OutputCovariantVectorType = CovariantVector< TParametersValueType, Self::OutputSpaceDimension > |
|
using | OutputPointType = Point< TParametersValueType, Self::OutputSpaceDimension > |
|
using | OutputPointValueType = typename OutputPointType::ValueType |
|
using | OutputVectorType = Vector< TParametersValueType, Self::OutputSpaceDimension > |
|
using | OutputVectorValueType = typename OutputVectorType::ValueType |
|
using | OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, Self::OutputSpaceDimension > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = MatrixOffsetTransformBase |
|
using | Superclass = Transform< TParametersValueType, VInputDimension, VOutputDimension > |
|
using | TranslationType = OutputVectorType |
|
using | TranslationValueType = typename TranslationType::ValueType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DerivativeType = Array< ParametersValueType > |
|
using | DirectionChangeMatrix = Matrix< double, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
|
using | InputCovariantVectorType = CovariantVector< TParametersValueType, VInputDimension > |
|
using | InputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType > |
|
using | InputDirectionMatrix = Matrix< double, Self::InputSpaceDimension, Self::InputSpaceDimension > |
|
using | InputPointType = Point< TParametersValueType, VInputDimension > |
|
using | InputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, VInputDimension > |
|
using | InputVectorPixelType = VariableLengthVector< TParametersValueType > |
|
using | InputVectorType = Vector< TParametersValueType, VInputDimension > |
|
using | InputVnlVectorType = vnl_vector_fixed< TParametersValueType, VInputDimension > |
|
using | InverseJacobianPositionType = vnl_matrix_fixed< ParametersValueType, VInputDimension, VOutputDimension > |
|
using | InverseTransformBasePointer = typename InverseTransformBaseType::Pointer |
|
using | InverseTransformBaseType = Transform< TParametersValueType, VOutputDimension, VInputDimension > |
|
using | JacobianPositionType = vnl_matrix_fixed< ParametersValueType, VOutputDimension, VInputDimension > |
|
using | JacobianType = Array2D< ParametersValueType > |
|
using | MatrixType = Matrix< TParametersValueType, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
|
using | OutputCovariantVectorType = CovariantVector< TParametersValueType, VOutputDimension > |
|
using | OutputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType > |
|
using | OutputDirectionMatrix = Matrix< double, Self::OutputSpaceDimension, Self::OutputSpaceDimension > |
|
using | OutputPointType = Point< TParametersValueType, VOutputDimension > |
|
using | OutputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, VOutputDimension > |
|
using | OutputVectorPixelType = VariableLengthVector< TParametersValueType > |
|
using | OutputVectorType = Vector< TParametersValueType, VOutputDimension > |
|
using | OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, VOutputDimension > |
|
using | Pointer = SmartPointer< Self > |
|
using | ScalarType = ParametersValueType |
|
using | Self = Transform |
|
using | Superclass = TransformBaseTemplate< TParametersValueType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FixedParametersType = OptimizerParameters< FixedParametersValueType > |
|
using | FixedParametersValueType = double |
|
using | NumberOfParametersType = IdentifierType |
|
using | ParametersType = OptimizerParameters< ParametersValueType > |
|
using | ParametersValueType = TParametersValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = TransformBaseTemplate |
|
using | Superclass = Object |
|
using | TransformCategoryEnum = TransformBaseTemplateEnums::TransformCategory |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
void | ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const override |
|
virtual const char * | GetNameOfClass () const |
|
const ParametersType & | GetParameters () const override |
|
virtual const ScaleVectorType & | GetScale () const |
|
virtual const SkewVectorType & | GetSkew () const |
|
void | SetIdentity () override |
|
void | SetParameters (const ParametersType ¶meters) override |
|
void | SetScale (const ScaleVectorType &scale) |
|
void | SetSkew (const SkewVectorType &skew) |
|
|
void | SetMatrix (const MatrixType &matrix) override |
|
void | SetMatrix (const MatrixType &matrix, const TParametersValueType tolerance) override |
|
void | ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const override |
|
const ParametersType & | GetParameters () const override |
|
void | SetParameters (const ParametersType ¶meters) override |
|
void | UpdateTransformParameters (const DerivativeType &update, TParametersValueType factor=1.0) override |
|
void | ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const override |
|
const ParametersType & | GetParameters () const override |
|
virtual const VersorType & | GetVersor () const |
|
void | SetIdentity () override |
|
void | SetParameters (const ParametersType ¶meters) override |
|
void | SetRotation (const AxisType &axis, AngleType angle) |
|
void | SetRotation (const VersorType &versor) |
|
bool | MatrixIsOrthogonal (const MatrixType &matrix, const TParametersValueType tolerance=MatrixOrthogonalityTolerance< TParametersValueType >::GetTolerance()) |
|
void | SetMatrix (const MatrixType &matrix) override |
|
void | Translate (const OffsetType &offset, bool pre=false) |
|
void | Compose (const Self *other, bool pre=false) |
|
void | ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, InverseJacobianPositionType &jac) const override |
|
void | ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const override |
|
void | ComputeJacobianWithRespectToPosition (const InputPointType &x, JacobianPositionType &jac) const override |
|
const InputPointType & | GetCenter () const |
|
const FixedParametersType & | GetFixedParameters () const override |
|
InverseTransformBasePointer | GetInverseTransform () const override |
|
virtual const MatrixType & | GetMatrix () const |
|
const OutputVectorType & | GetOffset () const |
|
const ParametersType & | GetParameters () const override |
|
TransformCategoryEnum | GetTransformCategory () const override |
|
const OutputVectorType & | GetTranslation () const |
|
bool | IsLinear () const override |
|
void | SetFixedParameters (const FixedParametersType &) override |
|
void | SetParameters (const ParametersType ¶meters) override |
|
OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &vec) const override |
|
OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &vect) const override |
|
OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor) const override |
|
OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &tensor) const override |
|
OutputPointType | TransformPoint (const InputPointType &point) const override |
|
OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor) const override |
|
OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor) const override |
|
OutputVectorPixelType | TransformVector (const InputVectorPixelType &vect) const override |
|
OutputVectorType | TransformVector (const InputVectorType &vect) const override |
|
OutputVnlVectorType | TransformVector (const InputVnlVectorType &vect) const override |
|
void | SetOffset (const OutputVectorType &offset) |
|
void | SetCenter (const InputPointType ¢er) |
|
void | SetTranslation (const OutputVectorType &translation) |
|
bool | GetInverse (InverseTransformType *inverse) const |
|
virtual void | ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &) const |
|
void | CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end) override |
|
void | CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end) override |
|
unsigned int | GetInputSpaceDimension () const override |
|
virtual const std::string & | GetInputSpaceName () const |
|
bool | GetInverse (Self *) const |
|
virtual NumberOfParametersType | GetNumberOfFixedParameters () const |
|
virtual NumberOfParametersType | GetNumberOfLocalParameters () const |
|
NumberOfParametersType | GetNumberOfParameters () const override |
|
unsigned int | GetOutputSpaceDimension () const override |
|
virtual const std::string & | GetOutputSpaceName () const |
|
std::string | GetTransformTypeAsString () const override |
|
| itkCloneMacro (Self) |
|
void | SetFixedParameters (const FixedParametersType &) override=0 |
|
virtual void | SetInputSpaceName (std::string _arg) |
|
virtual void | SetOutputSpaceName (std::string _arg) |
|
void | SetParameters (const ParametersType &) override=0 |
|
void | SetParametersByValue (const ParametersType &p) override |
|
virtual OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const |
|
virtual OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &inputTensor, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &inputTensor, const InputPointType &point) const |
|
virtual OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const |
|
virtual OutputVectorType | TransformVector (const InputVectorType &vector, const InputPointType &point) const |
|
virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const |
|
| itkLegacyMacro (virtual void ComputeJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const) |
|
| itkLegacyMacro (virtual void ComputeInverseJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const) |
|
template<typename TImage > |
std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > | ApplyToImageMetadata (TImage *image) const |
|
template<typename TImage > |
std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > | ApplyToImageMetadata (SmartPointer< TImage > image) const |
|
virtual void | SetParametersByValue (const ParametersType &p)=0 |
|
unsigned long | AddObserver (const EventObject &event, Command *) |
|
unsigned long | AddObserver (const EventObject &event, Command *) const |
|
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
|
LightObject::Pointer | CreateAnother () const override |
|
virtual void | DebugOff () const |
|
virtual void | DebugOn () const |
|
Command * | GetCommand (unsigned long tag) |
|
bool | GetDebug () const |
|
MetaDataDictionary & | GetMetaDataDictionary () |
|
const MetaDataDictionary & | GetMetaDataDictionary () const |
|
virtual ModifiedTimeType | GetMTime () const |
|
virtual const TimeStamp & | GetTimeStamp () const |
|
bool | HasObserver (const EventObject &event) const |
|
void | InvokeEvent (const EventObject &) |
|
void | InvokeEvent (const EventObject &) const |
|
virtual void | Modified () const |
|
void | Register () const override |
|
void | RemoveAllObservers () |
|
void | RemoveObserver (unsigned long tag) |
|
void | SetDebug (bool debugFlag) const |
|
void | SetReferenceCount (int) override |
|
void | UnRegister () const noexcept override |
|
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
|
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
|
virtual void | SetObjectName (std::string _arg) |
|
virtual const std::string & | GetObjectName () const |
|
Pointer | Clone () const |
|
virtual void | Delete () |
|
virtual int | GetReferenceCount () const |
|
void | Print (std::ostream &os, Indent indent=0) const |
|
|
| ComposeScaleSkewVersor3DTransform () |
|
| ComposeScaleSkewVersor3DTransform (const MatrixType &matrix, const OutputVectorType &offset) |
|
| ComposeScaleSkewVersor3DTransform (unsigned int parametersDimension) |
|
void | ComputeMatrix () override |
|
void | ComputeMatrixParameters () override |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
void | SetVarScale (const ScaleVectorType &scale) |
|
void | SetVarSkew (const SkewVectorType &skew) |
|
| ~ComposeScaleSkewVersor3DTransform () override=default |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| VersorRigid3DTransform () |
|
| VersorRigid3DTransform (const MatrixType &matrix, const OutputVectorType &offset) |
|
| VersorRigid3DTransform (unsigned int paramDim) |
|
| ~VersorRigid3DTransform () override=default |
|
void | ComputeMatrix () override |
|
void | ComputeMatrixParameters () override |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
void | SetVarVersor (const VersorType &newVersor) |
|
| ~VersorTransform () override=default |
|
| VersorTransform (const MatrixType &matrix, const OutputVectorType &offset) |
|
| VersorTransform (unsigned int parametersDimension) |
|
| VersorTransform () |
|
| Rigid3DTransform () |
|
| Rigid3DTransform (const MatrixType &matrix, const OutputVectorType &offset) |
|
| Rigid3DTransform (unsigned int paramDim) |
|
| ~Rigid3DTransform () override=default |
|
virtual void | ComputeOffset () |
|
virtual void | ComputeTranslation () |
|
const InverseMatrixType & | GetInverseMatrix () const |
|
virtual bool | GetSingular () const |
|
const InverseMatrixType & | GetVarInverseMatrix () const |
|
bool | InverseMatrixIsOld () const |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
void | SetVarCenter (const InputPointType ¢er) |
|
void | SetVarInverseMatrix (const InverseMatrixType &matrix) const |
|
void | SetVarMatrix (const MatrixType &matrix) |
|
void | SetVarOffset (const OutputVectorType &offset) |
|
void | SetVarTranslation (const OutputVectorType &translation) |
|
| ~MatrixOffsetTransformBase () override=default |
|
| MatrixOffsetTransformBase (const MatrixType &matrix, const OutputVectorType &offset) |
|
| MatrixOffsetTransformBase (unsigned int paramDims=ParametersDimension) |
|
LightObject::Pointer | InternalClone () const override |
|
OutputDiffusionTensor3DType | PreservationOfPrincipalDirectionDiffusionTensor3DReorientation (const InputDiffusionTensor3DType &, const InverseJacobianPositionType &) const |
|
| Transform ()=default |
|
| Transform (NumberOfParametersType numberOfParameters) |
|
| ~Transform () override=default |
|
| TransformBaseTemplate ()=default |
|
| ~TransformBaseTemplate () override=default |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
|
| ~Object () override |
|
| LightObject () |
|
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
|
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
|
virtual | ~LightObject () |
|
template<typename TParametersValueType = double>
class itk::ComposeScaleSkewVersor3DTransform< TParametersValueType >
ComposeScaleSkewVersor3DTransform of a vector space (space coords)
This transform applies a versor rotation and translation & scale/skew to the space
The parameters for this transform can be set either using individual Set methods or in serialized form using SetParameters() and SetFixedParameters().
The serialization of the optimizable parameters is an array of 12 elements. The first 3 elements are the components of the versor representation of 3D rotation. The next 3 parameters defines the translation in each dimension. The next 3 parameters defines scaling in each dimension. The last 3 parameters defines the skew.
The serialization of the fixed parameters is an array of 3 elements defining the center of rotation.
The transform can be described as: \( (\textbf{R}_v * \textbf{S} * \textbf{K})\textbf{x} \) where \(\textbf{R}_v\) is the rotation matrix given the versor, where \(\textbf{S}\) is the diagonal scale matrix. where \(\textbf{K}\) is the upper triangle skew (shear) matrix.
Definition at line 53 of file itkComposeScaleSkewVersor3DTransform.h.
template<typename TParametersValueType = double>
Compute the Jacobian of the transformation
This method computes the Jacobian matrix of the transformation at a given input point. The rank of the Jacobian will also indicate if the transform is invertible at this point.
The Jacobian is be expressed as a matrix of partial derivatives of the output point components with respect to the parameters that defined the transform:
\[ J=\left[ \begin{array}{cccc} \frac{\partial x_{1}}{\partial p_{1}} & \frac{\partial x_{1}}{\partial p_{2}} & \cdots & \frac{\partial x_{1}}{\partial p_{m}}\\ \frac{\partial x_{2}}{\partial p_{1}} & \frac{\partial x_{2}}{\partial p_{2}} & \cdots & \frac{\partial x_{2}}{\partial p_{m}}\\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial x_{n}}{\partial p_{1}} & \frac{\partial x_{n}}{\partial p_{2}} & \cdots & \frac{\partial x_{n}}{\partial p_{m}} \end{array}\right] \]
This is also used for efficient computation of a point-local jacobian for dense transforms. jacobian
is assumed to be thread-local variable, otherwise memory corruption will most likely occur during multi-threading. To avoid repetitive memory allocation, pass in 'jacobian' with its size already set.
Implements itk::Transform< TParametersValueType, VInputDimension, VOutputDimension >.