web-dev-qa-db-ja.com

Webカメラの写真をプログラムでキャプチャする方法

ユーザーが自分のウェブカメラ写真をキャプチャするために(BashまたはPythonから)プログラムでガイドするUbuntu 11.10で最も簡単な方法は何ですか?

Cheeseのようなシンプルなアプリを起動できますが、キャプチャした写真をすぐに検出または取得する簡単な方法が見つかりません。 OpenCVを介して直接Webカメラストリームにアクセスして記録することもできますが、ユーザーと通信するにはGUIを再発明する必要があります。

幸せな媒体であり、起動できるスクリプトがあり、ユーザーが撮影した画像のファイル名を標準出力に出力しますか?

19
Cerin

Pythonでこれを行う場合、いくつかのオプションがあるように見えます。 Pygameライブラリにはカメラにアクセスする機能があります

それが不十分な場合は、はるかに低いレベルに移動し、 Pythonのfcntlライブラリ を使用してioctl呼び出しを使用して Video 4 Linux 2 API に直接アクセスできます。

14
Multimedia Mike

私はそのために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と組み合わせて他の形式に書き込むこともできます。

38
jsbueno