# 海康工业相机激光检测系统 ## 项目概述 本项目是一个基于海康工业相机(MV-CS016-10UC)的激光检测系统,主要用于检测绿色激光点和点阵灯盘。系统采用多线程架构,集成了相机管理、参数配置、检测算法和可视化界面,能够实时识别和跟踪激光目标。 本项目使用Trae的SOLO模式生成 ## 系统功能 ### 核心功能 1. **双模式激光检测** - 模式A:单点/稀疏光点检测(适用于绿色激光笔) - 模式B:点阵灯盘检测(适用于LED阵列) - 智能仲裁:自动选择最优检测模式 2. **相机管理** - 设备枚举和选择 - 相机参数控制(曝光时间、增益、帧率) - 图像采集和显示 - 异常处理和重连机制 3. **参数配置** - 实时参数调节界面 - HSV颜色空间配置 - 形态学操作参数设置 - ROI(感兴趣区域)设置 4. **性能优化** - 自动曝光调节 - 交替帧策略 - 多线程架构 5. **可视化界面** - 实时检测结果显示 - 双模检测状态条 - 操作日志记录 - 用户交互警告 ### 技术特点 - **海康MVS SDK集成**:完整的SDK初始化、设备管理和参数控制 - **OpenCV图像处理**:高效的图像采集、转换和显示 - **多线程架构**:实时图像采集和处理 - **智能算法**:基于HSV颜色空间和形态学操作的目标检测 - **用户友好**:直观的参数调节界面和实时状态显示 ## 安装和配置 ### 1. 硬件要求 - 海康工业相机(推荐:MV-CS016-10UC) - 计算机(Windows 10/11,64位) - USB 3.0或GigE网络接口 ### 2. 软件要求 - Python 3.7+ - 海康MVS SDK - OpenCV - NumPy - Tkinter(Python标准库) ### 3. SDK安装 1. **下载MVS SDK** - 访问海康官网:https://www.hikvision.com/cn/ - 搜索 "MVS SDK" 或 "机器视觉 SDK" - 下载对应操作系统的最新版本 2. **安装SDK** - 运行安装程序,按照默认设置安装 - 安装路径建议使用默认路径 3. **配置环境变量** - 将SDK安装目录下的bin文件夹添加到系统PATH环境变量 - 例如:C:\Program Files\MVS\Runtime\bin\win64_x64 4. **配置Python环境** - 复制SDK安装目录下的Python绑定文件 - 从:C:\Program Files\MVS\Development\Samples\Python\MvImport - 到:项目目录\Python\MvImport ### 4. 依赖安装 ```bash pip install opencv-python pip install numpy ``` ## 使用指南 ### 主程序 **功能**:双模式激光检测系统的主程序,集成了相机管理、参数配置、检测算法和可视化界面。 **运行方式**: ```bash python main.py ``` **操作流程**: 1. 启动程序后,系统会枚举连接的相机设备 2. 输入要打开的相机索引 3. 程序会自动初始化相机并开始取流 4. 同时启动参数控制面板 5. 系统会自动检测激光目标并显示结果 6. 按 `Q` 键退出显示窗口 7. 按 `Ctrl+C` 退出程序 **参数控制**: - 曝光时间:控制相机曝光时长(微秒) - 增益:控制相机信号增益(dB) - 帧率:控制相机采集帧率(fps) - ROI:设置感兴趣区域,提高处理速度 - HSV:调节颜色检测范围 - 形态学:设置形态学操作参数 - 几何参数:设置目标检测的几何条件 ### 相机测试程序 **功能**:用于测试相机基本功能的验证程序,包括设备枚举、图像采集和显示。 **运行方式**: ```bash python verify_camera.py ``` **操作流程**: 1. 启动程序后,系统会枚举连接的相机设备 2. 输入要打开的相机索引 3. 程序会打开相机并开始取流 4. 显示相机采集的实时图像 5. 按 `Q` 键退出显示窗口 6. 按 `Ctrl+C` 退出程序 **用途**: - 验证相机连接是否正常 - 测试相机基本功能 - 检查图像质量 - 排查相机相关问题 ### 相机控制程序 **功能**:用于相机参数调节的独立控制界面程序。 **运行方式**: ```bash python camera_control.py ``` **操作流程**: 1. 启动程序后,系统会自动初始化相机 2. 点击 "初始化相机" 按钮枚举设备 3. 点击 "打开相机" 按钮打开选中的设备 4. 点击 "开始取流" 按钮开始采集图像 5. 使用滑块调节曝光时间、增益和帧率 6. 点击 "停止取流" 按钮停止采集 7. 点击 "关闭相机" 按钮关闭设备 **用途**: - 快速调节相机参数 - 测试不同参数组合的效果 - 监控相机状态 ## 代码结构 ``` Dart/ ├── main.py # 主程序:双模式激光检测系统 ├── camera.py # 相机管理模块 ├── camera_control.py # 相机控制界面 ├── camera_hik.py # 海康相机实现 ├── verify_camera.py # 相机验证程序 ├── detector.py # 单点光斑检测器 ├── dot_matrix_detector.py # 点阵灯盘检测器 ├── arbitrator.py # 模式仲裁器 ├── config_panel.py # 参数控制面板 ├── auto_exposure.py # 自动曝光调节 ├── utils.py # 工具函数 ├── Python/ │ └── MvImport/ # 海康MVS SDK Python绑定 └── README.md # 项目说明文档 ``` ### 核心文件说明 | 文件 | 主要功能 | 说明 | |------|----------|------| | main.py | 双模式激光检测系统 | 集成所有模块,实现完整的检测流程 | | camera.py | 相机管理 | 完整的相机管理功能和控制界面 | | verify_camera.py | 相机验证 | 用于测试相机基本功能的独立程序 | | detector.py | 单点光斑检测 | 基于HSV颜色空间的激光点检测 | | dot_matrix_detector.py | 点阵灯盘检测 | 基于形态学操作的LED阵列检测 | | arbitrator.py | 模式仲裁 | 智能选择最优检测模式 | | config_panel.py | 参数配置 | 实时参数调节界面 | ## 常见问题和解决方案 ### 1. 相机连接问题 **问题**:未找到设备 **解决方案**: - 检查相机是否正确连接 - 检查USB/GigE接口是否正常 - 检查MVS SDK是否正确安装 - 检查设备管理器中是否识别到相机 **问题**:相机无法打开(错误码:2147483648) **解决方案**: - 关闭其他可能占用相机的程序 - 重启计算机 - 重新安装MVS SDK - 检查相机驱动是否正确安装 ### 2. 图像采集问题 **问题**:获取图像失败 **解决方案**: - 检查相机连接 - 检查相机是否被其他程序占用 - 重启相机 - 调整相机参数 **问题**:图像显示异常 **解决方案**: - 检查像素格式设置 - 调整曝光时间和增益 - 检查OpenCV安装 ### 3. 检测算法问题 **问题**:激光点检测不到 **解决方案**: - 调整HSV颜色范围 - 调整曝光时间和增益 - 检查激光光源是否正常 - 调整形态学操作参数 **问题**:误检测较多 **解决方案**: - 缩小HSV颜色范围 - 增加形态学操作的开运算 - 调整几何参数阈值 - 设置ROI减小检测范围 ### 4. 性能问题 **问题**:帧率过低 **解决方案**: - 增大ROI范围 - 降低图像分辨率 - 启用交替帧策略 - 关闭不必要的显示窗口 **问题**:程序卡顿 **解决方案**: - 减少同时显示的窗口数量 - 降低处理复杂度 - 检查计算机性能 ## 系统要求 ### 硬件要求 - CPU:Intel Core i5或更高 - 内存:8GB或更高 - 存储:10GB可用空间 - 接口:USB 3.0或GigE网络接口 ### 软件要求 - 操作系统:Windows 10/11 64位 - Python:3.7或更高版本 - 海康MVS SDK:最新版本 - OpenCV:4.0或更高版本 - NumPy:1.18或更高版本 ## 许可证 本项目仅供学习和研究使用,未经授权不得用于商业用途。 ## 联系方式 如有问题或建议,请联系项目维护人员。 --- **注意**:使用本系统前,请确保已经正确安装和配置海康MVS SDK,并且相机已经正确连接到计算机。