计算给定球体上扭曲椭圆的偏移量

Posted

技术标签:

【中文标题】计算给定球体上扭曲椭圆的偏移量【英文标题】:Calculate offset given distorted ellipse on sphere 【发布时间】:2017-03-10 22:59:18 【问题描述】:

我有一个在球面上移动的圆。如果相机角度是固定的,有没有办法计算原始圆与中心的偏移量,因为当圆移动到球体边缘时形成的扭曲椭圆(从相机看)? 我查看了列表的平面和天梭准线(因为我正在处理眼球旋转),但似乎都没有提供明确的解决方案。我也看过关于眼球转动的论文,但它们似乎专注于生理方面而不是运动的数学。 换句话说:在上图中,给定外部九张图像中的一张以及中间一张,我想计算圆圈(即虹膜)从其位置移动/旋转了多少中间的图片。我认为这与将扭曲的椭圆与圆进行比较有关,但我似乎不知道怎么做。有什么公式吗?

【问题讨论】:

您是在寻找椭圆中心的位置、瞳孔中心的位置还是顶点的位置(瞳孔中心在地球上的投影)?考虑“theta”平面的横截面将使事情变得更简单。 准确地说,我正在寻找椭圆的中心。 你知道椭圆的中心不是瞳孔的确切中心吗? 你试过看横截面吗? 我不确定横截面会有什么帮助。那么还有什么其他措施可以计算出瞳孔的确切中心呢?我已经尝试搜索方法,但无济于事。 【参考方案1】:

虽然虹膜完全可见(位于最近的半球),但您可以将其视为平面圆形物体,因此它的图像是右椭圆。

Phi 是眼轴的倾斜角(在您的图片上绘制),Theta 是眼轴绕该轴旋转的角度

semimajor axis a is equal to iris radius R
semiminor axis b is equal to R * Cos(Theta), 
      Theta = Arrcos(b/a)
Phi = Arctan(a axis tilt angle)

要选择 Theta 值的精确符号,您还需要确定椭圆相对于大白圆中心的位置(第一张和最后一张图像分别为 -45 和 +45 度)

【讨论】:

嗨,谢谢。不过,我确实有一些澄清要问你 - 我不明白你建议如何计算角度 Phi?我理解 phi,但从概念上讲,theta 是什么?绕轴的旋转发生在哪里?不是只涉及一个旋转(即眼球的旋转,如 9 张图片)? 只有一次旋转,但它是关于某个任意轴的。您可以通过围绕坐标轴进行两次旋转(例如,先围绕 OX,然后围绕 OY)获得相同的结果。例如,将en.wikipedia.org/wiki/Rodrigues%27_rotation_formula 与围绕轴的三个旋转进行比较。 (您的情况更受限制)。但是你想得到什么结果?

以上是关于计算给定球体上扭曲椭圆的偏移量的主要内容,如果未能解决你的问题,请参考以下文章

如果 fseek 中的给定偏移量超出最后一个字符会发生啥

什么是偏移量 怎么计算

我想切换给定偏移量的位数。

确定给定地址的页码和偏移量

(操作系统)计算页码和页偏移量

以python格式字符串计算时区偏移量[重复]