web-dev-qa-db-ja.com

Pythonでウェブカメラにアクセスするにはどうすればよいですか?

Pythonからウェブカメラにアクセスしたいのですが。

VideoCapture 拡張機能( tutorial )を使用してみましたが、それはあまりうまくいきませんでした。解像度が少し遅いなどの問題を回避する必要がありました> 320x230、場合によっては明らかな理由なしにNoneを返します。

Pythonからウェブカメラにアクセスするより良い方法はありますか?

55
Rodrigo

OpenCVはウェブカメラからのデータ取得をサポートしており、デフォルトでPythonラッパーが付属しています。OpenCVPython拡張機能(cv2と呼ばれる)にはnumpyもインストールする必要があります働く。 2019年以降、これらのライブラリの両方をpipでインストールできます:pip install numpypip install opencv-python

OpenCVとPythonの使用に関する詳細情報

opencvとpythonを使用してWebカメラフィードを表示する からコピーした例:

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")
52
John Montgomery

これは@John Montgomeryへのコメントだったはずですが、私の担当者はコメントを許可していません。あなたの答えは素晴らしいですが、少なくともWindowsでは、行がありません

vc.release()

cv2.destroyWindow("preview")

これがないと、カメラリソースはロックされ、pythonコンソールが強制終了されるまで再びキャプチャできません。

13
Robert

gstreamerはウェブカメラの入力を処理できます。よく覚えていれば、pythonバインディングがあります!

1
Kknd