Equirectangular mapping rotation_v0.2 - FoxelSA/libgnomonic GitHub Wiki

Overview

According to the library defined frame, the rotation transform allows to performs rotation of equirectangular mappings. This feature is typically used in case mapping are not aligned, in term of orentation, to a reference body such as earth local frame. An example is to align the mapping horizon to the mapping pixel defined horizontal.

This rotation is preformed considering the library standard three angles defined matrix. Considering the azimuth, the elevation and the roll angle associtated with the library standard frame, the rotation matrix is obtained as follow :

M(azimuth,elevation,roll) = Ry(elevation) Rz(azimuth) Rx(roll)

The initial mapping is rotated using the computed matrix as the mapped sphere experience no transform. The rotated mapping is then projected on the invariant sphere to extract the rotated equirectangular mapping.

Demonstration

To illustrate the rotation of equirectangular mapping, we consider the following mapping (copyright (c) Didier Mouron under CC BY-SA license) obtained using an Eyesis4Pi camera :

Considering and azimuth angle of 90 degrees and an elevation angle of minus 90 degrees, the following rotated equirectangular mapping is obtained :

The following equirectangular mapping is obtained considering an elevation angle of minus 90 degrees and a roll angle of 180 degrees :

One has to keep in mind that such transformation on equirectangular mapping, even when considering high order interpolation schemes, affect the queality of the mapping. Large number of successive rotations will decrease the quality of the image.