zed 2i相机坐标系与内参、外参
相应内外参如下相机型号 : ZED 2i序列号 : 31474187固件版本 : 相机 1523 / 传感器 778 左相机 Left 内参 分辨率 : 1280 x 720焦距 fx, fy : 536.4066, 536.4066主点 cx, cy : 642.2694, 351.1544内参矩阵 K :[[536.40655518 0. 642.26940918][ 0. 536.40655518 351.15435791][ 0. 0. 1. ]]视场角 FOV : h100.07°, v67.74°, d107.71°畸变系数 : [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] 右相机 Right 内参 分辨率 : 1280 x 720焦距 fx, fy : 536.4066, 536.4066主点 cx, cy : 642.2694, 351.1544内参矩阵 K :[[536.40655518 0. 642.26940918][ 0. 536.40655518 351.15435791][ 0. 0. 1. ]]视场角 FOV : h100.07°, v67.74°, d107.71°畸变系数 : [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] 加速度计 Accelerometer 参数 [说明] IMU 没有 fx/fy/cx/cy 那种相机内参它的参数 采样率 量程 分辨率 噪声密度 随机游走采样率 : 400.0 Hz量程 : -78.4800033569336 ~ 78.4800033569336 m/s²分辨率 : 0.002395019633695483 m/s²噪声密度 : 0.0004400000034365803 m/s²/√Hz随机游走 : 0.02019999921321869 m/s²/s/√Hz 陀螺仪 Gyroscope 参数 [说明] IMU 没有 fx/fy/cx/cy 那种相机内参它的参数 采样率 量程 分辨率 噪声密度 随机游走采样率 : 400.0 Hz量程 : -1000.0 ~ 1000.0 °/s分辨率 : 0.030517578125 °/s噪声密度 : 0.004991999827325344 °/s/√Hz随机游走 : 0.042399998754262924 °/s/s/√Hz 磁力计 Magnetometer 参数 [说明] IMU 没有 fx/fy/cx/cy 那种相机内参它的参数 采样率 量程 分辨率 噪声密度 随机游走采样率 : 50.0 Hz量程 : -2500.0 ~ 2500.0 µT分辨率 : 0.30000001192092896 µT噪声密度 : 0.07000000029802322 µT/√Hz随机游走 : N/A 气压计 Barometer 参数 [说明] IMU 没有 fx/fy/cx/cy 那种相机内参它的参数 采样率 量程 分辨率 噪声密度 随机游走采样率 : 25.0 Hz量程 : 300.0 ~ 1100.0 hPa分辨率 : 0.009999999776482582 hPa噪声密度 : 0.00039999998989515007 hPa/√Hz随机游走 : N/A 外参 左相机 Left - 右相机 Right 旋转矩阵 R :[[1. 0. 0.][0. 1. 0.][0. 0. 1.]]旋转角 (roll/pitch/yaw) : 0.0000° / -0.0000° / 0.0000°平移向量 t [右相机 Right 在 左相机 Left 系下的位置] : [0.11990686 0. 0. ]坐标变换P_左相机 Left R · P_右相机 Right t[左相机 Left 在 右相机 Right 坐标系中的位置] : [-0.11990686 0. 0. ]变换矩阵 T :[[1. 0. 0. 0.11990686][0. 1. 0. 0. ][0. 0. 1. 0. ][0. 0. 0. 1. ]] 外参 左相机 Left - IMU 旋转矩阵 R :[[ 0.99976206 0.01169387 -0.01841571][-0.0116109 0.99992198 0.00460632][ 0.01846814 -0.0043914 0.99981982]]旋转角 (roll/pitch/yaw) : -0.2517° / -1.0582° / -0.6654°平移向量 t [IMU 在 左相机 Left 系下的位置] : [ 0.023061 -0.000217 -0.002 ]坐标变换P_左相机 Left R · P_IMU t[左相机 Left 在 IMU 坐标系中的位置] : [-2.30210978e-02 -6.14721674e-05 2.42532406e-03]变换矩阵 T :[[ 9.99762058e-01 1.16938744e-02 -1.84157118e-02 2.30610017e-02][-1.16108973e-02 9.99921978e-01 4.60632052e-03 -2.17000023e-04][ 1.84681416e-02 -4.39140107e-03 9.99819815e-01 -2.00000009e-03][ 0.00000000e00 0.00000000e00 0.00000000e00 1.00000000e00]]双目基线 baseline 0.1199 m注意在运行代码与使用相机前需要先安装zed2i相机的sdk我的cuda是cu11.7所以安装的sdk是ZED_SDK_Windows_cuda11.8_v4.2.5.exesdk链接如下我用夸克网盘给你分享了「ZED_SDK_Windows_cuda11.8_v4.2.5.exe」点击链接或复制整段内容打开「夸克网盘APP」即可获取。/~52173aDuRT~:/链接https://pan.quark.cn/s/b46717dbb838?pwdjdNr提取码jdNr相机内外参直接提取的代码打印 ZED2i 的相机内参 / IMU 参数 / 外参。 本文件是 realsense-435i-vio/realsense_calib_params.py 的 ZED2i 移植版。 ZED2i 与 D435i 的标定信息来源不同 RealSense按流depth/color/infrared/accel/gyro分别取 profile ZED2i 所有参数都在 zed.get_camera_information() 里一次性给出。 映射 视频流内参 - camera_configuration.calibration_parameters.left_cam / right_cam IMU 参数 - sensors_configuration.accelerometer_parameters / gyroscope_parameters 采样率/量程/噪声密度/随机游走 外参 - calibration_parameters.stereo_transform左-右右相机在左相机系下的位姿t≈baseline sensors_configuration.camera_imu_transform左相机-IMU import math import numpy as np import pyzed.sl as sl # --------------------------------------------------------------------------- # 视频流内参左 / 右相机 # --------------------------------------------------------------------------- def print_video_intrinsics(name, cp): 打印单个相机内参。cp 为 sl.CameraParameters。 if cp is None: print(f[WARN] {name}: 参数不可用跳过) return K np.array([ [cp.fx, 0, cp.cx], [0, cp.fy, cp.cy], [0, 0, 1.0], ]) print(f\n {name} 内参 ) print(f 分辨率 : {cp.image_size.width} x {cp.image_size.height}) print(f 焦距 fx, fy : {cp.fx:.4f}, {cp.fy:.4f}) print(f 主点 cx, cy : {cp.cx:.4f}, {cp.cy:.4f}) print(f 内参矩阵 K :\n{K}) print(f 视场角 FOV : h{cp.h_fov:.2f}°, v{cp.v_fov:.2f}°, d{cp.d_fov:.2f}°) print(f 畸变系数 : {list(cp.disto)}) # --------------------------------------------------------------------------- # IMU 参数加速度计 / 陀螺仪 # --------------------------------------------------------------------------- # sl.SENSORS_UNIT 枚举 - 人类可读单位 _SENSOR_UNIT_STR { sl.SENSORS_UNIT.M_SEC_2: m/s², sl.SENSORS_UNIT.DEG_SEC: °/s, sl.SENSORS_UNIT.U_T: µT, sl.SENSORS_UNIT.HPA: hPa, sl.SENSORS_UNIT.CELSIUS: °C, sl.SENSORS_UNIT.HERTZ: Hz, } def _unit_str(sensor_unit): 把 sl.SENSORS_UNIT 枚举转成可读单位字符串。 return _SENSOR_UNIT_STR.get(sensor_unit, str(sensor_unit)) def print_sensor_parameters(name, sp): 打印单个传感器参数。sp 为 sl.SensorParameters。 if sp is None or not sp.is_available: print(f\n {name} 参数 (不可用)) return unit _unit_str(sp.sensor_unit) # sensor_range 是 numpy.ndarray形状 (2,)[min, max] rng sp.sensor_range print(f\n {name} 参数 ) print(f [说明] IMU 没有 fx/fy/cx/cy 那种相机内参) print(f 它的参数 采样率 量程 分辨率 噪声密度 随机游走) print(f 采样率 : {sp.sampling_rate} Hz) print(f 量程 : {rng[0]} ~ {rng[1]} {unit}) print(f 分辨率 : {sp.resolution} {unit}) nd N/A if math.isnan(sp.noise_density) else f{sp.noise_density} {unit}/√Hz rw N/A if math.isnan(sp.random_walk) else f{sp.random_walk} {unit}/s/√Hz print(f 噪声密度 : {nd}) print(f 随机游走 : {rw}) # --------------------------------------------------------------------------- # 外参 # --------------------------------------------------------------------------- def rotation_matrix_to_euler(R): 3x3 旋转矩阵 - (roll, pitch, yaw)单位度。 采用 ZYX 内旋约定R Rz(yaw) Ry(pitch) Rx(roll) roll 绕 X 轴、pitch 绕 Y 轴、yaw 绕 Z 轴。 sy np.sqrt(R[0, 0] ** 2 R[1, 0] ** 2) if sy 1e-6: roll np.arctan2(R[2, 1], R[2, 2]) pitch np.arctan2(-R[2, 0], sy) yaw np.arctan2(R[1, 0], R[0, 0]) else: # 万向锁退化pitch ≈ ±90° roll np.arctan2(-R[1, 2], R[1, 1]) pitch np.arctan2(-R[2, 0], sy) yaw 0.0 return np.degrees([roll, pitch, yaw]) def transform_to_R_t(transform): sl.Transform - (R, t)。transform.m 为 4x4 numpy.ndarray行主序。 布局同 ZED SDK 文档 [ R00 R01 R02 tx ] [ R10 R11 R12 ty ] [ R20 R21 R22 tz ] [ 0 0 0 1 ] m transform.m R np.array(m[:3, :3], dtypenp.float64) t np.array(m[:3, 3], dtypenp.float64) return R, t def print_extrinsics(name_from, name_to, transform): 打印外参旋转 平移 4x4 变换矩阵 欧拉角。 约定name_from - name_to 表示 name_to 在 name_from 坐标系下的位姿 机器人学里常见的 A - B B 在 A 系下的位姿即 T_A_B。 平移向量 t 即 name_to 原点在 name_from 系中的位置坐标变换为 P_{name_from} R · P_{name_to} t if transform is None: print(f[WARN] {name_from} - {name_to}: 参数不可用跳过) return R, t transform_to_R_t(transform) T np.eye(4) T[:3, :3] R T[:3, 3] t roll, pitch, yaw rotation_matrix_to_euler(R) # name_from 原点在 name_to 系中的位置反变换 -R^T·t pos_from_in_to (-R.T t).ravel() print(f\n 外参 {name_from} - {name_to} ) print(f 旋转矩阵 R :\n{R}) print(f 旋转角 (roll/pitch/yaw) : {roll:.4f}° / {pitch:.4f}° / {yaw:.4f}°) print(f 平移向量 t [{name_to} 在 {name_from} 系下的位置] : {t}) print(f 坐标变换P_{name_from} R · P_{name_to} t) print(f [{name_from} 在 {name_to} 坐标系中的位置] : {pos_from_in_to}) print(f 变换矩阵 T :\n{T}) def main(): init sl.InitParameters() init.coordinate_units sl.UNIT.METER zed sl.Camera() status zed.open(init) if status ! sl.ERROR_CODE.SUCCESS: print(f[ERROR] 无法打开 ZED2i请检查连接: {repr(status)}) return info zed.get_camera_information() calib info.camera_configuration.calibration_parameters sensors info.sensors_configuration print(f相机型号 : {info.camera_model}) print(f序列号 : {info.serial_number}) print(f固件版本 : 相机 {info.camera_configuration.firmware_version} / f传感器 {sensors.firmware_version}) # 视频流内参左 / 右相机 print_video_intrinsics(左相机 Left, calib.left_cam) print_video_intrinsics(右相机 Right, calib.right_cam) # IMU 参数 print_sensor_parameters(加速度计 Accelerometer, sensors.accelerometer_parameters) print_sensor_parameters(陀螺仪 Gyroscope, sensors.gyroscope_parameters) print_sensor_parameters(磁力计 Magnetometer, sensors.magnetometer_parameters) print_sensor_parameters(气压计 Barometer, sensors.barometer_parameters) # 外参 # stereo_transform左相机 - 右相机 右相机在左相机系下的位姿t ≈ baseline print_extrinsics(左相机 Left, 右相机 Right, calib.stereo_transform) print_extrinsics(左相机 Left, IMU, sensors.camera_imu_transform) print(f\n双目基线 baseline {calib.get_camera_baseline():.4f} m) print(f[说明] ZED2i 的灰度/彩色共用左相机无独立 RGB-IR 外参。) zed.close() if __name__ __main__: main()

相关新闻

试用期自我总结撰写指南:从STAR-P模型到十大场景实战

试用期自我总结撰写指南:从STAR-P模型到十大场景实战

1. 项目概述:一份报告,十次成长又到试用期尾声,相信很多朋友和我一样,正对着电脑屏幕,为那份“试用期自我总结报告”绞尽脑汁。这玩意儿,说简单也简单,无非是回顾过去、总结现在、展望未来&…

2026/10/9 2:57:01 阅读更多 →
基于LLM与OpenClaw框架的自动化测试报告生成Skill设计与实践

基于LLM与OpenClaw框架的自动化测试报告生成Skill设计与实践

1. 项目概述:为什么我们需要一个“自动写测试报告”的 Skill?在软件开发和测试的日常里,写测试报告这件事,说大不大,说小不小,但绝对是个“脏活累活”。想象一下这个场景:你刚跑完一轮包含上百个…

2026/10/7 20:39:29 阅读更多 →
老人独居看护摄像头怎么选?跌倒检测+一键呼叫,让牵挂落地的技术方案

老人独居看护摄像头怎么选?跌倒检测+一键呼叫,让牵挂落地的技术方案

一、痛点提出:独居老人最怕摔倒没人知道独居老人最怕的就是摔倒没人知道。跌倒已成为老年人意外伤害的首要原因,而“摔倒后无人知晓”是导致严重后果的关键因素。普通摄像头只能事后翻回放,无法在第一时间发现问题。中国电信在云南普洱市落地…

2026/10/10 20:29:23 阅读更多 →

最新新闻

cursor: not-allowed 与 pointer-events: none 实战:TaoToken 控制台里禁用态按钮的样式与事件双保险

cursor: not-allowed 与 pointer-events: none 实战:TaoToken 控制台里禁用态按钮的样式与事件双保险

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 13:03:12 阅读更多 →
震惊!2025大模型技术革命:从推理到编程智能体,小白程序员的进阶之路与TaoToken实战

震惊!2025大模型技术革命:从推理到编程智能体,小白程序员的进阶之路与TaoToken实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 13:03:11 阅读更多 →
大模型编程助手Trae接入TaoToken:统一Key配置与多模型切换实战

大模型编程助手Trae接入TaoToken:统一Key配置与多模型切换实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 13:03:11 阅读更多 →
OpenClaw机器人引爆天网!首次拥有世界记忆,天网在GitHub「开源」了:用TaoToken统一Key打通LiDAR+SLAM+ROS全链路

OpenClaw机器人引爆天网!首次拥有世界记忆,天网在GitHub「开源」了:用TaoToken统一Key打通LiDAR+SLAM+ROS全链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 13:03:11 阅读更多 →
可审计的AI数据分析师:用Agents API安全访问数据库

可审计的AI数据分析师:用Agents API安全访问数据库

日志系统里躺着一行触目惊心的记录: DELETE FROM users WHERE id 1024 ,执行时间是凌晨 03:22:17,发起方是一段名为“数据分析助手”的自动化脚本。看到这行日志的那一刻,我的第一反应是:谁把生产库的连接串直接喂给…

2026/10/12 13:03:11 阅读更多 →
大一新生年入百万?拆解流量造神背后的真实玩法与路径

大一新生年入百万?拆解流量造神背后的真实玩法与路径

大一新生,年入100万,别人都叫他“天才小火炬”。这种标题这两年刷到过不止一次,第一反应基本都是“又一个流量造神”。但把这些案例里的账号内容、产品路径、粉丝互动记录翻了很多遍之后,有一个结论我越来越确定:这里面…

2026/10/12 13:02:11 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →