首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在rpi3上通过python运行网络摄像头

如何在rpi3上通过python运行网络摄像头
EN

Stack Overflow用户
提问于 2016-06-20 15:24:15
回答 3查看 2.3K关注 0票数 5

我试着用MS和我的覆盆子-pi-3。当我键入以下命令时,它在命令行上工作:

代码语言:javascript
复制
$ fswebcam img.jpg
Trying source module v4l2...
/dev/video0 opened.
...
Writing JPEG image to 'img.jpg'  # this works fine

现在,我想通过python代码运行摄像机:

代码语言:javascript
复制
import pygame
import pygame.camera
from pygame.locals import *
DEVICE = '/dev/video0'
SIZE = (640, 480)  # I also tried with img size (384,288), same error
FILENAME = 'capture.jpg'
pygame.init()
pygame.camera.init()
camera = pygame.camera.Camera(DEVICE, SIZE)
camera.start()   # error on executing this line
pygame.image.save(screen, FILENAME)
camera.stop()

报告的错误是:

代码语言:javascript
复制
SystemError: ioctl(VIDIOC_S_FMT) failure: no supported formats

我在这里很困惑。摄像机是由rasp-pi支持的,所以看起来我的python代码必须在某个地方更新。你能帮上忙吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-08 16:53:26

试着用这个:

代码语言:javascript
复制
camera = pygame.camera.Camera(pygame.camera.list_cameras()[0])
camera.start()
img = camera.get_image()
pygame.image.save(img, FILENAME)
票数 1
EN

Stack Overflow用户

发布于 2019-01-31 06:55:27

有问题,一旦我停止一个进程使用视频流,错误得到解决。

详细信息

我也有同样的问题。而当

代码语言:javascript
复制
/dev/video0

,camera.start()将导致相同的错误。

我跑了

代码语言:javascript
复制
   sudo motion

早些时候。所以我验证了服务运行,停止了它,然后尝试玩游戏。而且起作用了。

代码语言:javascript
复制
   sudo service --status-all
   sudo service motion stop
票数 0
EN

Stack Overflow用户

发布于 2019-01-31 12:52:04

您还可以使用以下内容:

代码语言:javascript
复制
 import cv2
cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)
if vc.isOpened(): 
rval, frame = vc.read()
else:
rval = False

while rval:
cv2.imshow("preview", frame)
rval, frame = vc.read()
key = cv2.waitKey(20)
if key == 27:  # exit on ESC
    break
cv2.destroyWindow("preview")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37926228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档