0

实际上我正在加载一个视频k=cv2.VideoCapture("it.mp4"),它位于同一个文件夹中,但是当我检查它是否打开时,它显示“False”。当我k.open()用来打开它时,它显示了这个错误:

回溯(最后一次调用):
文件“”,第 1 行,
类型错误:找不到所需的参数“文件名”(位置 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
4

2 回答 2

2

通过查看您的代码,很容易找出您收到此错误的原因。原因是您使用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
于 2017-09-10T17:11:56.553 回答
0

您需要为 cap.open() 传递一个参数。在你的情况下 -

cap.open("it.mp4")

如果您正在使用相机,它必须是设备 ID,或者是您想要读取的文件名。在这里查看页面

但我认为这里的实际问题是您的 opencv 无法读取您传递的视频,而这正是您要解决的问题。文件名或扩展名错误。

如果两者都不是,只需转到路径 C:\opencv\build\x86\vc12\bin ,复制 opencv_ffmpeg abcd .dll 并将其粘贴到 python 根目录中。abcd 这是你的 opencv 版本。如果是 64 位设置,请复制相应的设置。

于 2017-09-10T17:36:07.523 回答