播放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
相关产品推荐
相关产品推荐

