2009-03-03 14 views
49

私はPythonから私のウェブカメラにアクセスしたいと思います。Pythonでウェブカメラにアクセスするにはどうすればいいですか?

私はVideoCapture拡張子(tutorial)を使用してみましたが、それは私にとって非常にうまく動作しませんでした、私は320x230>など、それは解像度が少し遅いですとしていくつかの問題を回避しなければならなかった、そして時にはそれが無いためNoneを返します。明らかな理由。

私のWebカメラにPythonからアクセスするには良い方法はありますか?

+0

サポートが必要なオペレーティングシステムを明確にしてください。 –

+0

も参照してください:[カメラの画像を撮影するためのPythonライブラリ](http://softwarerecs.stackexchange.com/q/18134/1834) –

+0

And [なぜWebカメラの画像は暗いですか?](http:// stackoverflow .com/q/28566972/562769) –

答えて

40

OpenCVはウェブカメラからデータを取得する機能をサポートしており、デフォルトでPythonラッパーが付属しています。numpyをインストールする必要があります(cv2)。
書いている時点(2015年1月)にはまだPython 3のサポートがないので、Python 2を使用する必要があります。

More information on using OpenCV with Python

Displaying webcam feed using opencv and pythonからコピーされた例は:

import cv2 

cv2.namedWindow("preview") 
vc = cv2.VideoCapture(0) 

if vc.isOpened(): # try to get the first frame 
    rval, frame = vc.read() 
else: 
    rval = False 

while rval: 
    cv2.imshow("preview", frame) 
    rval, frame = vc.read() 
    key = cv2.waitKey(20) 
    if key == 27: # exit on ESC 
     break 
cv2.destroyWindow("preview") 
+0

ホイールからインストールする場合、Python 3のサポートがあります。私はこのチュートリアルをうまく使いました:https://www.solarianprogrammer.com/2016/09/17/install-opencv-3-with-python-3-on-windows/ –

-2

私が使用した唯一のあなたはすでにあなたが好きではない言及したVideoCapture、である(私はそれで問題はなかったが、あなたはどのようなバグに遭遇したのですか?)

を私は見つけることができませんでしたVideoCaptureを使用するか、素敵なCライブラリを見つけてPythonラッパーを作成することができます(これは、あなたがそれに入れるよりもうまくいくかもしれません)。

+1

私は見つけた問題を定義するために質問を編集しました。 – Rodrigo

1

gstreamerはウェブカメラの入力を処理できます。私がよく覚えていると、そこにはPythonバインディングがあります!

+1

'padspストリーマ-q -c/dev/video0 -f rgb24 -Fステレオ-r 24 -s 1280x720 -t 00:10 -o test.avi'は24fpsのHDウェブカメラを10秒間記録し、 * test.avi *。 (padspは、最新のUbuntuのバージョンでオーディオを確実にキャプチャするために使用されていることに注意してください) – Pithikos

9

これは@ジョンモンゴメリーにコメントされている必要がありますが、私の担当者は私がコメントすることはできません。 あなたの答えは素晴らしいですが、Windows上で、少なくとも、なければ

cv2.destroyWindow("preview") 

は、カメラリソースがロックされている

vc.release() 

前の行が欠落している、とのpython前に再度キャプチャすることはできませんコンソールが殺される。

関連する問題