有没有办法从c#中的网络摄像头获取3D图像?

时间:2012-07-24 15:42:01

标签: c# image-processing computer-vision

我想计算图像的深度。这样我就可以从图像中消除远处的物体。

  

有没有任何方法可以用单个相机在c#中完成?

3 个答案:

答案 0 :(得分:2)

This website显示了如何使用C#获取网络摄像头图像。然而,就像照片一样,它是平的,因此无法区分距离相机不同距离的物体。一般来说,只需一台相机和一张照片/图像,您想要的就是不可能的。

使用一个或两个相机拍摄两张图像/照片之间有一定距离,您可以区分深度(就像使用双眼一样)。然而,这需要非常复杂的数学来首先识别物体,然后确定它们与相机的近似距离。

Kinect uses an infrared camera创建一个低分辨率图像来测量相机前面物体的距离,以便它可以将玩家与背景区分开来。我在某地读过Kinect相机可以连接到普通电脑,但我不知道你需要的软件或数学。

答案 1 :(得分:1)

如果使用与场景成一定角度的激光照亮直线,则线条的位移将精确对应于对象的高度。这仅根据相机的分辨率给出单线高度。如果您需要完整的3D扫描,则需要移动激光并拍摄多张照片。

答案 2 :(得分:0)

当流式视频文件进入时,每个帧都需要c#参考。在流式传输开始时,主体需要转动头部并旋转,以便可以从主体捕获一系列测量值。然后,这可以被馈送到第二个相机,如统一3d虚拟相机,在流式图像的顶部转置3d图像。有很多手机应用程序可以用一系列静止帧捕获3d对象我在我的galaxy s6上也有一个星系s6和up在他们的相机中有一个深度芯片,他们卖给我的手机这用于苹果3d相机。我一直在考虑如何做到这一点也很乐意给你发电子邮件。注意它与面部识别软件的概念类似。