实际上我正在使用k=cv2.VideoCapture("it.mp4")
加载视频,该视频位于同一文件夹中,但当我检查它是否打开时,它显示“False”。当我使用k.open()
打开它时,它会显示我的错误:
追踪(最近的呼叫最后):
文件“”,第1行,在中 TypeError:未找到必需参数'filename'(pos 1)
我认为它不是获取文件但视频位于同一文件夹中。很久以来我一直坚持这个。
以下是代码: -
import numpy as np
import cv2
cap=cv2.VideoCapture("it.mp4")
k=cap.isOpened()
if k==False:
cap.open()
它显示以下错误: -
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Required argument 'filename' (pos 1) not found
答案 0 :(得分:1)
通过查看代码,很容易弄清楚为什么会出现此错误。原因是您使用的cap.open()
没有任何参数。您需要将文件名传递给cap.open()
才能初始化cv2.VideoCapture
。所以你的代码应该是
import numpy as np
import cv2
cap=cv2.VideoCapture("it.mp4")
k=cap.isOpened()
if k==False:
cap.open("it.mp4")
为了从cap
读取帧,您可以使用这样的循环
while(True):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
答案 1 :(得分:0)
您需要传递cap.open()的参数。在你的情况下 -
cap.open("it.mp4")
如果您正在使用相机或要阅读的文件名,则必须是设备ID。查看页面 here.
但我认为这里的实际问题是你的opencv无法读取你传递的视频以及你试图解决的问题。文件名或扩展名是错误的。
如果不是,只需转到路径C:\ opencv \ build \ x86 \ vc12 \ bin,复制opencv_ffmpeg abcd .dll并将其粘贴到python根目录中。这里的abcd是你的opencv版本。如果是64位设置,请复制相应的设置。