Как программно захватывать фотографию веб-камеры - программирование
Подтвердить что ты не робот

Как программно захватывать фотографию веб-камеры

Какой самый простой способ в Ubuntu 11.10 программно направлять (либо из Bash, либо на Python) пользователя, чтобы он сам фотографировал веб-камеру?

Я могу запустить простое приложение, такое как Cheese, но я не вижу простого способа сразу обнаружить или получить фотографию, которую он захватывает. Я также могу получать и записывать поток веб-камеры напрямую через OpenCV, но мне пришлось бы изобретать графический интерфейс для общения с пользователем.

Есть ли какой-либо script, который является счастливым носителем, где я могу его запустить, и он печатает на stdout имя файла изображения, которое пользователь взял?

4b9b3361

Ответ 1

Если вы хотите сделать это через Python, похоже, у вас есть несколько вариантов. Библиотека Pygame имеет возможность доступа к камерам.

если это неудовлетворительно, вы можете пойти гораздо ниже и получить доступ к Video 4 Linux 2 API напрямую, используя вызовы ioctl, используя Python fcntl library.

Ответ 2

Мне нравится использовать 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 для записи в другие форматы.