(-215:断言失败)函数<cv :: icvExtractPattern'中的数字<max_number错误?

时间:2020-05-30 11:15:56

标签: python opencv pyinstaller cv2

我正在尝试将这个python脚本作为exe文件运行-使用pyinstaller,这会引发此错误:

[ERROR:0]全局C:\ projects \ opencv-python \ opencv \ modules \ videoio \ src \ cap.cpp(415)cv :: VideoWriter :: open VIDEOIO(CV_IMAGES):引发了OpenCV异常: OpenCV(4.2.0)C:\ projects \ opencv-python \ opencv \ modules \ videoio \ src \ cap_images.cpp:267:错误:(-215:断言失败)number

当我将其作为python脚本运行时,它运行良好。 python脚本:

SCREEN_SIZE = (1920, 1080)
FPS = 20.0
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, FPS, SCREEN_SIZE)

我在命令行中使用pyinstaller:

pyinstaller --onefile python_script.py

我应该进行哪些更改才能使其正常工作?

1 个答案:

答案 0 :(得分:0)

主要解决方案:可能是一个DLL错误。

我想您的问题与this issue有关。 this comment中建议使用一种解决方法。建议将pyinstaller运行为

pyinstaller -F --add-data opencv_ffmpeg410_64.dll;. python_script.py

请确保适应您的OpenCV版本。确保此dll位于任何地方。

替代: 我相信错误

python \ opencv \ modules \ videoio \ src \ cap_images.cpp:267:错误:(-215:断言失败)数字<函数'cv :: icvExtractPattern'中的max_number

是由此行fourcc = cv2.VideoWriter_fourcc(*"XVID")引起的,此处设置的值为>最大值。

您可以尝试将fourcc设置为-1。然后,它将为您提供用于编写​​的视频编解码器的选择。我已经看到未压缩的视频选择适用于大多数平台。