# image-colloector **Repository Path**: taj5/images-colloector ## Basic Information - **Project Name**: image-colloector - **Description**: 采监控图像 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-13 - **Last Updated**: 2026-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图像采集工具 一个用于从监控摄像头定时采集图像的Python工具。 ## 功能特性 - 🎯 **多相机并发采集**:支持同时从多个相机采集图像 - ⚙️ **灵活配置**:每个相机可单独配置采集间隔、最大数量、码流类型 - 🔄 **自动重连**:网络断开时自动重连,确保采集连续性 - 📁 **智能存储**:按相机名称自动创建目录,文件按时间命名 - 📊 **实时监控**:实时显示采集进度和统计信息 - 🛠️ **配置管理**:使用JSON格式配置文件,易于修改和管理 ## 安装 ### 使用 uv(推荐) uv 是 Python 的快速依赖安装和管理工具: ```bash # 克隆项目 git clone https://github.com/yourusername/images-collector.git cd images-collector # 创建虚拟环境并安装依赖 uv sync # 在虚拟环境中运行 uv run python run.py ``` ### 使用 pip ```bash # 安装依赖 pip install -r requirements.txt # 运行程序 python run.py ``` ## 配置说明 ### config.json 配置文件结构 ```json { "global": { "storage_directory": "./images", // 图像存储根目录 "logging": { "level": "INFO", // 日志级别 "file": "collector.log", // 日志文件路径 "max_size": "10MB" // 日志文件最大大小 } }, "cameras": [ { "name": "前端监控", // 相机名称(用于存储和显示) "ip": "192.168.1.100", // 相机IP地址 "username": "admin", // 用户名 "password": "123456", // 密码 "rtsp_path": "/stream", // RTSP路径 "port": 554, // RTSP端口 "interval_seconds": 30, // 采集间隔(秒) "max_images": 1000, // 最大采集张数 "stream_type": "main" // 码流类型:main主码流 / sub子码流 } ] } ``` ### 存储结构 ``` ./images/ ├── 前端监控/ │ ├── 前端监控_20250513_143000_001.jpg │ ├── 前端监控_20250513_143030_002.jpg │ └── ... └── 后门监控/ ├── 后门监控_20250513_143000_001.jpg └── ... ``` ## 使用方法 ### 1. 基本运行 ```bash python run.py ``` ### 2. 检查相机连接 ```bash # 检查所有相机 python run.py --check # 检查指定相机 python run.py --check --camera "前端监控" ``` ### 3. 列出所有相机 ```bash python run.py --list ``` ### 4. 指定配置文件 ```bash python run.py -c /path/to/config.json ``` ### 5. 停止采集 按 `Ctrl+C` 或 `Ctrl+Break` 停止采集 ## 命令行参数 | 参数 | 说明 | |------|------| | `-c, --config` | 指定配置文件路径(默认:config.json) | | `--check` | 检查相机连接状态 | | `--list` | 列出所有相机 | | `--camera` | 指定操作的相机名称(配合--check使用) | ## RTSP URL 格式 工具自动生成RTSP连接URL,格式如下: ``` rtsp://用户名:密码@IP地址:端口/路径 ``` 根据码流类型自动调整: - **主码流**:`rtsp://admin:123456@192.168.1.100:554/stream` - **子码流**:`rtsp://admin:123456@192.168.1.100:554/stream_sub` ## 注意事项 1. **网络连接**:确保相机IP地址可达,防火墙已开放RTSP端口(默认554) 2. **权限设置**:相机RTSP用户需要有访问视频流的权限 3. **磁盘空间**:定期清理旧图像,避免磁盘空间不足 4. **性能考虑**:同时采集多个相机时,注意网络带宽和CPU使用率 ## 故障排查 ### 常见问题 1. **连接失败** - 检查相机IP地址是否正确 - 确认用户名密码是否正确 - 检查网络连接和防火墙设置 2. **图像采集失败** - 确认RTSP路径是否正确 - 检查相机是否支持RTSP协议 - 尝试切换码流类型(主码流/子码流) 3. **性能问题** - 调整采集间隔,避免过于频繁 - 减少同时采集的相机数量 - 检查CPU和内存使用情况 ### 日志查看 采集过程中会生成日志文件 `collector.log`,包含: - 相机连接状态 - 采集进度信息 - 错误和异常信息 - 统计数据 ## 扩展功能 ### 自定义配置管理 可以通过修改 `config_manager.py` 来: - 支持数据库存储配置 - 添加配置验证规则 - 实现配置热加载 ### 自定义图像处理 继承 `CameraCollector` 类,重写 `_save_image` 方法来实现: - 图像压缩 - 图像缩放 - 添加水印 - 图像格式转换 ### 采集策略扩展 可以通过修改 `camera_collector.py` 来实现: - 智能采集(检测到运动时才采集) - 定时采集(按指定时间点采集) - 事件触发采集(外部事件触发采集)