# Object-tracking **Repository Path**: My_AK_Dream/Object-tracking ## Basic Information - **Project Name**: Object-tracking - **Description**: 颜色小球的识别和追踪 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-12 - **Last Updated**: 2025-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 彩色球体追踪系统 一个基于计算机视觉的实时彩色球体检测和追踪系统,支持多种颜色的球体识别、轨迹记录和数据分析。 ## 项目概述 本项目是一个完整的计算机视觉应用,主要用于: - 实时检测和追踪不同颜色的球体 - 记录球体的运动轨迹 - 生成运动数据报告 - 可视化分析球体运动 ## 功能特性 ### 🎯 核心功能 - **多颜色检测**: 支持红色、蓝色、绿色、黄色球体的同时检测 - **实时追踪**: 实时显示球体位置和运动轨迹 - **轨迹记录**: 自动保存球体的运动轨迹数据 - **视频处理**: 支持实时录制和视频文件处理 - **数据分析**: 生成CSV格式的运动数据 - **可视化**: 绘制位置-时间图表 ### 🔧 技术特性 - **HSV颜色空间**: 使用HSV颜色空间进行精确的颜色检测 - **圆形度检测**: 通过圆形度计算过滤非球体对象 - **轨迹优化**: 使用双端队列优化轨迹显示性能 - **实时调参**: 支持实时调整HSV阈值参数 - **多格式输出**: 支持MP4视频和CSV数据输出 ## 项目结构 ``` CV/ ├── main.py # 主程序 - 实时球体检测和录制 ├── videotocsv.py # 视频处理程序 - 将视频转换为CSV数据 ├── realtimetocsv.py # 实时CSV记录程序 ├── draw.py # 数据可视化程序 ├── debug.py # 调试程序 - 实时参数调整 ├── requirements.txt # 项目依赖 ├── video/ # 录制的视频文件 ├── video_results/ # 处理后的视频文件 ├── csv_results/ # 生成的CSV数据文件 ├── image/ # 生成的图表文件 ├── test/ # 测试视频文件 └── csv/ # 原始CSV数据文件 ``` ## 安装说明 ### 环境要求 - Python 3.8+ - OpenCV 4.11.0+ - 摄像头设备(用于实时检测) ### 安装步骤 1. **克隆项目** ```bash git clone cd CV ``` 2. **创建虚拟环境** ```bash python -m venv .venv ``` 3. **激活虚拟环境** ```bash # Windows .venv\Scripts\activate # Linux/Mac source .venv/bin/activate ``` 4. **安装依赖** ```bash pip install -r requirements.txt ``` ## 使用方法 ### 1. 实时球体检测和录制 ```bash python main.py ``` - 启动实时摄像头检测 - 自动录制检测结果视频 - 按ESC键退出 ### 2. 视频文件处理 ```bash python videotocsv.py ``` - 处理指定视频文件 - 生成CSV格式的运动数据 - 输出处理后的视频文件 ### 3. 实时CSV数据记录 ```bash python realtimetocsv.py ``` - 实时检测并记录CSV数据 - 同时录制视频文件 ### 4. 数据可视化 ```bash python draw.py ``` - 读取CSV数据文件 - 生成位置-时间图表 - 保存为PNG图片 ### 5. 调试模式 ```bash python debug.py ``` - 实时调整HSV参数 - 显示调试信息 - 优化检测效果 ## 配置说明 ### 颜色范围配置 在代码中可以调整HSV颜色范围来适应不同的检测环境: ```python COLOR_RANGES = { "red": ([0, 127, 128], [15, 255, 255]), # 红色范围1 "red2": ([165, 127, 128], [180, 255, 255]), # 红色范围2 "blue": ([100, 100, 60], [140, 255, 255]), # 蓝色范围 "green": ([40, 50, 50], [80, 255, 255]), # 绿色范围 "yellow": ([20, 100, 100], [40, 255, 255]) # 黄色范围 } ``` ### 检测参数调整 - `CIRCULARITY_THRESHOLD`: 圆形度阈值(默认0.75) - `max_trajectory_length`: 轨迹长度(默认5秒) - 面积阈值:过滤小面积噪声(默认100像素) ## 输出文件说明 ### 视频文件 - 格式:MP4 - 命名:`YYYYMMDD_HHMMSS.mp4` - 内容:带有检测框和轨迹的视频 ### CSV数据文件 - 格式:CSV - 命名:`YYYYMMDD_HHMMSS_detections.csv` - 字段:timestamp, color, x, y, area, circularity ### 图表文件 - 格式:PNG - 命名:`YYYYMMDD_HHMMSS.png` - 内容:X/Y位置随时间变化的图表 ## 故障排除 ### 常见问题 1. **摄像头无法打开** - 检查摄像头是否被其他程序占用 - 修改`cv2.VideoCapture()`中的设备索引 2. **检测效果不佳** - 使用`debug.py`调整HSV参数 - 确保光照条件稳定 - 检查球体颜色是否在检测范围内 3. **性能问题** - 降低视频分辨率 - 减少轨迹长度 - 关闭不必要的调试显示 ### 调试技巧 1. **使用debug.py进行参数调优** 2. **检查HSV颜色范围是否合适** 3. **调整圆形度阈值过滤噪声** 4. **确保球体大小适中** ## 技术细节 ### 算法流程 1. **图像预处理**: BGR转HSV颜色空间 2. **颜色检测**: 多范围HSV阈值分割 3. **形态学处理**: 中值滤波去噪 4. **轮廓检测**: 查找连通区域 5. **形状分析**: 计算圆形度和面积 6. **轨迹记录**: 记录中心点坐标 7. **可视化**: 绘制检测框和轨迹 ### 性能优化 - 使用双端队列优化轨迹存储 - 中值滤波减少噪声 - 面积阈值过滤小目标 - 圆形度计算过滤非球体 ## 贡献指南 欢迎提交Issue和Pull Request来改进项目! ## 许可证 本项目采用MIT许可证。 ## 联系方式 如有问题或建议,请通过以下方式联系: - 提交GitHub Issue - 发送邮件至:[your-email@example.com] --- **注意**: 使用前请确保摄像头设备正常工作,并根据实际环境调整检测参数。