树莓派 OpenCV 乒乓球追踪进阶教程
注意:这是一个进阶教程,不适合 Linux 初学者。
简介
本指南将展示如何在树莓派上使用 OpenCV 检测和追踪乒乓球,或任何清晰可见的圆形物体。该技术适用于机器人项目、体育分析或爱好者实验。
前置条件
- 运行最新 Raspbian 的树莓派(下载地址:https://www.raspberrypi.org/downloads/)
- 兼容树莓派的 USB 摄像头
- Linux 主机(Linux Mint 17、Ubuntu 或类似)用于开发和文件传输
- 熟悉基于 Debian 的系统
步骤 1:初始设置
- 将树莓派连接键盘、鼠标、摄像头、以太网或 Wi‑Fi 适配器、HDMI 显示器和电源。
- 上电启动进入 Raspbian 图形界面。
- 打开终端安装 OpenCV。参考 Trevor Appleton 的详细指南确认安装(树莓派安装 OpenCV)。
- 通过
scp或 U 盘将bdtct.py传输到树莓派家目录。
步骤 2:运行追踪代码
- 在树莓派终端进入包含
bdtct.py的文件夹。 - 执行脚本:
sudo python bdtct.py - 应弹出五个窗口:原始视频、“追踪”视图和三个 HSV 调节面板。
- 将乒乓球(黄色为佳)置于摄像头前。
- 调节 “HueComp”、“SatComp”、“ValComp” 滑块,直到 “closing” 窗口中仅球的像素显示为白色区域。记录这些滑块值,通过编辑
bdtct.py保存以备后用。
步骤 3:算法原理解析
用编辑器打开 bdtct.py,可看到以下工作流:
- 从默认摄像头捕获视频:
cap = cv2.VideoCapture(-1) - 将帧缩放至 320×240 以提高树莓派上的帧率。
- 创建交互式窗口,包含 Hue、Saturation、Value 的最小/最大滑块。
- 将每帧从 BGR 转换到 HSV:
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)。 - 将 HSV 拆分为独立通道。
- 根据滑块范围对各通道阈值处理,生成二值掩码。
- 用逻辑与合并三个掩码,分离球的像素。
- 应用高斯模糊平滑结果。
- 使用
cv2.HoughCircles检测圆形。 - 在原始帧上绘制检测到的圆以可视化。
更多深入信息,请参阅 完整项目文档。
制造工艺
- 树莓派太阳能气象站DIY指南
- 树莓派专业温度监测:基于 DS18B20 传感器的完整指南
- 树莓派 2 搭建户外气象站:接入 ADS‑WS1 串口气象站
- 树莓派精准监测机柜温度:DS18B20 多点部署实战
- Neon:树莓派 2 驱动的动态开/关创客空间标识牌 – 德克萨斯州埃尔帕索
- 树莓派接 KY‑033 循迹/门状态传感器:简易 Python 实现
- 树莓派 LIRC 通用红外遥控器专业构建指南
- 树莓派射频转直流:包络检波器构建与故障排查
- Cycle Chaser:树莓派让自行车变身夜间光影秀
- 树莓派实时人脸追踪云台:OpenCV + 舵机 + ServoBlaster 实战
- 树莓派防窃报警器 DIY:压力触发播放警报声
- 树莓派 + MCP9808 + InfluxDB + Grafana:家庭温度监测系统