900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > android投影坐标转换 关于android相机:透视投影中的笛卡尔坐标系

android投影坐标转换 关于android相机:透视投影中的笛卡尔坐标系

时间:2022-11-22 17:24:58

相关推荐

android投影坐标转换 关于android相机:透视投影中的笛卡尔坐标系

我仍在为增强现实应用程序实施透视投影。我已经问过一些有关视口计算和其他摄影机问题的问题,Aldream在此主题中对此进行了解释

但是,我目前没有任何有用的值,我认为这取决于我对笛卡尔坐标空间的计算。

我有几种不同的方法可以将纬度,经度和海拔高度转换为笛卡尔坐标空间,但是似乎没有一种可以正常工作。目前,我正在使用ECEF(以地球为中心),但是我还尝试了不同的计算,例如将hasrsine公式和三角函数结合使用(根据两点之间的距离和方位角来计算x和y)。

所以我的问题是:

笛卡尔坐标空间如何影响我的透视投影?我必须在哪里"补偿"我的单位?(例如,当我使用米或厘米时)?

可以说我正在使用ECEF,而不是获得以米为单位的值,因此,例如,我的相机位于(0,0,2m高度),我的点位于(10,10,0)。现在,我可以轻松使用Wikipedia上提到的功能,然后再使用在我的其他线程(如上所述)中介绍的dx,dy,dz转换。我仍然没有得到什么:此投影如何"知道"我在坐标系中的单位是什么?我认为这是我目前正在犯的错误。我不处理坐标系的单位,因此无法从投影中获得任何好的价值。

当我使用以厘米为单位的坐标系时,透视投影的所有值都在增加。我在哪里必须"解决"这个单位问题?我是否必须将摄像机的宽度和摄像机的高度从像素"转换"为米?我是否必须将坐标系转换为像素?应该使用哪个坐标系来处理这种情况?希望你能理解我的问题。

编辑:我自己解决了。

我已经将坐标系统从ecef更改为自己的系统(使用Haversine和方位角,然后计算x,y,z),现在我得到了很好的值! :)

然后,我将尝试另一种方式来解释它。 :)

简短的答案是:笛卡尔位置的单位无关紧要,只要保持均匀即可,即只要您将此单位同时应用于场景和相机即可。

对于更长的答案,让我们回到您使用的公式...

带有:

d相对笛卡尔坐标

s可打印表面的尺寸

r"传感器" /记录表面的大小(即r_x和r_y传感器的大小及其r_z其焦距)

b可打印表面上的位置

..并进行伪尺寸分析。我们有:

[PIXEL] = (([LENGTH] x [PIXEL]) / ([LENGTH] * [LENGTH])) * [LENGTH]

无论用作LENGTH的单位,它将被均化,即仅保留比例。

例如:

[PIXEL] = (([MilliM] x [PIXEL]) / ([MilliMeter] * [MilliMeter])) * [MilliMeter]

= (([Meter/1000] x [PIXEL]) / ([Meter/1000] * [Meter/1000])) * [Meter/1000]

= 1000 * 1000 / 1000 /1000 * (([Meter] x [PIXEL]) / ([Meter] * [Meter])) * [Meter]

= (([Meter] x [PIXEL]) / ([Meter] * [Meter])) * [Meter]

回到我对其他主题的解释:

如果我们使用这些表示法来表示b_x:

b_x = (d_x * s_x) / (d_z * r_x) * r_z

= (d_x * w) / (d_z * 2 * f * tan(α)) * f

= (d_x * w) / (d_z * 2 * tan(α)) // with w in px

使用(d_x, d_y, d_z) = (X,Y,Z)或(d_x, d_y, d_z) = (1000*X,1000*Y,1000*Z)时,比率d_x / d_z不会改变。

现在,由于问题背后的原因,您也许应该检查是否对摄像机的位置/距场景的距离也应用了正确的单位。还要检查您的α或焦距的单位,具体取决于您使用的那一个。

如果认为以后的建议是最有可能的。容易忘记也将正确的单位应用于相机的特性。

嘿。再次感谢您的回复!我很确定,错误出在我的相机上,但我不知道如何解决。我可以使用alpha(这是我的垂直或水平视角),也可以使用android提供的焦距(以毫米为单位)(它们不相等...我得到两个不同的值来计算焦距或使用焦距由android提供)。将正确的单位应用于我的相机特性到底意味着什么?非常感谢!

您写道:"只要您将此单元同时应用于场景和相机。" -我不太确定我是否可以将其应用于相机...该在哪里做?

例如,如果使用焦距,则将其单位转换为所选的焦距。但是也许您应该过去包含相机设置和投影的代码,以便一起查看。

嘿,我已经添加了一些有关我的代码的代码片段。如您所见,相机设置很多。您只是在前面的文章中提到过;)

嘿,在您查看之前,让我在外部进行测试;)我已经更改了一些值,现在在内部获得了良好的价值(相同的gps)-我正在外面再次进行测试;)非常感谢!也许有效:)

大!祝你今天愉快。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。