2017-06-28 17 views
0

私はOnvifカメラを駆動するためにONVIFクライアントをC++で実装しています。Onvif - 倍率を得る

倍率(x1はズーム分で、x200はズームなどで最大)を取得する必要がありますが、これまでのところ、PTZ値(パン、チルト&ズーム率)を取得することしかできません。パンとチルトを%から度に変換するのは簡単ですが、倍率を計算する方法はわかりません。

私はWSDLファイルを見ましたが、私は何が必要なのか分かりません。

私は大丈夫だと思う:

  • 直接(インスタンスのx64用)倍率レンズの視野の

  • 現在のフィールドを私に言っサービス(例えば12°の場合) 。私は簡単にビューの最大のフィールドを取得し、拡大率を計算することができます。

    magnification_factor = current_field_of_view/field_of_view_maxカメラの画分&最大フィールド

  • current_field_of_view = min_field_of_view +( max_field_of_view - min_field_of_view)*(1-ズーム) magnification_factor = current_field_of_view/field_of_view_max

しかし、私はそのインターフェースの中には何も見ません。

誰かが助けることができますか?

[編集:解決策が見つから]

私は仕様で常に利用可能である倍率の最大値を設定するようにユーザーに求めてきました。私は式と現在の倍率を計算する:

current_mag = 1 + current_zoom * (max_mag - 1) 

答えて

1

ズーム倍率がPTZサービスにZoomLimitsデータ内の各デバイスによって指定された最小値と最大値の間の値です。残念ながら、これは実際の値を表す必要はなく、しばしば0.0〜1.0の間です。

デバイスWSDLでGetDeviceInformationをリクエストし、実際のズーム機能を実際の値で知っていれば、それらを保存してアプリケーションのモデル/製造元と比較することができます。

+0

はい、多かれ少なかれ私がやったことです。私は、常にスペックで利用可能な倍率の最大値を設定するようにユーザーに求めました。次に、current_mag = 1 + current_zoom *(max_mag - 1)という式で現在の倍率を計算します。 –

関連する問題