sym.polynomial_camera_cal module

class PolynomialCameraCal(focal_length, principal_point, critical_undistorted_radius, distortion_coeffs)[source]

Bases: object

Autogenerated Python implementation of symforce.cam.polynomial_camera_cal.PolynomialCameraCal.

Polynomial camera model in the style of OpenCV

Distortion is a multiplicative factor applied to the image plane coordinates in the camera frame. Mapping between distorted image plane coordinates and image coordinates is done using a standard linear model.

The distortion function is a 6th order even polynomial that is a function of the radius of the image plane coordinates:

r = (p_img[0] ** 2 + p_img[1] ** 2) ** 0.5
distorted_weight = 1 + c0 * r^2 + c1 * r^4 + c2 * r^6
uv = p_img * distorted_weight
Parameters:
data: List[float]
focal_length()[source]

Return the focal length.

Return type:

ndarray

principal_point()[source]

Return the principal point.

Return type:

ndarray

pixel_from_camera_point(point, epsilon)[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[ndarray, float]

pixel_from_camera_point_with_jacobians(point, epsilon)[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

  • pixel_D_cal – Derivative of pixel with respect to intrinsic calibration parameters

  • pixel_D_point – Derivative of pixel with respect to point

Parameters:
Return type:

Tuple[ndarray, float, ndarray, ndarray]

static storage_dim()[source]
Return type:

int

to_storage()[source]
Return type:

List[float]

classmethod from_storage(vec)[source]
Parameters:

vec (Sequence[float]) –

Return type:

PolynomialCameraCal

static tangent_dim()[source]
Return type:

int

classmethod from_tangent(vec, epsilon=1e-08)[source]
Parameters:
Return type:

PolynomialCameraCal

to_tangent(epsilon=1e-08)[source]
Parameters:

epsilon (float) –

Return type:

ndarray

retract(vec, epsilon=1e-08)[source]
Parameters:
Return type:

PolynomialCameraCal

local_coordinates(b, epsilon=1e-08)[source]
Parameters:
Return type:

ndarray

interpolate(b, alpha, epsilon=1e-08)[source]
Parameters:
Return type:

PolynomialCameraCal