web-dev-qa-db-ja.com

(-215:Assertion failed)number <max_number in function 'cv :: icvExtractPattern' error?

私はこれをpythonスクリプトをexeファイルとして実行しようとしています-pyinstallerを使用していて、このエラーが発生します:

[エラー: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: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

機能させるには何を変更すればよいですか?

1
ophir

主な解決策:DLLエラーの可能性があります。

あなたの問題は この問題 に関連していると思います。 このコメント で推奨される回避策があります。 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_に設定してみてください。次に、書き込みに使用するビデオコーデックを選択します。ほとんどのプラットフォームで非圧縮のビデオを選択すると問題なく動作することを確認しました。

0
AzyCrw4282