Pythonを使用してOpenCVとONVIFを組み合わせることで、監視カメラの操作が可能になります。この記事では、その手順を詳しく説明します。

必要なモジュール

以下のPythonモジュールが必要です:

pip install rtsp
pip install pysimplegui
pip install --upgrade onvif_zeep

カメラ映像の受信

まず、RTSPライブストリームURLを使用してカメラ映像を受信します. 以下にそのコードの一部を示します:

import PySimpleGUI as sg
import rtsp
from PIL import Image, ImageTk

sg.theme('Dark Brown')

USER = "username" # <=自分の環境に合わせる
PASS = "password" # <=自分の環境に合わせる
IPADDR = "192.168.11.xx" # <=自分の環境に合わせる
PORT = "554"
STREAM = "stream2"
ONVIF_PORT = "2020"

# 以下省略

パンチルト対応

次に、パンチルト対応を行います. これにより、カメラの上下左右の回転やズームが可能になります.

class Cmd(Enum):
    LEFT = 'left'
    RIGHT = 'right'
    UP = 'up'
    DOWN = 'down'
    IN = 'zoomin'
    OUT = 'zoomout'

class Cam():
    def __init__(self, host, user, password):
        self.__url = "http://{}:{}@{}/web/cgi-bin/hi3510/".format(user, password, host)
        self.__ptzctrl('stop')

    def ptz(self, cmd, sec):
        self.__ptzctrl(cmd.value)
        sleep(sec)
        self.__ptzctrl('stop')

    def preset(self, num):
        num = str(num - 1)
        requests.get("{}/preset.cgi?-act=goto&-number={}".format(self.__url, num))

    def __ptzctrl(self, cmdStr):
        requests.get("{}/ptzctrl.cgi?-step=0&-act={}&-speed=63".format(self.__url, cmdStr))

以上の手順により、Pythonを使用してOpenCVとONVIFを組み合わせた監視カメラの操作が可能になります。さらに詳しい情報や完全なコードは、参考リンクをご覧ください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です