template<typename TParametersValueType = double, unsigned int VInputDimension = 3, unsigned int VOutputDimension = 3>
class itk::MatrixOffsetTransformBase< TParametersValueType, VInputDimension, VOutputDimension >
Matrix and Offset transformation of a vector space (e.g. space coordinates)
This class serves as a base class for transforms that can be expressed as a linear transformation plus a constant offset (e.g., affine, similarity and rigid transforms). This base class also provides the concept of using a center of rotation and a translation instead of an offset.
As derived instances of this class are specializations of an affine transform, any two of these transformations may be composed and the result is an affine transformation. However, the order is important. Given two affine transformations T1 and T2, we will say that "precomposing T1 with T2" yields the transformation which applies T1 to the source, and then applies T2 to that result to obtain the target. Conversely, we will say that "postcomposing T1 with T2" yields the transformation which applies T2 to the source, and then applies T1 to that result to obtain the target. (Whether T1 or T2 comes first lexicographically depends on whether you choose to write mappings from right-to-left or vice versa; we avoid the whole problem by referring to the order of application rather than the textual order.)
- Template Parameters
-
TParametersValueType | The type to be used for scalar numeric values. Either float or double. |
VInputDimension | The number of dimensions of the input vector space. |
VOutputDimension | The number of dimensions of the output vector space. |
This class provides several methods for setting the matrix and offset defining the transform. To support the registration framework, the transform parameters can also be set as an Array<TParametersValueType> of size (VInputDimension + 1) * VOutputDimension using method SetParameters(). The first (VOutputDimension x VInputDimension) parameters defines the matrix in row-major order (where the column index varies the fastest). The last VOutputDimension parameters defines the translation in each dimensions.
Definition at line 106 of file itkMatrixOffsetTransformBase.h.
|
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< double, VInputDimension > |
|
using | InputDiffusionTensor3DType = DiffusionTensor3D< double > |
|
using | InputDirectionMatrix = Matrix< double, Self::InputSpaceDimension, Self::InputSpaceDimension > |
|
using | InputPointType = Point< double, VInputDimension > |
|
using | InputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< double, VInputDimension > |
|
using | InputVectorPixelType = VariableLengthVector< double > |
|
using | InputVectorType = Vector< double, VInputDimension > |
|
using | InputVnlVectorType = vnl_vector_fixed< double, VInputDimension > |
|
using | InverseJacobianPositionType = vnl_matrix_fixed< ParametersValueType, VInputDimension, VOutputDimension > |
|
using | InverseTransformBasePointer = typename InverseTransformBaseType::Pointer |
|
using | InverseTransformBaseType = Transform< double, VOutputDimension, VInputDimension > |
|
using | JacobianPositionType = vnl_matrix_fixed< ParametersValueType, VOutputDimension, VInputDimension > |
|
using | JacobianType = Array2D< ParametersValueType > |
|
using | MatrixType = Matrix< double, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
|
using | OutputCovariantVectorType = CovariantVector< double, VOutputDimension > |
|
using | OutputDiffusionTensor3DType = DiffusionTensor3D< double > |
|
using | OutputDirectionMatrix = Matrix< double, Self::OutputSpaceDimension, Self::OutputSpaceDimension > |
|
using | OutputPointType = Point< double, VOutputDimension > |
|
using | OutputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< double, VOutputDimension > |
|
using | OutputVectorPixelType = VariableLengthVector< double > |
|
using | OutputVectorType = Vector< double, VOutputDimension > |
|
using | OutputVnlVectorType = vnl_vector_fixed< double, VOutputDimension > |
|
using | Pointer = SmartPointer< Self > |
|
using | ScalarType = ParametersValueType |
|
using | Self = Transform |
|
using | Superclass = TransformBaseTemplate< double > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | FixedParametersType = OptimizerParameters< FixedParametersValueType > |
|
using | FixedParametersValueType = double |
|
using | NumberOfParametersType = IdentifierType |
|
using | ParametersType = OptimizerParameters< ParametersValueType > |
|
using | ParametersValueType = double |
|
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 | 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 char * | GetNameOfClass () const override |
|
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 |
|
virtual void | SetIdentity () |
|
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 |
|
|
virtual void | SetMatrix (const MatrixType &matrix) |
|
|
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 |
|
const FixedParametersType & | GetFixedParameters () const override |
|
unsigned int | GetInputSpaceDimension () const override |
|
virtual const std::string & | GetInputSpaceName () const |
|
bool | GetInverse (Self *) const |
|
virtual InverseTransformBasePointer | GetInverseTransform () const |
|
const char * | GetNameOfClass () const override |
|
virtual NumberOfParametersType | GetNumberOfFixedParameters () const |
|
virtual NumberOfParametersType | GetNumberOfLocalParameters () const |
|
NumberOfParametersType | GetNumberOfParameters () const override |
|
unsigned int | GetOutputSpaceDimension () const override |
|
virtual const std::string & | GetOutputSpaceName () const |
|
const ParametersType & | GetParameters () const override |
|
TransformCategoryEnum | GetTransformCategory () const override |
|
std::string | GetTransformTypeAsString () const override |
|
virtual bool | IsLinear () const |
|
| 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 &) const |
|
virtual OutputCovariantVectorType | TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &) const |
|
virtual OutputVectorPixelType | TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const |
|
virtual OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &) const |
|
virtual OutputDiffusionTensor3DType | TransformDiffusionTensor3D (const InputDiffusionTensor3DType &inputTensor, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &) const |
|
virtual OutputVectorPixelType | TransformDiffusionTensor3D (const InputVectorPixelType &inputTensor, const InputPointType &point) const |
|
virtual OutputPointType | TransformPoint (const InputPointType &) const=0 |
|
virtual OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const |
|
virtual OutputSymmetricSecondRankTensorType | TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const |
|
virtual OutputVectorPixelType | TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor, const InputPointType &point) const |
|
virtual OutputVectorPixelType | TransformVector (const InputVectorPixelType &) const |
|
virtual OutputVectorPixelType | TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const |
|
virtual OutputVectorType | TransformVector (const InputVectorType &) const |
|
virtual OutputVectorType | TransformVector (const InputVectorType &vector, const InputPointType &point) const |
|
virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &) const |
|
virtual OutputVnlVectorType | TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const |
|
virtual void | UpdateTransformParameters (const DerivativeType &update, ParametersValueType factor=1.0) |
|
virtual void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const=0 |
|
virtual void | ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianPositionType &) const |
|
| itkLegacyMacro (virtual void ComputeJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const) |
|
| itkLegacyMacro (virtual void ComputeInverseJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const) |
|
virtual void | ComputeInverseJacobianWithRespectToPosition (const InputPointType &pnt, InverseJacobianPositionType &jacobian) const |
|
std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > | ApplyToImageMetadata (TImage *image) const |
|
std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > | ApplyToImageMetadata (SmartPointer< TImage > image) const |
|
virtual void | CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end)=0 |
|
virtual void | CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end)=0 |
|
virtual const FixedParametersType & | GetFixedParameters () const=0 |
|
virtual unsigned int | GetInputSpaceDimension () const=0 |
|
const char * | GetNameOfClass () const override |
|
virtual NumberOfParametersType | GetNumberOfParameters () const=0 |
|
virtual unsigned int | GetOutputSpaceDimension () const=0 |
|
virtual const ParametersType & | GetParameters () const=0 |
|
virtual TransformCategoryEnum | GetTransformCategory () const=0 |
|
virtual std::string | GetTransformTypeAsString () const=0 |
|
virtual void | SetFixedParameters (const FixedParametersType &)=0 |
|
virtual void | SetParameters (const ParametersType &)=0 |
|
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 |
|
const char * | GetNameOfClass () const override |
|
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 Pointer | CreateAnother () const |
|
virtual void | Delete () |
|
virtual const char * | GetNameOfClass () const |
|
virtual int | GetReferenceCount () const |
|
void | Print (std::ostream &os, Indent indent=0) const |
|
virtual void | Register () const |
|
virtual void | SetReferenceCount (int) |
|
virtual void | UnRegister () const noexcept |
|