Как программно сделать снимок с веб-камеры

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

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

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


person Cerin    schedule 14.03.2012    source источник
comment
См. также: Как я могу снимать изображения с камеры с помощью Python?   -  person Martin Thoma    schedule 10.02.2015
comment
Ubuntu - программа CPP для захвата и извлечения кадра и сохранения в виде файла изображения в локальной папке. * FFMPEG * V4L2 github.com/abdullahfarwees/camera-frame-extracter   -  person Abdullah Farweez    schedule 03.09.2018


Ответы (2)


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

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

person Multimedia Mike    schedule 14.03.2012
comment
Ссылка на библиотеку Pygame теперь неверна. Запрошенный URL-адрес /docs/tut/camera/CameraIntro.html не найден на сервере. - person Andark; 08.12.2016

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

person jsbueno    schedule 15.03.2012
comment
К настоящему времени pygame может сохранять файлы в форматах png, jpg, tiff и bmp. По крайней мере, это были те, которые я тестировал. Просто измените расширение, и pygame обнаружит его. - person steffen; 30.03.2016
comment
pygame.camera.quit() не работает; вместо этого используйте cam.stop(). - person ingroxd; 27.09.2017