升级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
相关产品推荐
相关产品推荐

