python - (-215:声明失败)number <max_number在函数 'cv::icvExtractPattern'中出错吗?

标签 python opencv pyinstaller cv2

我试图将这个python脚本作为exe文件运行-使用pyinstaller,它引发了这个错误:

[ERROR:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap.cpp (415) cv::VideoWriter::open VIDEOIO(CV_IMAGES): raised OpenCV exception: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\videoio\src\cap_images.cpp:267: error: (-215:Assertion failed) number < max_number in function 'cv::icvExtractPattern'



当我将其作为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

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

最佳答案

主要解决方案:可能是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: error: (-215:Assertion failed) number < max_number in function 'cv::icvExtractPattern'



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

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

关于python - (-215:声明失败)number <max_number在函数 'cv::icvExtractPattern'中出错吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62101620/

相关文章:

Python 脚本依赖于另一个 .exe。是否可以将两者合并为一个 .exe?

Python PyInstaller 4.0 打包 TensorFlow 2.0 项目无法正常工作 ImportError : cannot import name 'pywrap_tensorflow'

python - 检测网球场线拦截

python - 将 floodfill open cv 从 C++ 转换为 Python

python - 如何正确安装pyinstaller? (我究竟做错了什么?)

javascript - 在 Python 程序中包装 Canvas 标签 + javascript 的最简单方法?

c++ - 使用 Visual Studio 2015 编译 OpenCV 2.4.12 时出错

python - Numpy 中的行索引

python - 在 Python 中使用字典替换子字符串

python - 如何迭代数据列的每个单元格,转换并追加每个单元格?