网站Logo Sea Master

ZED2相机的参数获取02

获取ZED2相机的外参参
zed2相机
zed2相机

分享一下ZED2相机的外部部参数获取的方式,直接调用API即可(可恶的官方只给一点点示例!)

import numpy as np

import pyzed.sl as sl

 

def get_calibration_params():

  zed = sl.Camera()

  init_params = sl.InitParameters()

  err = zed.open(init_params)

 

  if err != sl.ERROR_CODE.SUCCESS:

    print("相机打开失败")

    return

 

  calib_params = zed.get_camera_information().camera_configuration.calibration_parameters

  # 左相机内参和畸变

  left_fx = calib_params.left_cam.fx  # 焦距x(像素)

  left_fy = calib_params.left_cam.fy  # 焦距y

  left_cx = calib_params.left_cam.cx  # 主点x

  left_cy = calib_params.left_cam.cy  # 主点y

  left_distortion = calib_params.left_cam.disto  # 畸变系数k1,k2,k3,p1,p2

 

  # 右相机内参和畸变

  right_fx = calib_params.right_cam.fx

  right_fy = calib_params.right_cam.fy

  right_cx = calib_params.right_cam.cx

  right_cy = calib_params.right_cam.cy

  right_distortion = calib_params.right_cam.disto

 

  # 正确获取旋转矩阵

  rotation = calib_params.stereo_transform.get_rotation_matrix()

  rotation_matrix = np.array(rotation.r).reshape(3, 3)

 

  # 正确获取平移向量和基线

  translation_vector = np.array(calib_params.stereo_transform.get_translation().get())

  baseline = calib_params.get_camera_baseline()

  zed.close()

  return {

    "left_intrinsic": [left_fx, left_fy, left_cx, left_cy],

    "right_intrinsic": [right_fx, right_fy, right_cx, right_cy],

    "distortion": {"left": left_distortion, "right": right_distortion},

    "extrinsic": {

      "R": rotation_matrix,

      "T": translation_vector,

      "baseline": baseline

    }

  }