ラズベリーパイ(Raspberry Pi)にWebカメラを接続して動画を撮影する方法

  • URLをコピーしました!

今回はラズベリーパイでお手軽の動画撮影が可能なWebカメラの使い方を解説したいと思います。
防犯カメラや生き物の観察など色々な用途に応用できます。

また、OpenCVの活用事例についても以下の記事で解説していますので、あわせてご覧ください。

目次

今回使用するUSBカメラ

今回使用するカメラはロジクール製のWebカメラでUSB接続できるタイプのものを用意しました。普通にアマゾンなどで販売されているものです。

ロジクール Webカメラ C270n ブラック HD 720P ウェブカム ストリーミング 小型 シンプル設計 ウェブカメラ 国内正規品 2年間メーカー保証

写真のようにRaspberri Pi 4のUSBコネクタに差し込むだけで、ハードウェアの準備は完了です。リボンケーブルで接続するタイプのカメラモジュールよりもフレームレートは落ちますが手軽に扱えますし、価格も安いです。

ちなみにフレームレートが30fpsくらいほしいよという方には、以下の記事でカメラモジュールの使い方も解説していますのでご覧ください。

OpenCVのインストール

USBカメラから画像を取り込む際に使用する画像処理ライブラリ、OpenCVをインストールしていきます。

インストール手順

まずはpipを最新にアップブレードします。

pip3 install --upgrade pip

続いてOpenCVを使用するのに必要なライブラリをインストールします。

sudo apt-get install libatlas-base-dev

OpenCVの最新版をインストールします。

sudo pip3 install opencv-python

これでインストールは完了です。

インストール時にエラーが発生する場合

私の環境ではOpenCVインストール時に以下のようなエラーが発生しました。

RuntimeError: module compiled against API version 0xf but this version of numpy is 0xd

元々入っていたNumpyとOpenCVのバージョン不整合が原因のようですので、Numpyをアップグレードします。

sudo pip3 install numpy --upgrade

これでバージョン不整合が解消されました。

作成したプログラム

USBカメラで撮影した画像を取り込み、動画としてウィンドウで表示するプログラムをPythonで作成しました。

import cv2

#VideoCaptureオブジェクト取得
cap = cv2.VideoCapture(-1)

print("start")

while(True):
    #フレームを取得
    ret, frame = cap.read()
    
    if not ret:
        print("not capture")
        break
        
    #画面サイズを指定
    print(frame.shape)
    frame = cv2.resize(frame, (640, 480))
    
    #取得したフレームをウインドウ上に表示する
    cv2.imshow("frame", frame)
    
    #キーボード入力処理
    key = cv2.waitKey(1)
    if key == 13: #enterキーの場合処理を抜ける
        break
        
#カメラデバイスクローズ
cap.release()

#ウィンドウクローズ
cv2.destroyAllWindows()

動作確認

先ほどのプログラム(usbcam.py)をラズベリーパイのデスクトップ環境で使用できる開発ツールThonny(標準で入っています)で開いて実行してみてください。

画面右上のウインドウでカメラの映像を確認することができました。

カメラの映像をデスクトップに表示

まとめ

今回はカメラモジュールよりも手軽に使えるWebカメラでの撮影方法について解説しました。このWebカメラを使った防犯カメラとして使用する方法も以下の記事で解説していますので、あわせてご覧ください。



効率的にPythonのプログラミングを学びたい方はオンラインスクールがおすすめです。

DMMが運営するPythonオンラインスクール:DMM WEBCAMP 学習コース(Pythonコース)



それでは、また次の記事でお会いしましょう。

よかったらシェアしてね!
  • URLをコピーしました!
目次