基于 Intel RealSense D435i 深度相机的实时距离测量与三视图可视化工具。
- 实时彩色图像、深度伪彩色图、深度强度灰度图三视图并行显示
- 鼠标点击任意位置实时测距
- 多窗口自动排列,避免重叠
- 多种退出方式,确保可靠退出
这是我作为大一计算机专业学生完成的硬件交互练手项目。在开发时,我发现两个痛点并进行了针对性改进:
- 中文显示乱码:OpenCV默认字体不支持中文,导致提示信息显示为“???”。
- 退出体验不佳:程序常因窗口无响应而需强制终止。
- 问题:
cv2.putText默认使用 Hershey 字体,无法显示中文。 - 解决方案:统一采用英文界面,并选用
cv2.FONT_HERSHEY_DUPLEX粗体字,在保证清晰显示的同时彻底规避了字体兼容性问题。
- 问题:官方示例通常只支持 ESC 键退出,一旦窗口失去焦点或卡顿便无法正常退出。
- 解决方案:实现四种退出方式,确保任何情况下都能安全释放硬件资源:
- 按 ESC 键
- 按数字 2 键
- 鼠标双击 RGB 窗口
- 点击窗口关闭按钮
- 控制台按 Ctrl+C
- 原始方案:官方示例通常只提供 RGB 和深度伪彩色两个视图。
- 改进:新增深度强度灰度图视图,将深度数据线性映射为灰度强度,提供了一种更接近原始数据、对对比度更敏感的可视化方式,便于观察深度场的细节分布。
- 连接 Intel RealSense D435i 相机(推荐使用官方标配USB3.0数据线,以保证深度数据传输稳定不掉帧。)
- 安装依赖:pip install pyrealsense2 opencv-python numpy
- 运行程序:python realsense_camera.py
- 在 RGB 窗口点击测距,支持上述四种方式退出。
- Python 3.x
- Intel RealSense SDK 2.0 (pyrealsense2)
- OpenCV
- NumPy
- 提升相机数据读取稳定性
- 丰富可视化与交互功能
- 接入 YOLOv5 实现火灾目标检测
MIT License
本项目旨在为个人开发者与学习者提供深度相机应用的入门实践参考,不推荐用于任何商业或生产环境。任何基于本代码的衍生作品,作者不对其可能产生的技术、安全或商业风险承担责任。
- 本项目基于 Intel RealSense SDK 2.0 与官方 Python 示例进行二次开发,核心功能依赖
pyrealsense2、OpenCV及NumPy等开源库。 - 所有代码遵循 MIT License 开源,仅用于个人学习与实践。