in opensfm/io.py [0:0]
def camera_to_vector(camera: pygeometry.Camera) -> List[float]:
"""Serialize camera parameters to a vector of floats."""
if camera.projection_type == "perspective":
parameters = [camera.focal, camera.k1, camera.k2]
elif camera.projection_type == "brown":
parameters = [
camera.focal,
camera.focal * camera.aspect_ratio,
camera.principal_point[0],
camera.principal_point[1],
camera.k1,
camera.k2,
camera.p1,
camera.p2,
camera.k3,
]
elif camera.projection_type == "fisheye":
parameters = [camera.focal, camera.k1, camera.k2]
elif camera.projection_type == "fisheye_opencv":
parameters = [
camera.focal,
camera.focal * camera.aspect_ratio,
camera.principal_point[0],
camera.principal_point[1],
camera.k1,
camera.k2,
camera.k3,
camera.k4,
]
elif camera.projection_type == "fisheye62":
parameters = [
camera.focal,
camera.focal * camera.aspect_ratio,
camera.principal_point[0],
camera.principal_point[1],
camera.k1,
camera.k2,
camera.k3,
camera.k4,
camera.k5,
camera.k6,
camera.p1,
camera.p2,
]
elif camera.projection_type == "fisheye624":
parameters = [
camera.focal,
camera.focal * camera.aspect_ratio,
camera.principal_point[0],
camera.principal_point[1],
camera.k1,
camera.k2,
camera.k3,
camera.k4,
camera.k5,
camera.k6,
camera.p1,
camera.p2,
camera.s0,
camera.s1,
camera.s2,
camera.s3,
]
elif camera.projection_type == "radial":
parameters = [
camera.focal,
camera.focal * camera.aspect_ratio,
camera.principal_point[0],
camera.principal_point[1],
camera.k1,
camera.k2,
]
elif camera.projection_type == "simple_radial":
parameters = [
camera.focal,
camera.focal * camera.aspect_ratio,
camera.principal_point[0],
camera.principal_point[1],
camera.k1,
]
elif camera.projection_type == "dual":
parameters = [
camera.focal,
camera.k1,
camera.k2,
camera.transition,
]
elif pygeometry.Camera.is_panorama(camera.projection_type):
parameters = []
else:
raise NotImplementedError
return parameters