# Extrinsic Transformation#

The Extrinsic Transformation feature allows you to transform the pose of a blaze camera, i.e., the position and orientation of the camera's coordinate system.

This is useful if you want to transform the camera's output data into a coordinate system that fits your application.

## Using the Feature#

### How It Works#

The position and orientation of a blaze camera's coordinate system is fixed. Its origin is the optical center of the camera, with the z axis pointing away from the camera. This coordinate system is called the anchor coordinate system.

The blaze camera allows you to transform the anchor coordinate system into a transformed coordinate system as required by your application.

Transformations use Cartesian coordinates in the x, y, z notation. The transformation values define the transformation from the anchor to the transformed coordinate system.

The first image below shows a depth map colored based on the distances in the anchor coordinate system. The second image shows a depth map based on the distances in the transformed coordinate system.

The transformed coordinate system is chosen so that the z axis is perpendicular to the surface on which the boxes are placed. That way, the boxes all have the same z value.

Another use case is to simplify the matching and fusion of data from multiple cameras by transforming their individual coordinate systems into a common coordinate system.

The transformation from the anchor to the transformed coordinate system is done by performing a rotation and then a translation.

The rotation is defined by the rotation angles around the x, y, and z axes. The translation is defined by the displacement ThX, ThY, ThZ to the new origin.

The coordinate transformation is therefore defined by a total of six parameters.

The effect of the transformation differs depending on the component:

Component Effect of the Transformation
Range For point clouds, i.e., the `PixelFormat` is set to `Coord3D_ABC32f`, the transformation is applied completely.
For depth maps, i.e., the `PixelFormat` is set to `Coord3D_C16` or `Mono16`, the transformation is not applied.
Intensity Not applied.
Confidence Not applied.

### Performing an Extrinsic Transformation#

1. Set the `Scan3dCoordinateSystemReference` parameter to `Transformed`.
2. Set the `Scan3dCoordinateTransformSelector` parameter to the desired transform value.

Use the `TranslationX/Y/Z` values for tranlastion and the `RotationX/Y/Z` values for rotation.

3. Set the `Scan3dTransformValue` parameter to the desired value.

The value for translations is expressed in the distance unit of the system. The value for rotations is expressed in degrees.