gpt4 book ai didi

swift - 有没有办法将 CMSampleBuffer 转换成 CVImageBuffer?

转载 作者:搜寻专家 更新时间:2023-11-01 06:30:17 24 4
gpt4 key购买 nike

我正在使用框架 (MoodMe) 来检测 iPhone 相机上的人脸,我需要将图像或帧传递给 MoodMe 实例。

我已将相机输出转换为 UIImage,但框架未检测到任何人脸。 (我觉得)

所以我想将缓冲区传递给框架,它要求我提供 CVImageBuffer 变量,但我不知道如何(如果可能的话)将从相机输出接收的 CMSampleBuffer 转换为 CVImageBuffer。有办法做到这一点吗?

我的代码:

func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
let attachments = CMCopyDictionaryOfAttachments(kCFAllocatorDefault, sampleBuffer, kCMAttachmentMode_ShouldPropagate)
let ciImage = CIImage(cvImageBuffer: pixelBuffer!, options: attachments as! [String : Any]?)
let img = UIImage(ciImage: ciImage)

mdm.processImage(img)

// it does not works
if mdm.faceTracked {
print("Face")
} else {
print("Not face")
}

// mdm.processImageBuffer(frame: CVImageBuffer! var)
}

对于任何英文错误,我们深表歉意:)

最佳答案

您已经在您的代码中这样做了。 pixelBuffer 变量是一个 CVImageBuffer

let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)

关于swift - 有没有办法将 CMSampleBuffer 转换成 CVImageBuffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48344979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com