所以我有一个带有定义视野的相机,我想在图像中标注一个地方。我有点的lat和lon,我知道它们之间的角度,但我找到像素位置的等式是关闭的。附件是一张图片,以帮助我解释:
我可以解决摄像机的每个矢量到视图的中心以及视场的点和全角以及视点和点之间的角度。
以下是我目前正在使用的内容:[视场角度(绿色角度)/矢量之间的角度(蓝色角度)] * 1024(屏幕宽度)
使用数字:(14.182353 / 65)* 1024 = 223.426620并且在图像上像素值应为328 ...
我尝试的另一种方法是使用方位方程:[[相机点的方位 - 视野左侧的方位] /视野] * 1024
带数字:((97.014993-83.500000)/ 65)* 1024 = 212.913132,答案应为328 ......
有人能想到更准确的解决方案吗?
答案 0 :(得分:0)
尝试512(1-tan(blue)/tan(green/2))
,左边是蓝色。
如果蓝色在右侧,您可以将其视为负数,以获得512(1+tan(blue)/tan(green/2))
。
<强>解释强>
让C
成为相机,d
是标有328
的点,E
是视野的中心,L
是视野的左端点,以便您想要找到dL
。然后(左边是蓝色):
dL+dE = EL = 512
tan(green/2)=EL/CE
tan(blue)=dE/CE
然后tan(blue)/tan(green/2) = dE/EL = (512-dL)/512
,你就可以解决dL
。
向右走是相似的(或者你可以使用负距离,一切都很好)。