Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

PinholePose

In many cases, we estimate the location and orientation of a camera as it moves over time while sharing a single unknown calibration object. PinholePose<CALIBRATION> supports this pattern by treating calibration as shared external data, so its optimization state is only the six-dimensional camera pose.

Open In Colab

Creating a pose-only camera

The wrapper provides specializations for the same calibration families as PinholeCamera. Supply a calibration when projection needs pixels; the pose remains the only manifold state.

Projection and backprojection

The projection API mirrors PinholeCamera: project(), projectSafe(), backproject(), range(), and pose() all operate on the shared calibration and stored pose.

Pose manifold

retract() applies a six-vector pose increment, and localCoordinates() compares two pose-only cameras. Calibration is not part of that tangent vector.

Choosing between PinholePose and PinholeCamera

Use PinholePose when many cameras share a fixed calibration or calibration is managed separately. Use PinholeCamera when pose and calibration should travel as one value—and potentially be optimized together in a calibration-specific manifold.

Source

PinholePose.h

AI assistance caveat

AI was used to help draft this documentation, and inaccuracies could be present.