0

我想在新 iPad Pro 2020 上流式传输由 LiDar 摄像头生成的深度图。

我的目标是从 TrueDepth Camera 获得类似Streaming Depth Data 的东西,其中深度图是彩色的,但我不想使用 TrueDepth 相机(正面),而是想调整 LiDar 相机的代码。但似乎没有 .supportedDepthDataFormats 用于 AVCaptureDevice 与 builtInWideAngleCamera(背面)。

如果无法流式传输来自 LiDar 的深度数据,我没有得到答案。有人有线索吗 ?

这是我的 ViewController 代码(从 Apple 示例应用程序中提取):

    guard let videoDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) else { return }

// Search for highest resolution with half-point depth values
        let depthFormats = videoDevice.activeFormat.supportedDepthDataFormats
        let filtered = depthFormats.filter({
            CMFormatDescriptionGetMediaSubType($0.formatDescription) == kCVPixelFormatType_DepthFloat16
        })
        let selectedFormat = filtered.max(by: {
            first, second in CMVideoFormatDescriptionGetDimensions(first.formatDescription).width < CMVideoFormatDescriptionGetDimensions(second.formatDescription).width
        })
        
        do {
            try videoDevice.lockForConfiguration()
            videoDevice.activeDepthDataFormat = selectedFormat
            videoDevice.unlockForConfiguration()
        } catch {
            print("Could not lock device for configuration: \(error)")
            setupResult = .configurationFailed
            session.commitConfiguration()
            return
        }

当我处理我的后置摄像头时,我没有得到与深度数据兼容的格式:

深度格式 = []

所以 :

过滤 = [] & selectedFormat = []

由于没有支持的格式,我的应用程序此时崩溃,错误提示是使用 .supportedDepthDataFormats 属性..

4

0 回答 0