哪些算法用于zookazam等增强现实?
我认为它分析图像并找到相反的平面,但我不知道如何。
在开始使用此类应用之前,我应该阅读哪些主题?
答案 0 :(得分:2)
<强> [序言强>
这是极其广泛的主题,并且在其当前状态中主要是非主题。我重复了你的问题,但是要让你的问题在本网站的规则/可能性中回答
您应该更准确地指定增强现实:
应该
一个好主意是提供您想要实现的输入/输出的一些示例图像(草图)。
有什么输入
指定目标平台
许多算法仅限于内存大小/带宽, CPU 电源,特殊 HW 功能等,因此最好为您的平台添加标记。 操作系统和语言也是一个好主意。
[增强现实的工作原理]
获取输入图片
如果您要连接某些设备(如相机),则需要使用其驱动程序/框架或某些内容来获取图像或使用它支持的常用 API 。此任务依赖于 OS 。我在Windows上最喜欢的方法是使用 VFW (适用于Windows的视频) API 。
我将从启动开始使用一些静态文件,以简化调试和增量构建过程。 (你不需要等待相机和东西在每个构建上发生)。当您的应用程序准备好播放实时视频时,请切换回相机...
将场景重建为3D网格
如果您使用 3D 相机,例如 Kinect ,则无需执行此步骤。否则,您需要通过一些基于边缘检测或颜色均匀性的分割过程来区分对象。
3D 网格的质量取决于您想要实现的目标以及您的输入。例如,如果你想要逼真的阴影和光照,那么你需要非常好的网格。如果在某些房间中摄像机已固定,您可以手动预定义网格(硬编码)并仅计算视图中的对象。此外,通过从当前视图图像中减去空房间图像,可以非常简单地完成对象检测/分割,因此具有较大差异的像素是对象。
你也可以使用平面代替真正的3D网格,如你在 OP 中所建议的那样,但是你可以忘记更真实的效果质量,如光照,阴影,交叉......如果你假设物体直立然后您可以使用房间指标来获取相机的距离。见:
对于纯 2D 输入,您还可以使用照明来估算 3D 网格,请参阅:
<强>呈现强>
只需将场景渲染回某些图像/视频/屏幕......添加/删除功能即可。如果您没有过多地改变光线条件,您也可以使用原始图像并直接渲染它。阴影可以通过使像素变暗来实现......为了获得更好的效果,可以使用照明/阴影/斑点等。通常从原始图像中滤除,然后通过渲染直接添加。见
渲染过程本身也是依赖于平台的(除非你是通过内存中的低级图形来实现的)。您可以使用 GDI,DX,OpenGL等...... 之类的内容:
[google / read的基本主题]
<强> 2D 强>
<强> 3D 强>
依赖于paltform