将2D图像转换为3D模型

时间:2011-07-17 13:35:05

标签: c# augmented-reality 2d-3d-conversion

有没有办法将普通网络摄像头拍摄的2D图像转换为3D模型?我正在使用C#,因此任何基于C#的算法都会有所帮助。

4 个答案:

答案 0 :(得分:1)

这是一个活跃的研究课题,并非易事。

Make3D使用监督学习(人工智能的一种形式)来计算大量系数。然后用它们来估算图像的深度图。

他们的网站上有一些代码,但它适用于Matlab,而不是C#。

答案 1 :(得分:0)

并非没有任何其他信息。

您可以将2d图像投影到建模的3D表面上。注意:说'3d plane'作为一个平面通常是2d很有趣。

答案 2 :(得分:0)

我想说“打印出来”,因为飞机意味着3D世界中的平面,就像一张纸。

但实际上,您只想为每个点提供第三维值。因此,确定您想要的3D空间位置,并进行必要的数学运算。例如,如果您想要它在“墙”上,则将x,y坐标映射到x,0,z。

- 编辑新问题......

你需要弄清楚每个点离相机有多远。很难做到,因为相机无法判断光线走了多远。

答案 3 :(得分:0)

如果您从不同的相机位置拍摄了多张高(中)质量的图像,则可以。这个过程称为“运动结构”

http://en.wikipedia.org/wiki/Structure_from_motion

通常包括非常繁重和复杂的计算。一个例外是如果图像是由立体摄像机或对齐的摄像机从固定的预定义位置拍摄的。没办法在C#中做到这一点。 C#对计算机视觉应用来说毫无用处。它有开源的GPL库,如Bundler和PMVS

http://phototour.cs.washington.edu/bundler

手部跟踪是其他完全不同的任务,在某种意义上并不复杂,尽管来自运动的强力结构可能适用于手部跟踪。有几种精确的手部跟踪方法,一些基于活动形状模型或主动外观模型,更简单的是基于特征点跟踪,这可以适用于您的情况。但即使是最简单的方法也相当复杂,不能在一篇文章中使用。你可以谷歌,也可以有手动跟踪的开源库。