相机图像中的像素到角度转换

计算科学 线性代数 计算机视觉 几何学
2021-12-27 04:39:19

我正在尝试根据方位角和仰角以及镜头之间的匹配点来定位我在相机图像中看到的点。单个镜头的不同之处仅在于围绕相机中心的旋转(大致)。它不起作用(正如我将在下面解释的那样),我正在寻找我可能做错的事情。

我尝试了不同的事情,但这就是我现在正在做的事情:假设我倾斜了我的相机(围绕x-轴)某个角度α并旋转它(围绕y-轴)由β. 假设我的镜头给了我一个焦距为的透视投影d, 我可以表示像素(i,j)作为向量

v=dz+ix+jy,
在哪里x,y,z是旋转的标准基的单位向量αβ围绕 x 轴和 y 轴,分别。 v然后表示 3D 空间中的点,CMOS 中的感光细胞在其感知真实空间中的点时所在的点。

v=(v1,v2,v3). 然后我应该能够计算方位角ϕ和海拔ψwrt。一个未旋转的取为:

ϕ=arctan(v1v3)andψ=arcsin(v2|v|).

但是,这不起作用。也就是说,它或多或少不会倾斜相机。但是说我有一个机会αβ不为零。然后,出现在那个镜头和其他镜头中的点α要么β是零不出来相同的方位角和仰角。似乎它们通常聚集在该镜头的中心周围太多。

问题之一是有很多事情可能会妨碍我,比如以下任意组合:

  • 扭曲的相机图像
  • 焦距错误
  • 错误的旋转角度
  • 围绕离焦点太远的点旋转。

我正在为上述方法寻找更多潜在的错误来源和(无效)验证。

在此处输入图像描述

以上是迄今为止该过程结果的可视化:白色水平轴和垂直轴分别是方位角和仰角。扭曲的矩形是各个镜头的边界。很难解释这些点到底是什么,但本质上,具有相同颜色的点在现实世界中是相同的,因此应该出现在相同的绝对方位角和仰角上。这些点形成扭曲的形状,而不是矩形。您可以看到,在每个海拔高度上,来自每个摄像机图像的点在摄像机图像中心周围显得越来越收缩。

0个回答
没有发现任何回复~