C# 将二维图像转换为三维模型

C# 将二维图像转换为三维模型,c#,augmented-reality,2d-3d-conversion,C#,Augmented Reality,2d 3d Conversion,有没有办法将普通网络摄像机拍摄的2D图像转换为3D模型?我使用的是C#,因此任何基于C的算法都会有所帮助。并非没有任何附加信息 您可能能够将二维图像投影到建模的三维曲面上。注:说“3d平面”很有趣,因为平面通常是2d。并非没有任何附加信息 您可能能够将二维图像投影到建模的三维曲面上。注:说“3d平面”很有趣,因为平面通常是二维的。我想说“打印出来”,因为平面在3d世界中意味着一个平面,就像一张纸一样 但实际上,您只需要为每个点提供一个三维值。因此,决定你想要它在3D空间中的位置,并做必要的数学运

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

并非没有任何附加信息


您可能能够将二维图像投影到建模的三维曲面上。注:说“3d平面”很有趣,因为平面通常是2d。

并非没有任何附加信息

您可能能够将二维图像投影到建模的三维曲面上。注:说“3d平面”很有趣,因为平面通常是二维的。

我想说“打印出来”,因为平面在3d世界中意味着一个平面,就像一张纸一样

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

-为新问题编辑

您需要计算出每个点离摄影机的距离。很难做到,因为相机无法分辨光线经过了多远。

我想说“打印出来”,因为平面在3D世界中意味着一个平面,就像一张纸一样

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

-为新问题编辑


您需要计算出每个点离摄影机的距离。很难做到这一点,因为相机无法分辨光线经过了多远。

这是一个活跃的研究课题,也绝非易事

使用监督学习(人工智能的一种形式)计算大量系数。然后使用这些数据从图像中估计深度贴图


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

这是一个活跃的研究课题,而且绝非易事

使用监督学习(人工智能的一种形式)计算大量系数。然后使用这些数据从图像中估计深度贴图


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

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

通常包括非常繁重和复杂的计算。一个例外是,如果图像是由stereocamrea或对齐相机从固定的预定义位置拍摄的。用C#做不到。对于计算机视觉应用来说,C#是非常无用的。有一些开源的GPL库,比如Bundler和PMV


手部跟踪是另一项完全不同的任务,在某种意义上也同样复杂,尽管来自运动的蛮力结构可能适用于手部跟踪。有几种精确的手部跟踪方法,一些基于活动形状模型或活动外观模型,更简单的是基于特征点跟踪,这在您的情况下可能会起作用。但即使是最简单的方法也相当复杂,不能在一个职位上依赖。你可以在谷歌上搜索,也可以有用于手部跟踪的开源库。

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

通常包括非常繁重和复杂的计算。一个例外是,如果图像是由stereocamrea或对齐相机从固定的预定义位置拍摄的。用C#做不到。对于计算机视觉应用来说,C#是非常无用的。有一些开源的GPL库,比如Bundler和PMV


手部跟踪是另一项完全不同的任务,在某种意义上也同样复杂,尽管来自运动的蛮力结构可能适用于手部跟踪。有几种精确的手部跟踪方法,一些基于活动形状模型或活动外观模型,更简单的是基于特征点跟踪,这在您的情况下可能会起作用。但即使是最简单的方法也相当复杂,不能在一个职位上依赖。你可以在谷歌上搜索,也可以有用于手动跟踪的开源库。

你说的3D平面是什么意思?很抱歉。我实际上指的是一个3D模型。据我所知,你需要两个摄像头,即使那样也不容易。。请查看ms kinnekt和相关的开源项目。你说的3D平面是什么意思?很抱歉。我实际上指的是一个3D模型。据我所知,你需要两个摄像头,即使那样也不容易。。查看ms kinnekt和相关的开源项目。这是一个AR应用程序。我想跟踪用户的手,并在上面放置一个3D模型。这样模型将跟随手的运动(如旋转、平移等)。这就是我真正想做的。这是一个AR应用程序。我想跟踪用户的手,并在上面放置一个3D模型。这样模型将跟随手的运动(如旋转、平移等)。这就是我真正想做的。这样做有什么好处吗?