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

VS Code运行OpenCV目标跟踪代码报(-215)错误,求解决方法

解决VS Code中OpenCV目标跟踪代码的(-215)断言错误

错误根源

(-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow' 意味着OpenCV要显示的图像是空的,核心问题是视频文件加载失败。Spyder能正常运行是因为两个编辑器的默认工作目录不同:

  • Spyder默认以代码文件所在文件夹为工作目录
  • VS Code默认工作目录可能是你打开的根项目文件夹,而非代码所在子文件夹

解决步骤

1. 修改代码(最稳妥的方案)

把视频路径改成绝对路径,或者动态获取脚本所在目录拼接路径,避免工作目录差异影响:

  • 绝对路径示例:
cap = cv2.VideoCapture("D:/your_project_folder/video.mp4")
  • 动态路径示例(推荐,适配不同环境):
import os
import cv2

# 获取当前脚本所在文件夹路径
script_path = os.path.dirname(os.path.abspath(__file__))
# 拼接视频文件路径
video_file = os.path.join(script_path, "your_video.mp4")
cap = cv2.VideoCapture(video_file)

2. 调整VS Code工作目录(无需改代码)

如果不想修改代码,可以把VS Code的工作目录切换到代码文件所在的文件夹:

  • 打开目标代码文件后,点击左下角显示当前工作区的路径区域
  • 选择「浏览文件夹」,定位到代码所在文件夹并确认
  • 重启终端后重新运行代码

额外排查项

  • 检查视频文件名的大小写:部分系统(如Linux/macOS)对文件名大小写敏感,确保代码里的文件名和实际文件一致
  • 统一OpenCV版本:在Spyder和VS Code的终端分别运行print(cv2.__version__),如果版本差异较大,建议用pip install opencv-python==对应版本号统一安装相同版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:22:44