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

播放MP4视频报错,YOLO代码运行遇OpenCV imshow断言失败求助

YOLO目标检测与MP4视频播放问题排查方案

问题汇总

  • 运行YOLO代码时弹出WARNING:'source'缺失,自动使用默认路径source=C:\Users\ZAKARIYA\PycharmProjects\object-detection-yolo\venv311\Lib\site-packages\ultralytics\assets
  • 执行cv2.imshow("image",img)时触发OpenCV断言失败错误:error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow',进程退出码1
  • 代码无预期结果,PyCharm中查看MP4视频弹出警报

针对性解决方案

1. 修复source路径缺失警告

在YOLO初始化或推理代码中,显式指定正确的视频/图像源路径,避免使用默认路径:

# 示例:指定本地MP4视频路径
model = YOLO('yolov8n.pt')
results = model(source=r"C:\xxx\你的视频文件.mp4", show=True)

Windows系统下路径推荐用原始字符串r"路径"或双反斜杠\\,确保路径无语法错误。

2. 解决cv2.imshow断言失败错误

该错误表示img为空(宽高为0),核心原因是视频读取失败,按以下步骤排查:

  • 校验视频路径与文件状态:确认代码中视频路径正确,文件存在且未损坏;
  • 添加帧读取有效性检查:在cv2.imshow前加入判断逻辑,避免读取空帧:
cap = cv2.VideoCapture(r"C:\xxx\你的视频文件.mp4")
while cap.isOpened():
    ret, img = cap.read()
    # 检查是否成功读取帧
    if not ret or img is None:
        print("无法读取视频帧,终止进程")
        break
    # 执行YOLO推理等后续操作
    cv2.imshow("image", img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
  • 确保OpenCV支持MP4编码:若视频编码不兼容,重装带完整编码支持的OpenCV版本:
pip uninstall opencv-python
pip install opencv-contrib-python

3. 处理PyCharm中MP4查看警报

PyCharm内置查看器可能不支持视频编码,可按以下方式解决:

  • 用系统默认播放器打开MP4,验证文件本身是否正常可播放;
  • 在PyCharm插件市场安装Video Player类插件,增强视频格式支持;
  • 若视频编码特殊,将其转码为H.264等通用编码格式后再使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:07:16