【发布时间】:2021-08-02 21:48:26
【问题描述】:
我目前的任务是在 C# 中为 Onvif 摄像机实现一些 PTZ 操作。我的相机有 360 度平移、220 度倾斜、63 度水平 FOV 和 37 度垂直 FOV。
现在,我目前在 WPF 中有一个视频源,可以显示 FOV 内的所有内容。我希望能够将相机对准我点击的任何位置。我可以轻松获得点击的 x/y 坐标,但我不确定如何进行有意义的转换。
ONVIF API 接受 X 和 Y 介于 -1 和 1 之间的 Pan 和 Tilt 向量。我可以收集的关于相机馈送的唯一数据是它的当前 X 和 Y 向量(介于 -1 和 1 之间),即视频输入 X 和 Y(像素),以及我点击的点的 X 和 Y。
我已经尝试了所有我能想到的计算来获得一个相对移动或绝对移动的向量。我使用来自this post 的评论来计算基于像素增量的度数增量,但结果似乎并不接近。我使用this post 中的公式来获得平移和倾斜值,但我不太确定如何以有用的方式使用结果。
我尝试获取距离百分比并将其应用于当前位置矢量,但也没有成功。
我猜我最好的选择是找到一个相对移动,因为找到一个只有 FOV 的绝对向量似乎很困难。如果有人对我如何在没有太多麻烦的情况下计算它有任何见解,将不胜感激。
【问题讨论】: