如何以编程方式捕捉摄像头照片

Ubuntu 11.10中,用户通过编程方式(从Bash或者Python)引导用户捕捉自己的摄像头照片,最简单的方法是什么?

我可以启动一个简单的应用程序,如奶酪,但我没有看到一个简单的方法来立即检测或检索它捕获的照片。 我也可以通过OpenCV直接访问和loggingnetworking摄像头stream,但是我不得不改造GUI来和用户进行交stream。

有什么样的脚本是一个快乐的媒体,我可以启动它,并在标准输出用户采取的图像的文件名?

如果你想通过Python做到这一点,它看起来像你有几个选项。 Pygame图书馆有能力访问相机 。

如果这不能令人满意,可以使用Python的fcntl库直接使用ioctl调用直接访问Video 4 Linux 2 API 。

我喜欢使用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结合使用以写入其他格式。