![]() |
ImFusion SDK 4.3
|
Using Poses within the ImFusion SDK. More...
Using Poses within the ImFusion SDK.
Poses are used to describe the (up to)affine transformation between an object and a coordinate system. This page describes how they are used, edited and serialized in ImFusionLib. Refer to Coordinate Systems for more information on the pose matrix conventions.
Poses can be described with 4x4 matrices or with 12 parameters (translation, rotation, scale, shear). Pose namespace takes care of the conversion between the matrix and the parameter representation. There are multiple Euler angle conventions, for reference this is the one we use:
In ImFusionLib there are many algorithms that require presenting and modifying a pose matrix. For example: calibration and registration of an ultrasound sweep, or the basic transformation of a 3D mesh. Algorithms requiring a GUI to edit a pose matrix can use a TransformationMatrixWidget widget. This widget offers a complete and flexible pose editor.
Example:
Basic UI:
Flexible UI:
It's useful to input and output Poses in ImFusionLib. For example, copy a calibration matrix from Python and paste it in ImFusionLib. PoseIO namespace takes care of the serialization of the poses, represented as matrices or as parameters.
With files:
With clipboard:
Similarly, you can serialize the pose directly to a string with PoseIO::poseToString(matrix);
Namespaces | |
namespace | ImFusion::Pose |
Conversion of pose matrices. | |
namespace | ImFusion::PoseIO |
Input and output of pose matrices and affine parameters. | |
Classes | |
class | TransformationMatrixWidget |
Widget to transform a matrix, with global/local and toWorld/fromWorld modifiers. More... | |