Skip to main content

play with camera poses

Project description

CamLab

play with camera pose

pip install camlab

project a world-coordinate point to screen coordniate:

import numpy as np
from camlab import CameraObj


cam = CameraObj()

# init intrinsics
focal = 1111.1
w = 800
h = 800
cam.manual_init(focal, w, h)

# init extrinsics
extri = np.array(
        [[-9.9990e-01,  4.1922e-03, -1.3346e-02, -5.3798e-02],
        [-1.3989e-02, -2.9966e-01,  9.5394e-01,  3.8455e+00],
        [-4.6566e-10,  9.5404e-01,  2.9969e-01,  1.2081e+00],
        [0.0, 0.0, 0.0, 1.0]])
cam.load_extrinsic(extri)

# coordinates transformation
p_in_world = [0, 0, 0]
p_in_screen = cam.world2screen(p_in_world, to_int=True)
print(p_in_screen)
# [400, 400]

make a ray from a screen point:

import numpy as np
from camlab import CameraObj

intri = [[1111.0, 0.0, 400.0],
         [0.0, 1111.0, 400.0],
         [0.0, 0.0, 1.0]]
extri = np.array(
        [[-9.9990e-01,  4.1922e-03, -1.3346e-02, -5.3798e-02],
        [-1.3989e-02, -2.9966e-01,  9.5394e-01,  3.8455e+00],
        [-4.6566e-10,  9.5404e-01,  2.9969e-01,  1.2081e+00],
        [0.0, 0.0, 0.0, 1.0]])

cam_obj = CameraObj(intri)
cam_obj.load_extrinsic(extri)

p = (400, 400)  # screen point
rayo, rayd = cam_obj.make_ray(p)
print(rayo, rayd)
# ray origin and ray direction
# (rayd - rayo) represents a point at the ray.
p_ = cam_obj.world2screen(rayd - rayo, to_int=True)
# reproject the ray point to screen
print(p_)
# (400, 400)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

camlab-0.1.4.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

camlab-0.1.4.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file camlab-0.1.4.0.tar.gz.

File metadata

  • Download URL: camlab-0.1.4.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for camlab-0.1.4.0.tar.gz
Algorithm Hash digest
SHA256 417a3c13eac395016d6f0f70750182ab70d30ba7076b6d2d4cc2a66758fbea54
MD5 f596c9c2f232dd8737c9e296b0aa9f94
BLAKE2b-256 be6cd4c8e82836e93d611933d698c761abf93d1f00468968c4694e100f6c22c7

See more details on using hashes here.

File details

Details for the file camlab-0.1.4.0-py3-none-any.whl.

File metadata

  • Download URL: camlab-0.1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for camlab-0.1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2a040422ba390b0e5094c9d639baeb7906596d54c2415188b1a24f1f1eb2cb7
MD5 f34946ccb90e8c6d5fe058080ac2a265
BLAKE2b-256 f0db86aef45de55b4bde41a3c037e49700cf769d82129b371a4096ed0401bf4e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page