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

时间:2012-03-14 23:34:50

标签: python video ubuntu webcam

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

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

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

2 个答案:

答案 0 :(得分: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结合起来写入其他格式。

答案 1 :(得分:14)

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

如果不满意,您可以使用Video 4 Linux 2 API直接使用ioctl来调低Python's fcntl library。{/ p>