Я делаю проекцию, связанную с данными о глубине, передаваемыми с фронтальной камеры 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
имел цветовое пространство, а его нет. Поэтому что еще я могу сделать?