如何以编程方式捕获网络摄像头照片

问题描述 投票:19回答:2

Ubuntu 11.10中最简单的方法是以编程方式引导(从Bash或Python)用户捕获自己的网络摄像头照片?

我可以启动一个简单的应用程序,如奶酪,但我没有看到一种简单的方法来立即检测或检索它捕获的照片。我也可以通过OpenCV直接访问和记录网络摄像头流,但我必须重新发明GUI以与用户进行通信。

是否有任何类型的脚本是一个快乐的媒介,我可以在其中启动它,并在stdout上打印用户拍摄的图像的文件名?

python video ubuntu webcam
2个回答
14
投票

如果你想通过Python做到这一点,看起来你有几个选择。 The Pygame library has the ability to access cameras

如果这不令人满意,你可以使用Video 4 Linux 2 API直接使用ioctl调用更低级别访问Python's fcntl library


38
投票

我喜欢使用pygame - 例如,它不需要你打开Pygame SDL窗口,这与你想用它来捕获键盘事件不同。

import pygame.camera
pygame.camera.init()
cam = pygame.camera.Camera(pygame.camera.list_cameras()[0])
cam.start()
img = cam.get_image()
import pygame.image
pygame.image.save(img, "photo.bmp")
pygame.camera.quit()

虽然Pygame只保存未压缩的“bmp”文件 - 你可能想把它与PIL结合起来写入其他格式。

© www.soinside.com 2019 - 2024. All rights reserved.