You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级OpenCV相关包后标注不显示的问题排查与解决

OpenCV视频标注不显示的解决方法

以下是针对你问题的排查和解决步骤:

  • 检查色彩空间一致性:OpenCV读取视频帧默认是BGR格式,如果你的代码中存在将帧转为RGB的操作(比如用于其他模型处理),绘制标注前必须转回BGR,否则颜色会异常甚至无法显示:

    # 若之前转换过色彩空间,转回BGR再绘制标注
    if image.ndim == 3 and image.shape[2] == 3:
        image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
    
  • 校验标注坐标有效性:你的第一个标注矩形依赖coords变量,如果coords或计算后的坐标超出视频帧的宽高范围,标注会被绘制到图像外部:

    h, w = image.shape[:2]
    # 确保coords在图像范围内
    coords = (max(0, min(coords[0], w)), max(0, min(coords[1], h)))
    # 修正矩形右上角的y坐标,避免负数
    rect_y2 = max(0, coords[1] - 30)
    cv2.rectangle(image, 
                  (coords[0], coords[1]+5), 
                  (coords[0]+len(body_language_class)*20, rect_y2), 
                  (245, 117, 16), -1)
    
  • 调整字体显示参数:部分文字的坐标(比如(95,12))可能太靠近图像顶部,导致文字被截断,建议调整y轴坐标:

    # 把CLASS的y坐标从12改为20,确保完整显示
    cv2.putText(image, 'CLASS', (95,20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 0), 1, cv2.LINE_AA)
    
  • 统一OpenCV包版本:你当前安装的opencv-python(4.7.0.72)和opencv-contrib-python(4.8.0.74)版本不一致,这会导致兼容性问题,建议卸载后安装同版本:

    pip uninstall opencv-python opencv-contrib-python -y
    pip install opencv-python==4.7.0.72 opencv-contrib-python==4.7.0.72
    
  • 确认显示的是标注后的帧:检查cv2.imshow传入的是否是绘制完标注的image变量,而非原始未标注的帧:

    # 确保显示的是处理后的图像
    cv2.imshow('Video Window', image)
    

内容的提问来源于stack exchange,提问作者sheilakoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:12:48