2012-03-14 10 views
16

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

私はチーズのような簡単なアプリを起動できますが、キャプチャした写真をすぐに検出または取得する簡単な方法はありません。私はOpenCV経由でWebカメラストリームに直接アクセスして記録することもできますが、ユーザーと通信するためにGUIを再作成する必要があります。

私はそれを起動することができる幸せな媒体であるスクリプトはありますか?ユーザーが撮影した画像のファイル名をstdoutに表示しますか?

+0

'sudo apt-get install streamer' – wim

+1

も参照してください:[Pythonでカメラの画像を撮るには?](http://stackoverflow.com/q/28418962/562769) –

答えて

12

これをPython経由で実行したい場合は、いくつかのオプションがあるように見えます。 The Pygame library has the ability to access cameras

これが満足できない場合は、Python's fcntl libraryを使用してioctl呼び出しを使用して、はるかに低いレベルになり、Video 4 Linux 2 APIに直接アクセスできます。

+0

Pygameライブラリへのリンクは間違っています。要求されたURL /docs/tut/camera/CameraIntro.htmlがサーバー上に見つかりませんでした。 – Andark

35

私はそれのために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とそれを組み合わせるすることができます。

+2

これでpygameはpng、jpg、tiff、bmpに保存できます。少なくとも私はテストしたものだった。拡張子を変更するだけで、pygameがそれを検出します。 – steffen

+0

pygame.camera.quit()は機能しません。代わりにcam.stop()を使用してください。 – ingroxd

関連する問題