我正在尝试从opencv-python
(python3,最新版本(的hevc(h265)
.avi视频中读取帧,但不断抛出
OpenCV(4.1.1( C:\projects\opencv-python\opencv\modules\videoio\src\cap_images.cpp:253: 错误:(-5:参数错误(CAP_IMAGES:找不到起始编号(在 文件名(:C:\用户\gabri\桌面\2019-11-22_13\a.avi in 函数 'cv::icvExtractPattern'.
我已经使用opencv-python, opencv-contrib-python and opencv-contrib-python-nonfree
在ubuntu
和windows 10
中尝试过,但没有奏效。 提前谢谢你。
用于读取视频的代码:
import cv2
import imutils
cap = cv2.VideoCapture("C:\Users\gabri\Desktop\2019-11-22_13\a.avi")
while True:
ret,frame = cap.read()
if not ret:
break
frame = imutils.resize(frame,width = 960)
cv2.imshow('image',frame)
k = cv2.waitKey(1) & 0xff
if k == 27:
break
如果未在文件名中指定扩展名,则可能会在VideoWriter
类中收到此错误 就我而言,我忘记写.mp4
.
我通过将绝对路径传递到VideoCapture
并将文件名从example.mov
更改为example_1000.mov
来解决此问题。
此错误通常在函数cap = cv2.VideoCapture("video_path")
或cv2.VideoWriter('path_to_folder/output_save.avi')
不正确时video_path弹出
主要出现在窗口中
我遇到了同样的问题,编译和链接正常,但在运行时会出现同样的神秘错误。
它发生在(使用 Windows(时opencv_videoio_ffmpeg430_64.dll
无法访问(它似乎被另一个 opencv 库默默调用(。要么你没有用-DWITH_FFMPEG=ON
构建opencv,要么你的dll不在路径中。
我遇到了同样的错误,并通过将视频名称更改为"001.avi"来解决它。
也许你可以在你的路径上附加一个数字,比如"a2.avi"而不是"a.avi"。
在我的情况下缺少文件扩展名:将movie
更改为movie.mp4
解决了问题
我的用例可能不是问题中提出的问题,但是由于opencv生成的错误消息略有误导性,我将为可能遇到类似问题的其他人留下注释。
就我而言,我收到以下错误,因为文件已损坏:
OpenCV(4.5.1) cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): /path/to/file.png in function 'icvExtractPattern'
我通过 AWS API 网关接收文件,为了避免文件损坏,我必须在 APIGateway 应用程序设置的"二进制媒体类型"部分添加"多部分/表单数据"。
对我来说,问题是文件名上需要一个数字。因此,在您的情况下,也许您可以将文件重命名为a0.avi
对我来说,错误发生在我能够批准访问相机之前。在我批准将相机用于该应用程序后,它起作用了。