https://github.com/Interweave05/rm_test
本项目代码在以下环境下运行:
- 操作系统:Ubuntu 22.04.5 LTS (Jammy Jellyfish)
- 开发工具:Pycharm、Visual Studio 2022
- 依赖库:OpenCV 4、 POSIX等
通过 HSV 空间识别蓝色区域,使用 BGR (RGB) 空间识别橙色区域。获取轮廓,计算矩形框中心点并输出结果。
使用两段红色的 HSV 范围识别当前帧所有红色区域。结合高斯滤波、中值滤波、开闭运算等方法去除图像干扰。通过面积和长宽比筛选出符合要求的红色区域,并计算中心点,最后通过串口发送数据。
- 定义灯条和装甲板的结构体,以便程序编写。
- 使用白色 HSV 和二值图像分别获取白色区域,之后通过“|”位运算合并图像,得到完整清晰的二值图像。
- 进行图像降噪处理,使用长宽比和面积筛选灯条,并将其参数存入
LightBar
结构体列表。 - 通过比较灯条的长度与装甲板的比例,确定是否属于同一装甲板,将符合条件的灯条存入
Armor
结构体列表。 - 遍历装甲板列表,选取离中心最近的装甲板,并框选出,通过串口输出其 Yaw 和 Pitch 角度。
使用 YOLOv5 模型预测图像中的魔方大致位置,再通过 ROI(感兴趣区域)对魔方进行处理,后续处理同进阶题第 2 项。
项目中的串口设备使用 ESP32-S3,程序将接收到的数据重新发送回原设备。
测试代码功能的简单程序。