LoginSignup
28

More than 3 years have passed since last update.

posted at

OpenCVでネットワークカメラの映像を処理する

ネットワークカメラの画像を処理したい

USBカメラの画像をOpenCVで処理するサンプルはよく見かけますが、ネットワーク・カメラを使用した場合にどのようにコードを記述して良いのかわからなかったので試してみました。

デバイス指定時にrtspのURLを指定するだけでOK!

結論から言うと、以下のようにキャプチャする際にrtspのURLを指定すればOKです。
使用するカメラによって、rtspのパスは異なりますが、今回使用したIODataのNS210では、ipcam_h264.sdpというパスが指定されていました。(設定画面から自由に変更することが可能です。)

rtsp://user:password@ip:port/ipcam_h264.sdp

コード例

実際のコードのサンプルを以下に示します。
USBカメラと同様のコードで表示が可能です。
なお、USB接続と比べると多少のラグがありますので、ネットワークカメラ側でrtspで送信する動画の解像度やビットレートを調整しましょう。

camera.py
import cv2

# rtspのURL指定でキャプチャするだけ
capture = cv2.VideoCapture('rtsp://admin:password@192.168.0.1:47614/ipcam_h264.sdp')

while(True):
    ret, frame = capture.read()
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

capture.release()
cv2.destroyAllWindows()

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
28