在Ubuntu 11.10中,以编程方式引导用户(从Bash或Python)捕获自己的网络摄像头照片的最简单方法是什么?
我可以启动一个简单的应用程序,比如Cheese,但我看不到一种简单的方法来立即检测或检索它捕获的照片。我也可以直接通过OpenCV访问和记录摄像头流,但我必须重新发明图形用户界面来与用户交流。
有没有一种合适的脚本,我可以在其中启动它,它会在stdout上打印用户拍摄的图像的文件名?
发布于 2012-03-15 07:49:46
如果你想通过Python做到这一点,看起来你有几个选择。The Pygame library has the ability to access cameras。
如果这不能令人满意,您可以进入更低的级别,使用Python's fcntl library通过ioctl调用直接访问Video 4 Linux 2 API。
发布于 2012-03-15 09:31:58
我喜欢使用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结合使用,以写入其他格式。
https://stackoverflow.com/questions/9711946
复制相似问题