像 zookazam 这样的增强现实
Augment reality like zookazam
像zookazam这样的增强现实使用什么算法?
我认为它分析图像并通过对比找到平面,但我不知道如何。
在开始使用这样的应用程序之前,我应该阅读哪些主题?
[序言]
这是非常宽泛的主题,并且在当前状态下大部分偏离主题。我重新编辑了您的问题,但为了让您的问题在本网站 rules/possibilities 的
范围内可以回答
您应该更详细地说明您的增强现实是什么:
应该做
- 添加 2D/3D 个具有已知网格的对象 ...
- 改变光照条件
- adding/removing正文parts/clothes/hairs ...
一个好主意是提供一些 input/output 您想要实现的示例图像(草图)。
它有什么输入
- 视频,静态图像,2D,立体声,3D。对于纯 2D 输入指定什么 conditions/markers/illumination/LASER 模式你必须帮助重建。
- 输入图像中会有什么?空房间、人物、特定物体等
指定目标平台
许多算法受限于内存 size/bandwidth、CPU 电源、特殊 HW 功能等为您的平台添加标签是个好主意。 OS和语文也是不错的补充。
[增强现实的工作原理]
获取输入图像
如果你连接到像相机这样的设备,你需要使用它的 driver/framework 或其他东西来获取图像或使用一些常见的 API 它支持。此任务依赖 OS。我在 Windows 上最喜欢的方式是使用 VFW(windows 的视频)API.
我会从一开始就使用一些静态文件来简化调试和增量构建过程。 (你不需要等待相机和东西在每次构建时发生)。当您的应用程序准备好进行实时视频时,然后切换回相机...
将场景重构为3D网格
如果您使用 3D 相机,例如 Kinect,则无需执行此步骤。否则,您需要通过通常基于边缘检测或颜色均匀性的一些 分割 过程来区分对象。
3D 网格的质量取决于您想要实现的目标以及您的输入。例如,如果您想要逼真的阴影和照明,那么您需要非常好的网格。如果 相机在某些 房间 中是固定的,您可以手动预定义网格(硬编码)并仅计算视图中的对象。此外,对象 detection/segmentation 可以非常简单地通过从当前视图图像中减去空房间图像来完成,因此具有较大差异的像素就是对象。
您也可以按照 OP 中的建议使用平面而不是真正的 3D 网格,但是这样您就可以忘记更逼真的效果质量,例如光照、阴影、交叉点.. .如果你假设物体是直立的,那么你可以使用房间指标来获得与相机的距离。见:
- selection criteria for different projections
- estimate measure of photographed things
对于纯 2D 输入,您还可以使用照明来估计 3D 网格,请参阅:
渲染
只需将场景渲染回某些 image/video/screen... 具有 added/removed 特征。如果你没有过多地改变光照条件,你也可以使用原始图像并直接渲染它。阴影可以通过使像素变暗来实现......为了获得更好的效果,illumination/shadows/spots/etc。通常是从原始图像中过滤掉,然后通过渲染直接添加。见
渲染过程本身也依赖于平台(除非你是通过内存中的低级图形来完成的)。您可以使用诸如 GDI、DX、OpenGL... 之类的东西,请参阅:
- Graphics rendering
您还需要用于渲染的相机参数,例如:
- Transformation of 3D objects related to vanishing points and horizon line
[基础话题google/read]
2D
- DIP数字图像处理
- 图像分割
3D
- 矢量数学
- 3D场景重建
- 3D graphics
手板形式相关
- 图像采集
- 渲染
像zookazam这样的增强现实使用什么算法?
我认为它分析图像并通过对比找到平面,但我不知道如何。
在开始使用这样的应用程序之前,我应该阅读哪些主题?
[序言]
这是非常宽泛的主题,并且在当前状态下大部分偏离主题。我重新编辑了您的问题,但为了让您的问题在本网站 rules/possibilities 的
范围内可以回答您应该更详细地说明您的增强现实是什么:
应该做
- 添加 2D/3D 个具有已知网格的对象 ...
- 改变光照条件
- adding/removing正文parts/clothes/hairs ...
一个好主意是提供一些 input/output 您想要实现的示例图像(草图)。
它有什么输入
- 视频,静态图像,2D,立体声,3D。对于纯 2D 输入指定什么 conditions/markers/illumination/LASER 模式你必须帮助重建。
- 输入图像中会有什么?空房间、人物、特定物体等
指定目标平台
许多算法受限于内存 size/bandwidth、CPU 电源、特殊 HW 功能等为您的平台添加标签是个好主意。 OS和语文也是不错的补充。
[增强现实的工作原理]
获取输入图像
如果你连接到像相机这样的设备,你需要使用它的 driver/framework 或其他东西来获取图像或使用一些常见的 API 它支持。此任务依赖 OS。我在 Windows 上最喜欢的方式是使用 VFW(windows 的视频)API.
我会从一开始就使用一些静态文件来简化调试和增量构建过程。 (你不需要等待相机和东西在每次构建时发生)。当您的应用程序准备好进行实时视频时,然后切换回相机...
将场景重构为3D网格
如果您使用 3D 相机,例如 Kinect,则无需执行此步骤。否则,您需要通过通常基于边缘检测或颜色均匀性的一些 分割 过程来区分对象。
3D 网格的质量取决于您想要实现的目标以及您的输入。例如,如果您想要逼真的阴影和照明,那么您需要非常好的网格。如果 相机在某些 房间 中是固定的,您可以手动预定义网格(硬编码)并仅计算视图中的对象。此外,对象 detection/segmentation 可以非常简单地通过从当前视图图像中减去空房间图像来完成,因此具有较大差异的像素就是对象。
您也可以按照 OP 中的建议使用平面而不是真正的 3D 网格,但是这样您就可以忘记更逼真的效果质量,例如光照、阴影、交叉点.. .如果你假设物体是直立的,那么你可以使用房间指标来获得与相机的距离。见:
- selection criteria for different projections
- estimate measure of photographed things
对于纯 2D 输入,您还可以使用照明来估计 3D 网格,请参阅:
渲染
只需将场景渲染回某些 image/video/screen... 具有 added/removed 特征。如果你没有过多地改变光照条件,你也可以使用原始图像并直接渲染它。阴影可以通过使像素变暗来实现......为了获得更好的效果,illumination/shadows/spots/etc。通常是从原始图像中过滤掉,然后通过渲染直接添加。见
渲染过程本身也依赖于平台(除非你是通过内存中的低级图形来完成的)。您可以使用诸如 GDI、DX、OpenGL... 之类的东西,请参阅:
- Graphics rendering
您还需要用于渲染的相机参数,例如:
- Transformation of 3D objects related to vanishing points and horizon line
[基础话题google/read]
2D
- DIP数字图像处理
- 图像分割
3D
- 矢量数学
- 3D场景重建
- 3D graphics
手板形式相关
- 图像采集
- 渲染