1

从 ARKit 会话中获取深度像素缓冲区时,例如:

CVPixelBufferRef depthDataMap = frame.capturedDepthData.depthDataMap;

许多像素是黑色的。它们代表什么?为什么他们是黑色的?这并不能反映现实世界的真实深度。如何解释这个?

在此处输入图像描述

4

2 回答 2

1

这是某种“踪迹”神器。

深度通道中的那些黑色像素是数字伪影。与以 60 fps 的频率捕获的 RGB 图像相比,这种黑色轮廓的出现成为可能,因为深度数据以 15 fps 的频率(每四帧)捕获。此外,深度通道图像质量低(低分辨率)。因此,如果主体在 AR 会话运行时快速或突然移动其头部,当四分之三的深度帧包含一个完全黑色的背景时——这会导致 RGBA 和深度数据不匹配的情况,所以我们得到了这些讨厌的数字伪影。

查看帖子中的图片如何改善 ARKit 3.0 中的人物遮挡(单击下面的链接)。

如果您需要有关深度图及其拖尾效果的其他信息,请阅读这篇文章

于 2020-02-08T14:02:18.287 回答
0

这意味着该像素没有深度数据(深度 = 0)

于 2020-02-08T09:51:17.057 回答