如何解决kCVPixelFormatType_420YpCbCrBiPlanarVideoRange 到 kCVPixelFormatType_32BGRA 的转换
在我正在开发的 iOS 应用程序中,图像是在 kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange
(通过网络发送)中捕获的,但稍后在应用程序中我希望将其转换为 kCVPixelFormatType_32BGRA
(用于深度学习推理)。
我无法正确执行此转换。我在苹果文档@ vImageConvert_420Yp8_Cb8_Cr8ToARGB8888(::::::::) 中找到了一些帮助;这是一个函数,
将 YUV 420Yp8_Cb8_Cr8 格式图像转换为 ARGB8888 格式图像。
这似乎非常适合我的用例。但我无法弄清楚如何获取参数 srcYp
、srcCb
和 srcCr
。函数定义为:
func vImageConvert_420Yp8_Cb8_Cr8ToARGB8888(_ srcYp: UnsafePointer<vImage_Buffer>,_ srcCb: UnsafePointer<vImage_Buffer>,_ srcCr: UnsafePointer<vImage_Buffer>,_ dest: UnsafePointer<vImage_Buffer>,_ info: UnsafePointer<vImage_YpCbCrToARGB>,_ permuteMap: UnsafePointer<UInt8>!,_ alpha: UInt8,_ flags: vImage_Flags) -> vImage_Error
非常感谢任何帮助。
解决方法
我认为您需要 vImageConvert_420Yp8_CbCr8ToARGB8888
,因为色度值在一个平面上,而不是两个平面上。
我找到了关于如何将像素缓冲平面转换为 vImage_Buffers
并将它们传递给函数的 this example。也许有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。