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

标签 python opencv v4l2 ftputil

我有这段代码试图从我在树莓派上的网络摄像头捕捉一帧画面,并将其保存为图像。我使用 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

这里有什么问题吗?

最佳答案

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

这记录在 https://opencv-tutorial.readthedocs.io/en/latest/intro/intro.html#capture-live-video

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

相关文章:

使用 V4L2 捕获网络摄像头流失败

python - 任何 __future__ 导入 range-xrange 不兼容?

python - git-pylint-commit-hook 不检查所有项目文件

python - pySerial:如何检查当前波特率

c++ - Dicom Toolkit (DCMTK) - 如何获取窗口中心和宽度

python - Python OpenCV 中 VideoCapture 的内存泄漏

python - 来自外部驱动器的 Subprocess.call()

c++ - Opencv - 从特征匹配中获取像素坐标

numpy - 轴0超出维度0数组的范围

c++ - Linux 中的 OpenCv VideoCapture 错误 - 不支持设置属性 #0