Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

3.4 视觉处理流程优化

多级过滤策略

项目中采用的多级过滤策略:

  1. 面积过滤:300 < area < 10000 像素
  2. 圆形度过滤:circularity > 0.8
  3. 位置稳定性过滤:低通滤波平滑位置变化
  4. 比例一致性检查:连续多帧检测结果一致

实时性能优化

项目中使用的性能优化技术:

# 减少图像处理分辨率
frame = cv2.resize(frame, (320, 240))  # 降低分辨率提高处理速度

# 限制处理区域
roi = frame[100:400, 100:500]  # 只处理感兴趣区域

# 使用轻量级处理操作
# 如使用简单阈值代替复杂分割算法

错误处理与鲁棒性

项目中增强鲁棒性的措施:

try:
    # 图像处理代码
    processed_frame, mask, data = dector.process(image)
except Exception as e:
    print(f"图像处理错误: {e}")
    # 使用上一帧结果或默认值
    data = self.last_valid_data
    
# 检查数据有效性
if not data or len(data) == 0:
    # 处理目标丢失情况
    self.handle_target_lost(current_time)

关键函数应用总结

功能函数参数说明返回值项目位置
HSV阈值分割cv2.inRange()src: HSV图像, lowerb: 下界, upperb: 上界二值掩膜mycv/color.py
形态学开运算cv2.morphologyEx()src: 输入图像, op: 操作类型, kernel: 结构元素处理后的图像mycv/color.py
轮廓检测cv2.findContours()image: 二值图像, mode: 检索模式, method: 近似方法轮廓列表mycv/color.py
轮廓面积cv2.contourArea()contour: 轮廓点集面积值mycv/color.py
边界矩形cv2.boundingRect()points: 轮廓点集(x,y,w,h)mycv/color.py
坐标转换image_to_car_coordinates()image_x/y: 图像坐标, distance: 距离机器人坐标car_cv.py
距离估计estimate_distance()size_ratio: 网球比例估计距离car_cv.py