结合了MaixPy库和OpenCV库的图像处理程序,旨在从摄像头捕获的图像中识别出不同的几何形状(如三角形、四边形、五边形、六边形),并将识别到的形状顶点坐标通过串口发送出去。以下是代码的详细思路和操作描述:
1. 初始化设备和库
- 首先,代码通过MaixPy库初始化了摄像头(设置分辨率为320x240)、显示屏以及串口通信。
- 同时,导入了OpenCV库(cv2)和NumPy库,以便进行图像处理。
2. 图像处理流程
- 从摄像头读取一帧图像,并对图像进行镜头畸变校正。
- 将图像从MaixPy的图像格式转换为OpenCV的图像格式,以便进行后续的OpenCV处理。
- 将图像转换为灰度图,以减少处理的数据量并提高处理速度。
- 对灰度图应用双边滤波器,以减少噪声并保留边缘信息。
- 使用形态学操作(闭运算)来填充图像中的小孔洞,并连接邻近的物体。
- 应用Canny边缘检测算法来检测图像中的边缘。
- 使用
findContours
函数查找边缘连接成的轮廓。
3. 形状识别与坐标发送
- 对于每个检测到的轮廓&