是否有任何方法将普通网络摄像机捕获的2D图像转换为3D模型?我正在使用c#,所以任何基于c#的算法都会很有帮助。
这是一个活跃的研究课题,远非易事。
Make3D使用监督学习(人工智能的一种形式)来计算大量系数。然后用它们来估计图像的深度图。
他们的网站上有一些代码,但它是针对Matlab的,而不是c#。
不需要任何附加信息
你可能能够将2d图像投影到建模的3d表面上。注意:说"3d平面"很有趣,因为平面通常是2d的。
我想说"打印出来",因为平面在3D世界中是指平面,就像一张纸。
但实际上,您只想为每个点提供第三维值。所以决定你想要它在3D空间中的位置,并做必要的数学计算。例如,如果你想让它在"墙上",那么将你的x,y坐标映射到x, 0, z。
为新问题编辑…
你需要算出每个点离相机有多远。这很难做到,因为相机无法判断光线传播了多远。
如果你有一个以上的高(中等)质量的图像从不同的相机位置,这是可能的。这个过程叫做"结构来自运动"
http://en.wikipedia.org/wiki/Structure_from_motion,通常包括非常繁重和复杂的计算。唯一的例外是,如果图像是由立体相机或对准相机从固定的预定义位置拍摄的。在c#中无法做到这一点。c#对于计算机视觉应用来说是相当无用的。它有开源的GPL库,如Bundler和PMVS
http://phototour.cs.washington.edu/bundler手跟踪是另一个完全不同的任务,在某种意义上没有那么复杂,尽管从运动的蛮力结构可能适用于手跟踪。精确的手部跟踪有几种方法,一些是基于活动形状模型,或活动外观模型,更简单的是基于特征点跟踪,可以在您的情况下工作。但是,即使是最简单的方法也是相当复杂的,不能在一个帖子中依赖。你可以谷歌一下,也可能有开源的手部追踪库