Onvif - 获取放大因子

时间:2017-06-28 15:19:43

标签: c++ camera wsdl onvif

我正在C ++中实现一个ONVIF客户端,以便驱动Onvif相机。

我需要获得放大系数(例如,变焦最小值x1,最大变焦倍数x200),但到目前为止,我只能设置获得PTZ值(平移,倾斜和放大百分比)。很容易将平移和倾斜从%转换为度,但我不知道如何计算放大系数。

我查看了WSDL文件,但我看不到我需要的内容。

我会没事的:

  • 服务直接告诉我放大系数(例如x64)

  • 镜头的当前视野(例如12°)。我可以轻松获得最大视野并计算放大系数:

    magnification_factor = current_field_of_view / field_of_view_max

  • min&相机的最大视野:

    current_field_of_view = min_field_of_view +(max_field_of_view - min_field_of_view)*(1-zoom) magnification_factor = current_field_of_view / field_of_view_max

但我在界面中没有看到任何内容。

有人可以帮忙吗?

[编辑:找到解决方案]

我已要求用户设置放大倍数的最大值,该值在规格中始终可用。然后我用公式计算当前放大率:

current_mag = 1 + current_zoom * (max_mag - 1) 

1 个答案:

答案 0 :(得分:1)

缩放系数是PTZ服务中ZoomLimits数据中每个设备指定的最小值和最大值之间的值。不幸的是,这不必代表任何真实世界的价值,通常介于0.0和1.0之间。

您可以在设备WSDL中执行,请求GetDeviceInformation,如果您知道实际值的实际缩放功能,则可以存储它们并与应用程序中的模型/制造商进行比较。