Ios 从ARWorldTrackingConfiguration获取当前fram作为uiimage?

Ios 从ARWorldTrackingConfiguration获取当前fram作为uiimage?,ios,swift,arscnview,Ios,Swift,Arscnview,我需要在配置ARWorldTrackingConfiguration时提取物理相机看到的帧(不添加SCNScene)。 我是ios新手,所以可能我错过了一些东西,但我没能做到。 任何关于如何做到这一点的帮助都将不胜感激 我试过使用 var buffer = self.sceneView.session.currentFrame?.capturedImage 当sceneView是我的ARSCNView时,我想它会给我YCbCr中的图像 然后我尝试使用 let ciImage = CIImage

我需要在配置ARWorldTrackingConfiguration时提取物理相机看到的帧(不添加SCNScene)。 我是ios新手,所以可能我错过了一些东西,但我没能做到。 任何关于如何做到这一点的帮助都将不胜感激

我试过使用

var buffer = self.sceneView.session.currentFrame?.capturedImage
当sceneView是我的ARSCNView时,我想它会给我YCbCr中的图像

然后我尝试使用

let ciImage = CIImage(cvPixelBuffer: buffer)
let context = CIContext(options: nil)
let cgImage = context.createCGImage(ciImage, from: ciImage.extent)
let uiImage = UIImage(cgImage: cgImage!)
但是调用pixelBufferToUIImage()后出现零错误。

您可以使用此函数将图像转换为
UIImage

func imageFrom(scene:ARSCNView) -> UIImage {

    UIGraphicsBeginImageContextWithOptions(scene.bounds.size, scene.isOpaque, 0.0)
    scene.drawHierarchy(in: scene.bounds, afterScreenUpdates: false)
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return UIImage(cgImage: (image?.cgImage)!)

}
用法:

@IBOutlet var sceneView: ARSCNView!

override func viewDidLoad() {
        super.viewDidLoad()
    let convertedToImage = imageFrom(scene: sceneView)

    // Do something with convertedToImage

}

你的代码、研究、进展在哪里?给我们一些东西,这样我们就可以给你一个解决方案。我已经添加了我尝试过但不起作用的东西