【问题标题】:Augmented reality size transform增强现实尺寸变换
【发布时间】:2011-11-08 18:34:22
【问题描述】:

我们目前正在开发一个应用程序,该应用程序将显示叠加在相机视图上的对象(基本上是增强现实),但发现这些对象看起来并不“真实”。这样做的原因是因为我们对象的大小不会像现实生活中的对象那样改变大小。

例如,假设我们在增强现实中放置了一个对象,纬度 = 43,经度 = -70。如果我们开始用手机靠近这一点,我们应该会看到物体随着靠近而变大,但到目前为止,尺寸的增加是线性的。然而,当我们开始走近现实生活中的对象时,我们会看到它根据特定功能变得更大。

关于该功能可能是什么的任何想法?

谢谢。

【问题讨论】:

    标签: java android iphone objective-c ios


    【解决方案1】:

    它应该相对于相机后面的某个点是线性的。

    想象一个 3D 世界,您将图像投射到飞机上(拍照)。如果你保持它,当你的飞机(相机)移动时,物体不会改变大小。那将是一个正交投影 (http://en.wikipedia.org/wiki/Orthographic_projection)。

    现实世界的相机就像透视投影 (http://en.wikipedia.org/wiki/Perspective_(graphical)),除了点在相机前面并且图像在平面上倒置。这意味着图像上对象的大小是这样的函数

    realSize * (constantDistanceBetweenPlaneAndPoint / distanceFromPoint)
    

    我对相机的了解不够多,无法告诉您是否记录了此值,但对于某个缩放系数,该值应该是恒定的。这只是通过实验弄清楚的问题。

    【讨论】:

    • 它不是线性的,当它们靠近时,图像的大小应该类似于正弦波
    【解决方案2】:

    我相信我在这里找到了答案:http://en.wikipedia.org/wiki/Visual_angle。看起来正确的公式是 tan(2 * arctan(realSize / [2 * distance])) * screenSize。

    如果我的数学有误,请有人指正。

    【讨论】:

    • 看看这个距离函数的图表(所有其他参数保持不变)。它看起来不像现实......
    猜你喜欢
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2016-11-10
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多