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