cv2.videocapture.read()不返回numpy数组

Gri*_*ixM 7 python opencv v4l2 ftputil

我有这个代码试图从我的网络摄像头捕获一个框架覆盆子pi,并将其保存为图像.我使用opencv 2,但是当我运行代码时出现了奇怪的错误.

import time
import sys
from subprocess import call
import cv2

cam = cv2.VideoCapture()

while True:
        cam.open(-1)
        image = cam.read()
        cv2.imwrite("current.jpeg",image)
        time.sleep(10);
Run Code Online (Sandbox Code Playgroud)

您可以忽略ftp部分和注释行..这是程序返回的内容:

VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument

Traceback (most recent call last):
  File "kvamskogen.py", line 18, in <module>
    cv2.imwrite("current.jpeg",image)
TypeError: <unknown> is not a numpy array
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

mmg*_*mgp 14

Reading(cam.read())从VideoCapture一个元组返回一个元组(return value, image).使用第一个项目,您检查读数是否成功,如果是,那么您继续使用返回的image.

这在http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html上有记录.