这可能是一个晦涩的问题,但我在网上看到很多非常酷的示例,展示人们如何使用 ARKit 3 中新的 ARKit 人物遮挡技术来有效地将人物与背景“分离”,并对“人物”应用某种过滤。人”(见此处)。
在查看 Apple 提供的源代码和文档时,我发现我可以segmentationBuffer从 ARFrame 中检索 ,我已经这样做了,如下所示;
func session(_ session: ARSession, didUpdate frame: ARFrame) {
let image = frame.capturedImage
if let segementationBuffer = frame.segmentationBuffer {
// Get the segmentation's width
let segmentedWidth = CVPixelBufferGetWidth(segementationBuffer)
// Create the mask from that pixel buffer.
let sementationMaskImage = CIImage(cvPixelBuffer: segementationBuffer, options: [:])
// Smooth edges to create an alpha matte, then upscale it to the RGB resolution.
let alphaUpscaleFactor = Float(CVPixelBufferGetWidth(image)) / Float(segmentedWidth)
let …Run Code Online (Sandbox Code Playgroud)