我正在做一个与从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
并在OpenCV中使用UIImageToMat
,但是失败了,因为UIImageMat
似乎要求UIImage
具有颜色空间,虽然没有颜色空间。因此,我还能做什么?
我一直遇到同样的问题。