symforce.cam.camera_cal module#

class CameraCal(focal_length, principal_point, distortion_coeffs=())[source]#

Bases: Storage

Base class for symbolic camera models.

Parameters:
CameraCalT = ~CameraCalT#
NUM_DISTORTION_COEFFS = 0#
classmethod from_distortion_coeffs(focal_length, principal_point, distortion_coeffs=())[source]#

Construct a Camera Cal of type cls from the focal_length, principal_point, and distortion_coeffs.

Note, some subclasses may not allow symbolic arguments unless additional keyword arguments are passed in.

Parameters:
Return type:

CameraCalT

classmethod storage_order()[source]#

Return list of the names of values returned in the storage paired with the dimension of each value.

Return type:

Tuple[Tuple[str, int], …]

classmethod storage_dim()[source]#

Dimension of underlying storage

Return type:

int

to_storage()[source]#

Flat list representation of the underlying storage, length of storage_dim(). This is used purely for plumbing, it is NOT like a tangent space.

Return type:

List[float]

classmethod from_storage(vec)[source]#

Construct from a flat list representation. Opposite of to_storage().

Parameters:

vec (Sequence[float]) –

Return type:

CameraCalT

classmethod symbolic(name, **kwargs)[source]#

Construct a symbolic element with the given name prefix. Kwargs are forwarded to sf.Symbol (for example, sympy assumptions).

Parameters:
  • name (str) –

  • kwargs (Any) –

Return type:

CameraCalT

parameters()[source]#
Return type:

List[float]

pixel_from_camera_point(point, epsilon=0.0)[source]#

Project a 3D point in the camera frame into 2D pixel coordinates.

Returns:
  • pixel – (x, y) coordinate in pixels if valid

  • is_valid – 1 if the operation is within bounds else 0

Parameters:
Return type:

Tuple[Matrix21, float]

camera_ray_from_pixel(pixel, epsilon=0.0)[source]#

Backproject a 2D pixel coordinate into a 3D ray in the camera frame.

Returns:
  • camera_ray – The ray in the camera frame (NOT normalized)

  • is_valid – 1 if the operation is within bounds else 0

Parameters:
Return type:

Tuple[Matrix31, float]

classmethod has_camera_ray_from_pixel()[source]#

Returns True if cls has implemented the method camera_ray_from_pixel(), and False otherwise.

Return type:

bool