Onvif — получить коэффициент увеличения

Я внедряю в C ++ клиент ONVIF для управления камерами Onvif.

Мне нужно получить коэффициент увеличения (например, x1 при минимальном увеличении, x200 при максимальном увеличении), но пока мне удается получать только значения PTZ (панорамирование, наклон & увеличить в процентах). Легко преобразовать панорамирование и наклон от% до градусов, но я не знаю, как вычислить коэффициент увеличения.

Я просмотрел файлы WSDL, но не вижу, что мне нужно.

Я был бы в порядке с:

  • либо сервис, сообщающий мне коэффициент увеличения (например, x64)

  • текущее поле обзора объектива (например, 12 °). Я могу легко получить максимальное поле зрения и рассчитать коэффициент увеличения:

    коэффициент увеличения = 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-увеличение)
    коэффициент увеличения = current_field_of_view / field_of_view_max

Но я не вижу ничего из этого в интерфейсе.

Может кто-нибудь помочь?

[править: решение найдено]

Я попросил пользователя установить максимальное значение увеличения, которое всегда доступно в спецификации. Затем я рассчитываю текущее увеличение по формуле:

current_mag = 1 + current_zoom * (max_mag - 1)

0

Решение

Коэффициент масштабирования — это значение между минимальным и максимальным значением, указанным каждым устройством в данных ZoomLimits в службе PTZ. К сожалению, это не должно представлять какую-либо ценность реального мира и часто находится между 0,0 и 1,0.

Что вы можете сделать, так это в устройстве WSDL, запросить GetDeviceInformation и, если вы знаете реальные возможности масштабирования в реальных значениях, вы можете сохранить их и сравнить с моделью / производителем в вашем приложении.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]