【问题标题】:extracting frames from a video using opencv and python使用opencv和python从视频中提取帧
【发布时间】:2016-04-18 18:26:00
【问题描述】:

我使用了这个代码。

import cv2

vc = cv2.VideoCapture('test2.mp4')
c=1

if vc.isOpened():
    rval , frame = vc.read()

else:
    rval=False
    print("hello")

while rval:
    rval, frame = vc.read()
    cv2.imwrite(str(c) + '.jpg',frame)
    c = c + 1
    cv2.waitKey(1)

vc.release()

它在屏幕上打印出你好,这意味着 vc.isOpened() 没有调用。 我不明白似乎是什么问题,没有错误。

【问题讨论】:

  • 您可能缺少所需的驱动程序
  • 什么样的驱动程序?

标签: python opencv video frames


【解决方案1】:

代码没有问题。 vc 对象未正确分配。这就是vc.isOpened() 得到False 的原因。如果你用 python 解释器尝试整个代码,你可以检查vc 的值。你的vc.isOpened() 保持False 值,这就是为什么它进入else 条件并打印hello。由于初始化失败,它无法读取和rval 也得到False 值。所以while 循环没有执行。

在这里,我展示了一个网络摄像头读取及其值的小演示。

In [1]: import cv2
In [2]: a = cv2.VideoCapture(0)
In [3]: a.isOpened()
Out[3]: True
In [6]: ret,frame = a.read()
In [7]: ret
Out[7]: True

因此您必须检查视频初始化的位置或您的视频捕获对象。 vc = cv2.VideoCapture('test2.mp4')

【讨论】:

  • VideoCapture 中的 0 参数是什么?
  • @smit 通常0 属于您机器中的网络摄像头。如果您连接多个,它会走得更远。
猜你喜欢
  • 2018-03-09
  • 1970-01-01
  • 2020-06-27
  • 1970-01-01
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
相关资源
最近更新 更多