How to programmatically capture a webcam photo

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-03 02:27:34

问题


What's the simplest way in Ubuntu 11.10 to programmatically guide (either from Bash or Python) the user to capture a webcam photo of themselves?

I can launch a simple app like Cheese, but I don't see an easy way to immediately detect or retrieve the photo it captures. I can also access and record the webcam stream directly via OpenCV, but I'd have to reinvent the GUI to communicate with the user.

Is there any kind of script that's a happy medium, where I can launch it, and it prints on stdout the filename of the image the user took?


回答1:


If you want to do this via Python, it looks like you have a few options. The Pygame library has the ability to access cameras.

If that's unsatisfactory, you can go much lower level and access the Video 4 Linux 2 API directly using ioctl calls using Python's fcntl library.




回答2:


I like using pygame for that - it does not require you to open a Pygame SDL window, unlike when you want to use it to capture keyboard events, for example.

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()

Though Pygame will only save uncompressed "bmp" files - you may want to combine it with PIL to write to other formats.



来源:https://stackoverflow.com/questions/9711946/how-to-programmatically-capture-a-webcam-photo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!