-1

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

在 C# 中是否有任何方法可以使用单摄像头这样做?

4

3 回答 3

2

该网站展示了如何使用 C# 获取网络摄像头图像。但是,就像照片一样,它是平坦的,因此无法区分距相机不同距离的物体。一般来说,只有一台相机和一张照片/图像,你想要的是不可能的。

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

Kinect 使用红外摄像头创建低分辨率图像,以测量与摄像头前方物体的距离,以便将玩家与背景区分开来。我在某处读到 Kinect 相机可以连接到普通计算机,但我不知道您需要的软件或数学。

于 2012-07-24T15:48:19.600 回答
1

如果你用与场景成一定角度的激光照射一条直线,直线的位移将与物体的高度完全对应。这仅给出沿单条线的高度,具体取决于相机的分辨率。如果您需要完整的 3D 扫描,则需要移动激光并拍摄多张照片。

于 2012-07-24T16:06:42.267 回答
0

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

于 2017-05-22T02:05:42.357 回答