我有这段代码试图从树莓派上的网络摄像头捕获帧并将其另存为图像。我使用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);

程序返回以下内容:
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

这是怎么了

最佳答案

cam.read()读取(VideoCapture)将返回一个元组(return value, image)。对于第一个项目,您检查是否读取成功,如果读取成功,则继续使用返回的image

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

关于python - cv2.videocapture.read()不返回一个numpy数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13989627/

10-12 06:11