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

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
}
}