Swift: Как обработать данные глубины из CVPixelBuffer, чтобы сделать их обрабатываемыми в opencv? - PullRequest
0 голосов
/ 10 марта 2020

Я делаю проекцию, связанную с данными о глубине, передаваемыми с фронтальной камеры iPhone11. Когда я конвертирую данные глубины из CVPixelBuffer -> CIImage -> UIImage, используя следующий код, он хорошо отображается в UIImageView.

    func depthDataOutput(_ output: AVCaptureDepthDataOutput, didOutput depthData: AVDepthData, timestamp: CMTime, connection: AVCaptureConnection) {
        guard (output == depthDataOutput) else {
            // Ignoring unknown depth data output
            return
        }
        let pixelBuffer:CVPixelBuffer = depthData.depthDataMap
        let image = CIImage(cvPixelBuffer: pixelBuffer)
        var displayImage = UIImage(ciImage: image)
        DispatchQueue.main.async {
            self.preview.image = displayImage //preview is UIImageView
        }
    }

Но как я могу передать данные глубины в OpenCV, я попытался передать UIImage в коде, который отображался ранее, и используйте UIImageToMat в OpenCV, но это не удалось, потому что UIImageMat, кажется, требует, чтобы UIImage имел цветовое пространство, а его нет. Поэтому что еще я могу сделать?

...