I have this code trying to capture a frame from my webcam on raspberry pi, and saving it as an image. I use opencv 2, but I get strange errors when I run the code..
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);
This is what the program returns:
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
What is wrong here?
Reading (cam.read()
) from a VideoCapture
returns a tuple (return value, image)
. With the first item you check wether the reading was successful, and if it was then you proceed to use the returned image
.
This is documented at https://opencv-tutorial.readthedocs.io/en/latest/intro/intro.html#capture-live-video