我试图将这个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中建议了一种解决方法。它建议以以下方式运行pyinstallerpyinstaller -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/