2011-07-17 247 views
0

是否有任何方法将由普通网络摄像头捕获的2D图像转换为3D模型?我使用C#,因此任何基于C#的算法都会有所帮助。将2D图像转换为3D模型

+1

你是什么意思的3D平面? – Mat

+0

对不起。我的意思是一个3D模型。 – kash

+0

据我所知,你需要两个网络摄像头,即使这样也不容易..检查ms kinnekt和相关的开源项目。 –

回答

0

没有任何附加信息。

您可能可以将2D图像投影到建模的3D表面上。注意:说“3d平面”,因为飞机通常是2D,这很有趣。

+0

它是一个AR应用程序。我想跟踪用户的手,并在其上放置3D模型。这样模型会跟随手的运动(如旋转,平移等)。这是我想要做的。 有没有这样做? – kash

0

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

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

-edited新的问题...

你需要计算出每个点是如何远离相机。很难做到,因为相机无法辨别光线行进的距离。

0

这是一个活跃的研究课题,并不容易。

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

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

0

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

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

并且通常包括非常重和复杂的计算。唯一的例外是如果图像是由固定的预定义位置的立体坐标或对准的相机拍摄的。没有办法在C#中做到这一点。 C#对于计算机视觉应用来说很没用。有开源的GPL库呢,像捆扎机和PMVS

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

手追踪被别人完全不同的任务,在某种意义上,没有那么复杂,但是从运动蛮力可能结构法手跟踪工作。有几种精确手部跟踪的方法,一些基于活动形状模型或活动外观模型,更简单的方法是基于特征点跟踪,这可以在您的情况下起作用。但即使最简单的方法也相当复杂,不能依靠一个职位。你可以谷歌,也可以有手动跟踪的开源库。