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 ftputil
import cv2
cam = cv2.VideoCapture()
#cam.set(CV_CAP_PROP_FRAME_WIDTH, 640)
#cam.set(CV_CAP_PROP_FRAME_HEIGHT, 480)
while True:
#call("streamer -q -f jpeg -s 640x480 -o ./current.jpeg", shell=True)
#time.sleep(0.2);
#call("killall -q streamer", shell=True)
cam.open(-1)
image = cam.read()
cv2.imwrite("current.jpeg",image)
host = ftputil.FTPHost()
#host.remove("/domains//public_html/webcam.jpg")
host.upload("./current.jpeg", "/domains//public_html/webc$
host.close()
host = ftputil.FTPHost()
filename = str(time.time()) + ".jpg"
#host.remove("/domains//public_html/webcam.jpg")
host.upload("./current.jpeg", "/webcamarchive/"+filename, mode='b')
host.close()
time.sleep(10);
You can ignore the ftp part, and the commented lines.. 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?