java - 增强现实尺寸变换

标签 java android iphone objective-c ios

我们目前正在开发一款应用,可以显示叠加在相机 View 上的物体(基本上是增强现实),但发现物体看起来并不“真实”。这是因为我们物体的大小不会像现实生活中的物体那样发生变化。

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

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

谢谢。

最佳答案

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

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

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

realSize * (constantDistanceBetweenPlaneAndPoint / distanceFromPoint)

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

关于java - 增强现实尺寸变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8055404/

相关文章:

iphone - 快速枚举期间实际发生了什么?

java - 根据 JAX-RS 中的规范使用带有 @PathParam 的 PathSegment?

java - 使用 Java Web 应用程序中的 Google Docs API ( Gdata) 上传文档

java - 如何用 Java 中的工厂替换静态计数变量?

android - 动态添加dependsOn到gradle任务

android - 在 Android 浏览器中使用 HTML5 播放音频

iphone - 跨越多个 UITableViewCells 的背景图像(分组)

java - Spock 模拟方法实现在检查调用数时不起作用

android - 长按删除项目

iphone - iOS 状态保存和容器 View