0

最近我正在尝试使用人像图像提取深度数据和人像效果遮罩数据。我尝试使用带有 iOS 14.3 的 iPhone 11 拍摄的肖像图像(.HEIC 格式)来做到这一点。但我无法从这些图像中提取深度数据和遮罩数据。

这是我用来从 .HEIC 格式的肖像图像中提取遮罩数据的代码片段,

func PortraitEffectsMatteImageAt(_ 路径:字符串)-> UIImage?{ 让 bundlePath = Bundle.main.bundlePath

// Check that the image at given path contains auxiliary PEM data:
guard let fileURL = NSURL(fileURLWithPath: bundlePath).appendingPathComponent(path),
let source = CGImageSourceCreateWithURL(fileURL as CFURL, nil),
let auxiliaryInfoDict = CGImageSourceCopyAuxiliaryDataInfoAtIndex(source, 0, kCGImageAuxiliaryDataTypePortraitEffectsMatte) as? [AnyHashable: Any],
let matteData = try? AVPortraitEffectsMatte(fromDictionaryRepresentation: auxiliaryInfoDict),
let matteCIImage = CIImage(portaitEffectsMatte: matteData)
else {
    return nil
}
return UIImage(ciImage: matteCIImage)

}

该函数返回 nil 而不是返回哑光图像。那么如何从 .HEIC 格式的图像中提取遮罩数据和深度数据呢?

非常感谢

4

0 回答 0