从 ARKit 会话中获取深度像素缓冲区时,例如:
CVPixelBufferRef depthDataMap = frame.capturedDepthData.depthDataMap;
许多像素是黑色的。它们代表什么?为什么他们是黑色的?这并不能反映现实世界的真实深度。如何解释这个?
从 ARKit 会话中获取深度像素缓冲区时,例如:
CVPixelBufferRef depthDataMap = frame.capturedDepthData.depthDataMap;
许多像素是黑色的。它们代表什么?为什么他们是黑色的?这并不能反映现实世界的真实深度。如何解释这个?
深度通道中的那些黑色像素是数字伪影。与以 60 fps 的频率捕获的 RGB 图像相比,这种黑色轮廓的出现成为可能,因为深度数据以 15 fps 的频率(每四帧)捕获。此外,深度通道图像质量低(低分辨率)。因此,如果主体在 AR 会话运行时快速或突然移动其头部,当四分之三的深度帧包含一个完全黑色的背景时——这会导致 RGBA 和深度数据不匹配的情况,所以我们得到了这些讨厌的数字伪影。
查看帖子中的图片如何改善 ARKit 3.0 中的人物遮挡(单击下面的链接)。
如果您需要有关深度图及其拖尾效果的其他信息,请阅读这篇文章。
这意味着该像素没有深度数据(深度 = 0)