bnp.objects.camera

camera2np(camera, render=bpy.context.scene.render, dtype=np.float32, frame=bpy.context.scene.frame_current, use_cv_coord=False) → Tuple[np.ndarray]

Return a tuple of intrinsic parameters and extrinsic parameters Ref: https://blender.stackexchange.com/questions/38009/3x4-camera-matrix-from-blender-camera

Parameters:
  • camera (bpy.types.Object) – camera which has bpy.types.Camera at camera.data
  • render (bpy.types.RenderSettings) – render setting in the scene
  • dtype – dtype
  • frame (int) – frame
  • use_cv_coord (bool) – whether to convert the camera pose to opencv’s coordinate
Returns:

Tuple[np.ndarray] (K, Rt) where K: [3, 3], Rt: [3, 4]

get_intrinsic_parameters(camera, render=bpy.context.scene.render, dtype=np.float32) → np.ndarray

Return intrinsic parameters

Parameters:
  • camera (bpy.types.Object) – camera which has bpy.types.Camera at camera.data
  • render (bpy.types.RenderSettings) – render setting in the scene
  • dtype – dtype
Returns:

np.ndarray K: [3, 3]

get_extrinsic_parameters(camera, dtype=np.float32, frame=bpy.context.scene.frame_current, use_cv_coord=False) → np.ndarray

Return extrinsic parameters

Parameters:
  • camera (bpy.types.Object) – camera which has bpy.types.Camera at camera.data
  • dtype – dtype
  • frame (int) – frame
  • use_cv_coord (bool) – whether to convert the camera pose to opencv’s coordinate
Returns:

np.ndarray Rt: [3, 4]

KRt_from_P(P) → Tuple[np.ndarray]

Decompose camera matrix to intrinsic parameters and extrinsic parameters

Parameters:P (np.ndarray) – camera matrix
Returns:Tuple[np.ndarray] K, R, T
create_camera(name="debug_camera", position=[0.0, 0.0, 3.0], rotation=[0.0, 0.0, 0.0], align="WORLD", enter_editmode=False, render=bpy.context.scene.render, P=None, K=None, Rt=None, scale=1.0, use_cv_coord=False) → bpy.types.Object

Create a camera from camera parameters. You can get the camera by setting either P or (K and Rt). Referenece: https://docs.blender.org/api/current/bpy.ops.object.html#bpy.ops.object.camera_add

Parameters:
  • name (str) – camera name
  • position (list) – camera position
  • rotation (list) – camera rotation
  • align (str) – The alignment of the new object. See Blender’s API
  • enter_editmode (bool) – Enter Editmode, Enter editmode when adding this object
  • render (bpy.types.RenderSettings) – render setting in the scene
  • P (np.ndarray) – camera matrix. [3, 4]
  • K (np.ndarray) – intrinsic parameters. [3, 3]
  • Rt (np.ndarray) – extrinsic parameters. [3, 4]
  • scale (float) – scale
  • use_cv_coord (bool) – whether to convert the camera pose to opencv’s coordinate
Returns:

bpy.types.Object camera which has bpy.types.Camera at camera.data