有什么方法可以将普通网络摄像头拍摄的 2D 图像转换为 3D 模型?我正在使用 C#,因此任何基于 C# 的算法都会有所帮助。
4 回答
如果您有不止一张从不同相机位置拍摄的高(中)质量图像,这是可能的。这个过程称为“结构源于运动”
http://en.wikipedia.org/wiki/Structure_from_motion
并且通常包括非常繁重和复杂的计算。一个例外情况是,如果图像是由立体摄像机或对齐的摄像机从固定的预定义位置拍摄的。没有办法在 C# 中做到这一点。C# 对于计算机视觉应用程序毫无用处。它有开源的 GPL 库,如 Bundler 和 PMVS
http://phototour.cs.washington.edu/bundler
手部跟踪是其他完全不同的任务,在某种意义上同样复杂,尽管来自运动的蛮力结构可能适用于手部跟踪。有几种精确的手部跟踪方法,一些基于主动形状模型或主动外观模型,更简单的是基于特征点跟踪,这可能适用于您的情况。但即使是最简单的方法也相当复杂,不能在一篇文章中依赖。你可以谷歌,也可能有用于手部跟踪的开源库。
并非没有任何附加信息。
您也许可以将 2d 图像投影到建模的 3d 表面上。注意:说“3d 平面”很有趣,因为平面通常是 2d。
我想说“打印出来”,因为平面意味着 3D 世界中的平面,就像一张纸。
但实际上,您只想为每个点提供一个三维值。因此,决定您希望它在 3D 空间中的哪个位置,并进行必要的数学运算。例如,如果您希望它在“墙上”,则将您的 x,y 坐标映射到 x,0,z。
- 编辑新问题...
您需要计算出每个点与相机的距离。很难做到,因为相机无法判断光线传播了多远。