J'implémente en C++ un client ONVIF pour piloter des caméras Onvif.Onvif - Facteur d'agrandissement
J'ai besoin d'obtenir le facteur d'agrandissement (x1 en zoom min, x200 en zoom max par exemple), mais jusqu'ici je n'arrive qu'à obtenir des valeurs PTZ (pan, tilt & zoom en pourcentage). Il est facile de transformer le panoramique et l'inclinaison de% en degrés, mais je ne sais pas comment calculer le facteur d'agrandissement.
J'ai regardé les fichiers WSDL mais je ne vois pas de quoi j'ai besoin.
Je serais bien avec:
soit un service de me dire directement le facteur d'agrandissement (par exemple x64)
le champ actuellement de vue de la lentille (par exemple 12 °) . Je peux facilement obtenir le champ max de vue et calculer le facteur d'agrandissement alors:
magnification_factor = current_field_of_view/field_of_view_max
les min & champs max de vue de la caméra:
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
Mais je ne vois rien dans l'interface.
Quelqu'un peut-il aider?
[edit: solution trouvée]
J'ai demandé à l'utilisateur de définir la valeur maximale du grossissement qui est toujours disponible dans les spécifications. Ensuite, je calculer le grossissement de courant à la formule:
current_mag = 1 + current_zoom * (max_mag - 1)
Oui, c'est plus ou moins ce que j'ai fait. J'ai demandé à l'utilisateur de définir la valeur maximale de l'agrandissement qui est toujours disponible dans les spécifications. Ensuite, je calcule le grossissement actuel avec la formule: current_mag = 1 + current_zoom * (max_mag - 1) –