ARKit 深度图像素缓冲区中的黑色像素是什么?

What are black pixels in ARKit Depth Map pixel buffer?

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

CVPixelBufferRef depthDataMap = frame.capturedDepthData.depthDataMap;

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

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

这是某种“踪迹”神器。

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

看一张post How to improve People Occlusion in ARKit 3.0(点击下面的一张link)

If you need an additional info about a depth map and its trailing effect, please read .