Math 在视野中查找像素位置

Math 在视野中查找像素位置,math,camera,location,geocoding,Math,Camera,Location,Geocoding,所以我有一个摄像头,它有一个定义的视野,一个我想在图像中标记的位置。我有两个点的纬度和经度,我知道它们之间的角度,但是我找到像素位置的方程是关闭的。随附的图片有助于我的解释: 我可以解出摄像机的每个向量到中心和点,以及整个视场的角度,以及中心和点之间的角度 以下是我目前使用的:【视野角度(绿色角度)/向量之间的角度(蓝色角度)】*1024(屏幕宽度) 数字:(14.182353/65)*1024=223.426620,图像上的像素值应为328 我尝试的另一种方法是使用方位方程:[[点对相机的方

所以我有一个摄像头,它有一个定义的视野,一个我想在图像中标记的位置。我有两个点的纬度和经度,我知道它们之间的角度,但是我找到像素位置的方程是关闭的。随附的图片有助于我的解释:

我可以解出摄像机的每个向量到中心和点,以及整个视场的角度,以及中心和点之间的角度

以下是我目前使用的:【视野角度(绿色角度)/向量之间的角度(蓝色角度)】*1024(屏幕宽度)

数字:(14.182353/65)*1024=223.426620,图像上的像素值应为328

我尝试的另一种方法是使用方位方程:[[点对相机的方位-视野左侧的方位]/视野]*1024

数字:((97.014993-83.500000)/65)*1024=212.913132,答案应该是328

有人能想出一个更准确的解决办法吗

尝试
512(1-tan(蓝色)/tan(绿色/2))
,其中蓝色在左侧为正

如果蓝色在右边,您可以将其视为负数,以获得
512(1+tan(蓝色)/tan(绿色/2))

说明:

C
作为摄像机,
d
作为标记为
328
的点,
E
作为视野的中心,
L
作为视野的左端点,这样您就可以找到
dL
。然后(蓝色向左转):

然后
tan(蓝色)/tan(绿色/2)=dE/EL=(512 dL)/512
,您可以求解
dL


向右转也会类似(或者你可以使用负距离,一切都很好)。

你能给图片中的328加上标签吗?328是该点应该位于屏幕上的像素的x值哇!非常感谢你!你是怎么想的?如果蓝色在右边,有没有办法修改此选项?@user2125844我已经更新了答案。如果你还有任何问题,请告诉我。
dL+dE = EL = 512
tan(green/2)=EL/CE
tan(blue)=dE/CE