ImageDev

RotationGenerator3d

Computes a list of uniformly distributed three-dimensional rotations on the unit sphere.

Access to parameter description

This command is experimental, his signature may be modified between now and his final version.

For an introduction: section 3D Rotations.

This algorithm generates a list of 3D rotations homogeneously distributed around the unit sphere.

The rotations are expressed as proper Euler angles ZXZ contained in an output data frame.
Each line of this output table represents a rotation configuration with its three proper Euler angles presented in three columns, respectively called RZ1, RX2, and RZ3.



Figure 1. Visualization of 16 generated rotations:
(left) a 3D image containing a synthetic object, (right) the initial object and its 16 rotations.


Reference M. Alexa. "Super-Fibonacci Spirals: Fast, Low-Discrepancy Sampling of SO(3)". Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). , pp. 8291-8300, 2022.

See also

Function Syntax

This function returns rotationTable.
// Function prototype
std::shared_ptr< iolink::DataFrameView > rotationGenerator3d( uint32_t numberOfRotations, std::shared_ptr< iolink::DataFrameView > rotationTable = nullptr );
This function returns rotationTable.
// Function prototype.
rotation_generator_3d(number_of_rotations: int = 256,
                      rotation_table: Union[iolink.DataFrameView, None] = None) -> Union[iolink.DataFrameView, None]
This function returns rotationTable.
// Function prototype.
public static IOLink.DataFrameView
RotationGenerator3d( UInt32 numberOfRotations = 256, IOLink.DataFrameView rotationTable = null );

Class Syntax

Parameters

Parameter Name Description Type Supported Values Default Value
input
numberOfRotations
The number of desired rotations UInt32 >=1 256
output
rotationTable
The output DataFrameView containing the rotations DataFrameView nullptr
Parameter Name Description Type Supported Values Default Value
input
number_of_rotations
The number of desired rotations uint32 >=1 256
output
rotation_table
The output DataFrameView containing the rotations data_frame_view None
Parameter Name Description Type Supported Values Default Value
input
numberOfRotations
The number of desired rotations UInt32 >=1 256
output
rotationTable
The output DataFrameView containing the rotations DataFrameView null

Object Examples


RotationGenerator3d rotationGenerator3dAlgo;
rotationGenerator3dAlgo.setNumberOfRotations( 256 );
rotationGenerator3dAlgo.execute();

std::cout << "rotationTable:" << rotationGenerator3dAlgo.rotationTable()->shape();

rotation_generator_3d_algo = imagedev.RotationGenerator3d()
rotation_generator_3d_algo.number_of_rotations = 256
rotation_generator_3d_algo.execute()

print("rotation_table:", str(rotation_generator_3d_algo.rotation_table))

RotationGenerator3d rotationGenerator3dAlgo = new RotationGenerator3d
{
    numberOfRotations = 256
};
rotationGenerator3dAlgo.Execute();

Console.WriteLine( "rotationTable:" + rotationGenerator3dAlgo.rotationTable.ToString() );

Function Examples


auto result = rotationGenerator3d( 256 );

std::cout << "rotationTable:" << result->shape();

result = imagedev.rotation_generator_3d(256)

print("rotation_table:", str(result))

IOLink.DataFrameView result = Processing.RotationGenerator3d( 256 );

Console.WriteLine( "rotationTable:" + result.ToString() );