Pythonからウェブカメラにアクセスしたいのですが。
VideoCapture 拡張機能( tutorial )を使用してみましたが、それはあまりうまくいきませんでした。解像度が少し遅いなどの問題を回避する必要がありました> 320x230、場合によっては明らかな理由なしにNone
を返します。
Pythonからウェブカメラにアクセスするより良い方法はありますか?
OpenCVはウェブカメラからのデータ取得をサポートしており、デフォルトでPythonラッパーが付属しています。OpenCVPython拡張機能(cv2
と呼ばれる)にはnumpy
もインストールする必要があります働く。 2019年以降、これらのライブラリの両方をpipでインストールできます:pip install numpy
pip install 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")
これは@John Montgomeryへのコメントだったはずですが、私の担当者はコメントを許可していません。あなたの答えは素晴らしいですが、少なくともWindowsでは、行がありません
vc.release()
前
cv2.destroyWindow("preview")
これがないと、カメラリソースはロックされ、pythonコンソールが強制終了されるまで再びキャプチャできません。
gstreamerはウェブカメラの入力を処理できます。よく覚えていれば、pythonバインディングがあります!